我编写了 CAD 软件(Protocase Designer),它运行良好。除了在 ATI 卡上它一直崩溃的地方。理论上,显示列表已被弃用,也许 ATI 卡不完全支持它们,我决定用顶点缓冲区对象替换显示列表。我大部分时间都在工作,但是当我输入以下代码时,由于某种原因,照明变得一团糟。有谁知道为什么?我将代码放在顶点缓冲区对象的渲染之前还是之后都没有关系。
gl.glPushMatrix();
gl.glTranslated(sX, sY, sZ);
// -- sphere --
GLU glu = new GLU();
GLUquadric quad = glu.gluNewQuadric();
glu.gluQuadricDrawStyle(quad, GLU.GLU_FILL);
glu.gluQuadricNormals(quad, GLU.GLU_FLAT);
glu.gluQuadricOrientation(quad, GLU.GLU_OUTSIDE);
glu.gluSphere(quad, .1, 16, 16);
glu.gluCylinder(quad, .05, .05, .5, 16, 2);
glu.gluDeleteQuadric(quad);
gl.glPopMatrix();
任何想法为什么?这并没有弄乱显示列表版本。我正在渲染的是一个使用 glu 镶嵌器的带有孔的外壳。
谢谢!