现在我正在OpenGl中编写一个程序。我正在从文件渲染一些复杂的3D图形。在对代码进行三重检查之后,我知道正在读取所有值。唯一表现奇怪的是法线。我是这样画的:
glVertex3fv(vert1);
glVertex3fv(vert2);
glVertex3fv(vert3);
glNormal3fv(norm1);
glNormal3fv(norm2);
glNormal3fv(norm3);
正在从GLFloats中读取值。告诉我正确的方式,或者至少我做错了。
答案 0 :(得分:7)
当你调用glVertex
时,它会完成一个顶点,所以你需要在此之前设置所有其他顶点状态。您需要在完成顶点之前设置顶点的法线。
它应该是这样的:
glNormal3fv(norm1);
glVertex3fv(vert1);
glNormal3fv(norm2);
glVertex3fv(vert2);
glNormal3fv(norm3);
glVertex3fv(vert3);