GLSL所有面孔都具有相同的法线

时间:2015-02-18 02:53:05

标签: opengl matrix vector glsl

我对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);
}

我认为我在空格之间进行转换并导致所有法线都相同,但我不确定是什么。也许我不小心使用相机的正常而不是正常的面孔?

0 个答案:

没有答案