shader中的常用函数

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) 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值