Opengl: 2D HUD sobre 3D

He visto algunas preguntas publicadas aquí sobre el tema y todavía no puedo entender por qué aparece mi 2D HUD pero hace que mi mundo renderizado en 3D desaparezca.

EDITAR Parece que la escena 2D está tomando el control de toda la pantalla, así que de vez en cuando puedo ver la escena 3D que falla a través de la escena 2D. Entonces, aunque solo se trata de renderizar un quad de 10 x 10 píxeles, lo renderiza y luego deja en blanco el resto de la pantalla.

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();

Entonces cambio buffers

Aquí está el orden de mi código. Es como si hiciera el espacio 3d y luego crea el espacio 2d que a su vez cancela el espacio 3d.

Respuestas a la pregunta(3)

Su respuesta a la pregunta