关于
fixed halfLambert = dot(worldLightDir,i.worldNormal)*0.5+0.5; fixed3 rampRgb = tex2D(_RampTex, fixed2(halfLambert,halfLambert)).rgb;
这两句代码理解:
1、当光源与法线夹角为0时(光线垂直照射),采样的纹理VU为(1,1),也就是获取纹理最右上角的颜色;当光源与法线夹角为90度时(光线平行照射),采样的纹理VU为(0.5,0.5)也就是中心点
2、也就是说当前渐变纹理的采样为从(0.5,0.5)到(1,1)的直线uv坐标的进行采样
3、本人尝试将
fixed halfLambert = dot(worldLightDir,i.worldNormal)*0.5+0.5;
改为
fixed halfLambert = dot(worldLightDir,i.worldNormal);
然而会使其颜色过渡较大导致不自然
详情见409