1.Step(a , x) 如果x<a返回0;如果x>或=a返回1
2. lerp(a , b , w) a与b为同类形,即都是float或者float2之类的,那lerp函数返回的结果也是与ab同类型的值。w是比重,在0到1之间,当w为0时返回a,为1时返回b,在01之间时,以比重w将ab进行线性插值计算.运算公式是 : (1-w)*a+b*w ;
3.Clamp(x , a , b) 如果x < a 则返回a ,如果x > b 则返回b ,如果x在a 和 b之间,则返回x值.
4.smoothstep() 可以用来生成0到1的平滑过渡值,它也叫平滑阶梯函数。
smoothstep 源码如下:
float smoothstep(float t1, float t2, float x) {
x = clamp((x - t1) / (t2 - t1), 0.0, 1.0);
return x * x * (3 - 2 * x);
}
根据上式,我们找些数字代入,假设 t1 = -2,t2 = 3:
y = (x - (-2)) / (3 - (-2)) 。且 result = y * y * (3 - 2 * y)。
x还是取两个特殊值,分别为-2,3;
当x=-2,y=0,result = 0;
当x=3,y=1,result = 1;
5.pow(x , y) 用来计算以x为底的y次方值
6.saturate(x) 例如saturate(x)的作用是如果x取值小于0,则返回值为0。如果x取值大于1,则返回值为1。若x在0到1之间,则直接返回x的值.同样的也可以帮你把颜色的范围限制在0 到 1 之间,例如saturate(someColor.rgb)