Я рассмотрел некоторые вопросы, размещенные здесь по этому вопросу, и все еще не могу понять, почему появляется мой 2d HUD, но исчезает мой 3D-рендеринг.
РЕДАКТИРОВАТЬ: Кажется, что сцена 2d управляет всем экраном, поэтому время от времени я вижу, как 3D-сцена сжимается через сцену 2d. Таким образом, хотя я единственный, кто хотел бы сделать квад, который имеет 10 x 10 пикселей, он отображает это, а затем удаляет остальную часть экрана.
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(40.0,(GLdouble)x/(GLdouble)y,0.5,20.0);
glMatrixMode(GL_MODELVIEW);
glViewport(0,0,x,y);
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0.0,-0.5,-6.0);
glPushMatrix();
..Draw some 3d stuff...
glPopMatrix();
// Start 2d
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, -1, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glColor3f(0.0f, 255.0f, 1.0f);
glBegin(GL_QUADS);
glVertex2f(0.0, 0.0);
glVertex2f(10.0, 0.0);
glVertex2f(10.0, 10.0);
glVertex2f(0.0, 10.0);
glEnd();
Затем я заменяю буферы
Вот порядок моего кода. Таким образом, 3D-пространство делает пространство 2d, которое, в свою очередь, отменяет трехмерное пространство.