【发布时间】:2016-04-12 05:21:08
【问题描述】:
在逐片段点光源中,顶点法线在点光源计算中扮演什么角色?
我的理解是,片段的亮度仅取决于它与光源的距离,方向矢量无关紧要。
示例着色器
precision mediump float;
uniform vec3 u_LightPos;
varying vec3 v_Position;
varying vec4 v_Color;
varying vec3 v_Normal;
void main()
{
float distance = length(u_LightPos - v_Position);
vec3 lightVector = normalize(u_LightPos - v_Position);
float diffuse = max(dot(v_Normal, lightVector), 0.1);
diffuse = diffuse * (1.0 / (1.0 + (0.25 * distance * distance)));
gl_FragColor = v_Color * diffuse;
}
【问题讨论】: