我为漫射照明写了一个着色器 法线随着3D模型的旋转而旋转,当我旋转模型时,它看起来就像旋转到。
顶点着色器
position = gl_ModelViewMatrix * gl_Vertex;
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
normal = vec4(gl_Normal, 1.0); <---
gl_TexCoord[0] = gl_MultiTexCoord0;
片段着色器
lightVector = normalize(vec4(lightPosition + cameraPosition, 1.0) - position);
resultNormal = normalize(normal.xyz); <---
答案 0 :(得分:2)
您似乎没有使用gl_NormalMatrix
改变您的法线。此外,这条线是可疑的:
normal = vec4(gl_Normal, 1.0);
法线是方向,而不是位置,因此它们的.w
组件应为0。