我需要在颜色 A 和 B 之间进行线性插值,以便在 t=.1 时颜色为 0.5A + 0.5B。我怎样才能做到这一点?
我需要在着色器中使用它,所以不能选择条件语句,因为分支会变得非常慢。我需要表达式形式的解决方案。
这是我的解决方案,速度很慢:
fixed3 color1= lerp(colorA, colorB, (1.0 - t) * .5 );
fixed3 borderColor= lerp(colorA, colorB, (1.0 - .1) * .5);
fixed3 color2= lerp(colorA, borderColor, t * 10.0 );
finalColor = lerp(color2, color1, saturate( (t - .1) * 100000.0) );
最后一个 lerp 是确保插值是 0 或 1。
谢谢。