OpenGL fondo desaparece con ciertos modos de polígono
-
21-08-2019 - |
Pregunta
Estoy creando un simple fondo de la pendiente dibujando un quad de la siguiente manera:
glMatrixMode GL.GL_PROJECTION
glLoadIdentity
glMatrixMode GL.GL_MODELVIEW
glLoadIdentity
***glPolygonMode GL_FRONT_AND_BACK, GL_LINE***
glDisable glcDepthTest
glBegin bmQuads
glColor4d 1, 0, 0, 1
glVertex2i -1, -1
glVertex2i 1, -1
glColor4d 0, 0, 1, 1
glVertex2i 1, 1
glVertex2i -1, 1
GL.glEnd
GL.glEnable glcDepthTest
A continuación, configure mis matrices de visualización y en mí una escena 3D. Esto funciona como se espera cuando el modo de polígono (de la escena) se establece en GL_FILL, pero cuando me puse el modo de polígono (de la escena) a GL_LINE o GL_POINT, el quad fondo desaparece y el fondo se dibuja como el color especificado en < em> glClearColor .
He intentado varias opciones de fusión diferentes (incluyendo su desactivación en total), así que no creo que el problema está relacionado con el modo de mezcla.
EDITAR: Añadiendo el siguiente modo de polígono para el código de seguridad resuelve este problema
glPolygonMode GL_FRONT_AND_BACK, GL_LINE
Solución
Es necesario empujar el modo de polígono de GL_FILL en la pila antes de dibujar su polígono de fondo, a continuación, el pop detrás de la pila.