2
我試圖讓這個tutorial能夠正常工作,但我遇到了兩個問題,其中之一可以找到here。另一個是以下內容。着色器中Threejs的正常值被設置爲0
爲了方便,這是應該工作的代碼,這裏是一個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
}
在頂點着色器或至少爲在片段着色器vNormal
值normal
的值似乎是0是應該顯示保持黑色的球體。只要手動更改gl_FragColor
的值,球體就會改變顏色。有人可以告訴我爲什麼這不起作用嗎?
你是我的英雄!非常感謝! – Flavio 2014-11-21 22:19:07