-1

我为绘制 X 轴编写了这段代码:

   glPushMatrix();
   glColor3f(0.5f, 0, 0);
   glVertex3f(-size, 0, 0);
   glVertex3f( size, 0, 0);
   glPopMatrix();

但是当我添加这部分代码来绘制箭头时;所有其他形状(例如 shperes)都被隐藏:

 glBegin(GL_TRIANGLES);     // Drawing Using Triangles
 glVertex3f( 10.0f, 0.0f, 0.0f);        // Top
 glVertex3f(9.0f, 0.25f, 0.0f);     // Bottom Left
 glVertex3f(9.0f,-0.25f, 0.0f);     // Bottom Right
 glEnd();

我怎么了?

4

1 回答 1

1

这段代码有问题

 glPushMatrix();
 glColor3f(0.5f, 0, 0);
 glVertex3f(-size, 0, 0);
 glVertex3f( size, 0, 0);
 glPopMatrix();

glVertex 只能在 glBegin 和 glEnd 之间调用。但是glBegin和glEnd之间不允许调用glPushMatrix和glPopMatrix。您编写它们的方式无论如何都没有任何效果,因为没有发生实际的矩阵操作。

另一方面,所有基元的 Z 坐标是相同的。所以事情会互相透支也是可以理解的。我还打赌你根本没有启用深度测试,所以无论如何都没有关系,因为如果没有深度测试,无论深度如何,事情都会透支其他事情。

于 2013-10-26T10:14:41.863 回答