为什么当我添加绘制三角形的代码时形状变得隐藏



我写了这段代码来绘制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();

我错了什么?

此代码存在问题

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

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

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

最新更新