GLSL 内置函数
exp2()
返回 2 的 x 次幂。适合每一级翻倍或减半的场景,比如噪声的倍频层和曝光档位。
函数签名
float exp2(float x)
vec2 exp2(vec2 x)
vec3 exp2(vec3 x)参数
- x
- 指数。
返回值
2 的 x 次幂,结果总大于 0。
在线示例
修改右侧代码,左侧预览会实时更新。
工作原理
exp2(x) 的 x 每加 1,结果就翻一倍:exp2(0.0) 是 1,exp2(1.0) 是 2,exp2(3.0) 是 8,exp2(-1.0) 是 0.5。它和 pow(2.0, x) 相同,但意图更明确。
示例把行号当作 x,于是每一行的条纹数都是下一行的两倍:1、2、4、8、16。
常见用法
- 噪声倍频层:分形噪声中频率用
exp2(float(i)),振幅用exp2(-float(i))。 - 曝光:
color * exp2(stops)按相机档位整档提亮。 - 平滑缩放:
exp2(u_time)以视觉上恒定的速度放大。
常见错误
- 指数太大很快超出 mediump 精度,
exp2(16.0)就已经是 65536。 - 直接传入
int类型的循环变量。要先转换:exp2(float(i))。