float4 c;
c.rgb = (s.Albedo * _LightColor0.rgb*diff);
答案 0 :(得分:1)
这是因为你还需要考虑灯光的颜色和周围反射的颜色。
在您提交的代码中s.Albedo
是对象本身的颜色,_LightColor0.rgb
提供主要灯光的颜色(即场景中的方向性灯光)。作为一项实验,首先尝试将主灯的颜色从白色变为红色再变为蓝色,您会注意到会发生什么。
如果没有_LightColor0.rgb * diff
乘以该对象,则会产生平面颜色,看起来更像是2D对象。