GLSL的clamp函数用于限制一个值的范围在指定的最小值和最大值之间。该函数返回一个限制后的值。
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
:限制范围的最大值。一个值,它是将参数x
限制在最小值minVal
和最大值maxVal
之间后得到的结果。
以下是一个示例,它使用clamp函数将矢量的每个分量限制在0和1之间:
vec3 v = vec3(1.2, -0.5, 2.0);
vec3 clampedV = clamp(v, vec3(0.0), vec3(1.0));
在这个例子中,向量v
的每个分量都被限制在0和1之间。因此,得到的限制后的值为(1.0, 0.0, 1.0)
。
x
的值,它只是返回一个限制后的值。minVal
必须小于或等于最大值maxVal
。