Está en la página 1de 8

Practica 18 Buffer Z

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 ).

Source: 3D Computer Mathematics A Mathematical Introduction to OpenGL

Mtodos: Cmo activar el Buffer Z

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)].

Source: 3D Computer Mathematics A Mathematical Introduction to OpenGL

Ejemplo de Graficacin sin Buffer-Z


Descripcin

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)

Source: 3D Computer Mathematics A Mathematical Introduction to OpenGL

Ejemplo de Graficacin sin Buffer-Z


Descripcin

2. El resultado obtenido ser similar al siguiente:

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.

Source: 3D Computer Mathematics A Mathematical Introduction to OpenGL

Ejemplo de Graficacin sin Buffer-Z


Descripcin

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.

Source: 3D Computer Mathematics A Mathematical Introduction to OpenGL

Ejemplo de Graficacin con Buffer-Z


Descripcin

6. El resultado obtenido ser similar al siguiente:

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.

Source: 3D Computer Mathematics A Mathematical Introduction to OpenGL

FIN