Skip to content

数学函数

step

生成一个阶梯函数,当 x 小于 edge 时返回 0.0,否则返回 1.0。

glsl
float step(float edge, float x)
vec2 step(vec2 edge, vec2 x)
vec3 step(vec3 edge, vec3 x)
vec4 step(vec4 edge, vec4 x)

参数说明

  • edge: 阈值
  • x: 输入值 返回值:根据 x 是否大于等于 edge 返回 0.0 或 1.0

使用示例

glsl
float result = step(0.5, 0.3); // 返回0.0
float result2 = step(0.5, 0.7); // 返回1.0

smoothstep

生成一个平滑的阶梯函数,在 edge0 和 edge1 之间进行平滑插值。

glsl
float smoothstep(float edge0, float edge1, float x)
vec2 smoothstep(vec2 edge0, vec2 edge1, vec2 x)
vec3 smoothstep(vec3 edge0, vec3 edge1, vec3 x)
vec4 smoothstep(vec4 edge0, vec4 edge1, vec4 x)

参数说明

  • edge0: 下边界
  • edge1: 上边界
  • x: 输入值 返回值:在 edge0 和 edge1 之间平滑过渡的值

使用示例

glsl
float result = smoothstep(0.0, 1.0, 0.5); // 返回0.5

mix

在两个值之间进行线性插值。

glsl
float mix(float x, float y, float a)
vec2 mix(vec2 x, vec2 y, float a)
vec3 mix(vec3 x, vec3 y, float a)
vec4 mix(vec4 x, vec4 y, float a)

参数说明

  • x: 第一个值
  • y: 第二个值
  • a: 混合因子(0.0 到 1.0 之间) 返回值:x 和 y 的线性插值结果

使用示例

glsl
float result = mix(0.0, 1.0, 0.5); // 返回0.5

clamp

将值限制在指定范围内。

glsl
float clamp(float x, float minVal, float maxVal)
vec2 clamp(vec2 x, vec2 minVal, vec2 maxVal)
vec3 clamp(vec3 x, vec3 minVal, vec3 maxVal)
vec4 clamp(vec4 x, vec4 minVal, vec4 maxVal)

参数说明

  • x: 输入值
  • minVal: 最小值
  • maxVal: 最大值 返回值:限制在 minVal 和 maxVal 之间的值

使用示例

glsl
float result = clamp(1.5, 0.0, 1.0); // 返回1.0

fract

返回输入值的小数部分。

glsl
float fract(float x)
vec2 fract(vec2 x)
vec3 fract(vec3 x)
vec4 fract(vec4 x)

参数说明

  • x: 输入值 返回值:x 的小数部分

使用示例

glsl
float result = fract(1.7); // 返回0.7

sin

计算正弦值。

glsl
float sin(float angle)
vec2 sin(vec2 angle)
vec3 sin(vec3 angle)
vec4 sin(vec4 angle)

参数说明

  • angle: 角度(弧度制) 返回值:正弦值

使用示例

glsl
float result = sin(0.0); // 返回0.0

cos

计算余弦值。

glsl
float cos(float angle)
vec2 cos(vec2 angle)
vec3 cos(vec3 angle)
vec4 cos(vec4 angle)

参数说明

  • angle: 角度(弧度制) 返回值:余弦值

使用示例

glsl
float result = cos(0.0); // 返回1.0

pow

计算幂值。

glsl
float pow(float x, float y)
vec2 pow(vec2 x, vec2 y)
vec3 pow(vec3 x, vec3 y)
vec4 pow(vec4 x, vec4 y)

参数说明

  • x: 底数
  • y: 指数 返回值:x 的 y 次幂

使用示例

glsl
float result = pow(2.0, 3.0); // 返回8.0

exp

计算自然指数。

glsl
float exp(float x)
vec2 exp(vec2 x)
vec3 exp(vec3 x)
vec4 exp(vec4 x)

参数说明

  • x: 指数 返回值:e 的 x 次幂

使用示例

glsl
float result = exp(1.0); // 返回2.718281828459045

log

计算自然对数。

glsl
float log(float x)
vec2 log(vec2 x)
vec3 log(vec3 x)
vec4 log(vec4 x)

参数说明

  • x: 输入值 返回值:x 的自然对数

使用示例

glsl
float result = log(2.718281828459045); // 返回1.0

sqrt

计算平方根。

glsl
float sqrt(float x)
vec2 sqrt(vec2 x)
vec3 sqrt(vec3 x)
vec4 sqrt(vec4 x)

参数说明

  • x: 输入值 返回值:x 的平方根

使用示例

glsl
float result = sqrt(4.0); // 返回2.0

abs

计算绝对值。

glsl
float abs(float x)
vec2 abs(vec2 x)
vec3 abs(vec3 x)
vec4 abs(vec4 x)

参数说明

  • x: 输入值 返回值:x 的绝对值

使用示例

glsl
float result = abs(-1.0); // 返回1.0

sign

返回数值的符号。

glsl
float sign(float x)
vec2 sign(vec2 x)
vec3 sign(vec3 x)
vec4 sign(vec4 x)

参数说明

  • x: 输入值 返回值:-1.0(如果 x < 0),0.0(如果 x = 0),1.0(如果 x > 0)

使用示例

glsl
float result = sign(-5.0); // 返回-1.0