我遇到了闪电问题。闪电适用于:
//...
gluSphere(qobj, r1, precision, precision);
//...
但它不起作用:
//...
glBegin(GL_TRIANGLES);
glColor3fv(colors[4]);
glVertex3fv(vertices[triangles[fig2][1]]);
glVertex3fv(vertices[triangles[fig2][2]]);
glVertex3fv(vertices[triangles[fig2][3]]);
glEnd();
//...
它的外观如下:
img http://img72.imageshack.us/img72/2158/36156234.jpg
正如您所看到的,只有“gluSphere”变亮了。如何在 GL_TRIANGLES 和 GL_POLYGON 上制作相同的闪电?
最佳答案
照明引擎需要知道多边形面向哪个方向。 OpenGL 不需要自己计算这些信息,而是要求您通过法线提供此信息:
//...
glBegin(GL_TRIANGLES);
glColor3fv(colors[4]);
// put a call to glNormal3fv or glNormal3f here!
glVertex3fv(vertices[triangles[fig2][1]]);
glVertex3fv(vertices[triangles[fig2][2]]);
glVertex3fv(vertices[triangles[fig2][3]]);
glEnd();
//...
关于c - 过剩闪电在 GL_TRIANGLES 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14480147/