【发布时间】:2015-08-03 15:11:59
【问题描述】:
在漫射照明模型或其他模型中,一个像素的最终颜色值应该是其他两个光颜色值的乘积,我不太明白。 像这样:
float4 c;
c.rgb = (s.Albedo * _LightColor0.rgb*diff);
【问题讨论】:
在漫射照明模型或其他模型中,一个像素的最终颜色值应该是其他两个光颜色值的乘积,我不太明白。 像这样:
float4 c;
c.rgb = (s.Albedo * _LightColor0.rgb*diff);
【问题讨论】:
这是因为您还需要考虑灯光的颜色以及从周围反射的颜色。
在您提交的代码中,s.Albedo 是对象本身的颜色,_LightColor0.rgb 提供主光的颜色(即场景中的定向光)。作为一个实验,首先尝试将主光的颜色从白色变为红色再变为蓝色,您会注意到会发生什么。
同样,如果没有 _LightColor0.rgb * diff 相乘,该对象将提供纯色并且看起来更像一个 2D 对象。
【讨论】: