OBJETIVO: Aprender el uso y modo de empleo del Buffer Z para grficos por computadora.
Conceptos
Concepto: Definicin:
BufferZ
El BUFFER Z, o el buffer de profundidad es la parte de la memoria de nuestra tarjeta grfica encargada de la visibilidad de nuestros grficos 3D segn las coordenadas de sus pixeles, con lo que se puede gestionar qu elementos de una escena renderizada son visibles y cuales permanecern ocultos segn sus posiciones en el eje Z ( distancia a cmara ).
Comando:
gl.glEnable(GL2.GL_DEPTH_TEST);
Descripcin: Mtodo empleado para activar capacidades de OpenGL durante el renderizado de las imgenes. La constante GL2.GL_DEPTH_TEST define que se va a activar el Buffer Z, o Buffer de Profundidad. El comando deber ser invocado en init una vez que se halla activado el modo matriz MODELO-VISTA (es decir, despus de la llamada a [gl.glMatrixMode(GL2.GL_MODELVIEW)].
1. Usando el modo de proyeccin perspectiva, cree una aplicacin en Java que dibuje los 2 tringulos siguientes, con el color especificado. Tringulo 1 (Rojo): Vrtice 1: (-2, -1, 0) Vrtice 2: ( 2, -1, 0) Vrtice 3: ( 0, 2, 0) Tringulo 2 (Verde): Vrtice 1: (-1, -0.5, -1) Vrtice 2: ( 1, -0.5, -1) Vrtice 3: ( 0, 1.0, -1)
OBSERVE que el tringulo verde se puede ver, sin embargo, de acuerdo a su coordenada en Z se debera ocultar por el tringulo rojo.
Esto ocurre, porque el tringulo verde se dibuj despus del rojo, y el Buffer-Z no est activado.
3. Para activar el Buffer-Z, agregue el comando [gl.glEnable(GL2.GL_DEPTH_TEST); ], en la funcin init despus de haber invocado a la funcin [gl.glMatrixMode(GL2.GL_MODELVIEW); ]. 4. Finalmente, modifique la llamada [gl.glClear(gl.GL_COLOR_BUFFER_BIT );] por la siguiente:
gl.glClear(gl.GL_COLOR_BUFFER_BIT|gl.GL_DEPTH_BUFFER_BIT);
y con esto estar empleando el Buffer-Z. 5. Vuelva a ejecutar su aplicacin, y observe el nuevo resultado.
OBSERVE que ahora el tringulo verde ya no se puede ver, puesto que el Buffer-Z administra la visibilidad de los objetos de acuerdo a su posicin.
FIN