在opengl中绘制曲面法线

时间:2014-06-24 00:52:18

标签: opengl lighting normals

我在opengl画了一个倾斜屋顶的房子。 我在定义倾斜屋顶的法线时遇到问题。它不会与轴平行,所以这就是我用过的:

glBindTexture(GL_TEXTURE_2D,texture[3]);
glBegin(GL_QUADS);
glColor3f(1,1,0);
glNormal3f(0,cos(th),sin(th));

glTexCoord2f(0,0);
glVertex3f(2,1.25,1);
glTexCoord2f(1,0);
glVertex3f(2,2.2,0);
glTexCoord2f(1,1);
glVertex3f(-2,2.2,0);
glTexCoord2f(0,1);
glVertex3f(-2,1.25,1);
glEnd();
glBindTexture(GL_TEXTURE_2D,texture[3]);
glBegin(GL_QUADS);

glColor3f(1,1,0);
glNormal3f(0,cos(-th),sin(-th));
//glBegin(GL_QUADS);
glTexCoord2f(0,0);
glVertex3f(-2,1.25,-1);
glTexCoord2f(1,0);
glVertex3f(-2,2.2,0);
glTexCoord2f(1,1);
glVertex3f(2,2.2,0);
glTexCoord2f(0,1);
glVertex3f(2,1.25,-1);
glEnd();

我的程序允许用户选择他希望看到对象的角度是该角度。

看来灯光不对。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

  

我的程序允许用户选择他希望看到对象的角度是该角度。

然后这是用于正常的错误值。您应该从顶点计算法线。四边形由两个三角形组成。三角形有3条边。取三角形两边的叉积给出三角形的法线。