1156人加入学习
(75人评价)
Unity Shader入门(Unity2018.3)

完成与2019-03-31

价格 ¥ 380.00

关于

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

[展开全文]