什么是Shader里的lerp

翻找无简单的解释,于是自己试验了下, 以下几种写法的效果是一样的


写法1:lerp(a, b, a.a)
写法2:b * b.a +  (a) *(1- b.a) ;
写法3:a +  (b-a) * b.a;


下面解释下什么是lerp的功能:
官方解释
float lerp(float a, float b, float w) {
  return a + w*(b-a);
}
木有看懂

我的解释:把上面的公式展开, 等价于
float lerp(float a, float b, float w) {
  return a(1-w) + b * w;
}
说白了,也就是一个混合公式,他们俗称插值, 只不过w相当于以第二个参数为源,第一个参数为目标。 直白点,就是把b向a上混合

你可能感兴趣的:(Unity3d,Shader)