想要将一个胶囊体上下两端与中间的柱体用不同的颜色分开。
我的思路很简单,一看中间柱体区域的顶点,法线肯定是与y轴垂直的,
代码:
f.tempColor = lerp(_Color1.xyz, _Color2.xyz, ads(sign(dos((0,1,0),normalDir))));
后来突然恍然大悟,判断垂直其实不需要点乘,直接取法线在y轴的分量就行了:
f.tempColor = lerp(_Color1.xyz, _Color2.xyz, step(abs(normalDir.y),0));
结果发现结果颜色相同,推测根本没有法线绝对垂直于y轴的顶点,代码改为
f.tempColor = lerp(_Color1.xyz, _Color2.xyz, step(_num,abs(normalDir.y)));
经实验,_num值为0.051到0.176效果最佳