在OpenGL中绘制法线的正确方法?

Blu*_*pud 4 opengl objective-c normals

现在我正在OpenGl中编写一个程序.我正在从文件渲染一些复杂的3D图形.在对代码进行三重检查之后,我知道正在读取所有值.唯一表现奇怪的是法线.我是这样画的:

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


    glNormal3fv(norm1);
    glNormal3fv(norm2);
    glNormal3fv(norm3);
Run Code Online (Sandbox Code Playgroud)

正在从GLFloats中读取值.告诉我正确的方式,或者至少我做错了什么.

Tim*_*Tim 7

当你调用时glVertex,它会完成一个顶点,所以你需要在那之前设置所有其他顶点状态.您需要在完成顶点之前设置顶点的法线.

它应该如下所示:

glNormal3fv(norm1);
glVertex3fv(vert1);

glNormal3fv(norm2);
glVertex3fv(vert2);

glNormal3fv(norm3);
glVertex3fv(vert3);
Run Code Online (Sandbox Code Playgroud)