我正在努力让tutorial工作,但我遇到了两个问题,其中一个可以找到here。另一个是以下内容。
为方便起见,这是应该起作用的代码,这里是jsfiddle。
顶点着色器:
uniform mat4 projectionMatrix;
uniform mat4 modelViewMatrix;
attribute vec3 position;
uniform vec3 normal;
varying vec3 vNormal;
void main() {
test = 0.5;
vNormal = normal;
gl_Position = projectionMatrix *
modelViewMatrix *
vec4(position,1.0);
}
片段着色器: 变化的mediump vec3 vNormal;
void main() {
mediump vec3 light = vec3(0.5, 0.2, 1.0);
// ensure it's normalized
light = normalize(light);
// calculate the dot product of
// the light to the vertex normal
mediump float dProd = max(0.0, dot(vNormal, light));
// feed into our frag colour
gl_FragColor = vec4(dProd, // R
dProd, // G
dProd, // B
1.0); // A
}
顶点着色器中normal
的值或片段着色器中至少vNormal
的值似乎为0.应该显示的球体保持黑色。只要我手动更改gl_FragColor
的值,球体就会改变颜色。谁能告诉我为什么这不起作用?
答案 0 :(得分:6)