4

现在我正在用 OpenGL 编写一个程序。我正在从文件中渲染一些复杂的 3D 图形。在对代码进行三次检查后,我知道所有值都被正确读取。唯一表现怪异的是法线。我是这样画的:

     glVertex3fv(vert1);
     glVertex3fv(vert2);
     glVertex3fv(vert3);


    glNormal3fv(norm1);
    glNormal3fv(norm2);
    glNormal3fv(norm3);

这些值是从 GLFloats 中读取的。告诉我正确的方法,或者至少告诉我我做错了什么。

4

1 回答 1

7

当您调用glVertex时,会完成一个顶点,因此您需要在此之前设置所有其他顶点状态。您需要在完成之前设置顶点的法线。

它应该如下所示:

glNormal3fv(norm1);
glVertex3fv(vert1);

glNormal3fv(norm2);
glVertex3fv(vert2);

glNormal3fv(norm3);
glVertex3fv(vert3);
于 2012-06-28T16:38:46.773 回答