在漫射照明模型或其他模型中,一个像素的最终颜色值应该是另外两个光的颜色值的乘积,我不太明白。这样的:
float4 c;
c.rgb = (s.Albedo * _LightColor0.rgb*diff);
这是因为你还需要考虑灯光的颜色和周围反射的光线。
在您提交的代码中,s.Albedo
是对象本身的颜色,_LightColor0.rgb
提供主光的颜色(即场景中的定向光)。作为一个实验,首先试着改变你的主灯的颜色,从白色到红色再到蓝色,你会注意到发生了什么。
同样,没有_LightColor0.rgb * diff
乘以对象将给出平面颜色,看起来更像一个2D对象。