我对GLSL很新,并且我试图让我加载的两个立方体根据每个面的法线有不同的颜色。相反,两个立方体的整体颜色完全相同。当我旋转相机时,颜色从蓝色变为绿色和红色,但两个立方体的所有边始终保持相同的颜色。我想要更多沿着立方体顶部的线条是蓝色,一边是绿色,一边是红色等等。我不特别在意哪一面是哪种颜色,只要不同的边不是所有颜色都一样。
顶点着色器
uniform mat4 gl_ModelViewMatrix;
varying vec3 viewVert;
varying vec3 normal;
void main()
{
viewVert = gl_ModelViewMatrix * gl_Vertex;
normal = gl_NormalMatrix * gl_Normal;
gl_Position = ftransform();
}
片段着色器
uniform mat4 gl_ModelViewMatrix;
varying vec3 viewVert;
varying vec3 normal;
void main()
{
vec3 nor = normalize(normal);
gl_FragColor = vec4(nor.x,nor.y,nor.z, 1.0);
}
我认为我在空格之间进行转换并导致所有法线都相同,但我不确定是什么。也许我不小心使用相机的正常而不是正常的面孔?