Upload
angel-garcia
View
37
Download
2
Embed Size (px)
Citation preview
Practica 18Buffer Z
OBJETIVO: Aprender el uso y modo de empleo del Buffer Z para gráficos por
computadora.
Conceptos
Concepto: Buffer Z
Definición: El BUFFER Z, o el buffer de profundidad es la parte de la memoria de nuestra tarjeta gráfica encargada de la visibilidad de nuestros gráficos 3D según las coordenadas de sus pixeles, con lo que se puede gestionar qué elementos de una escena renderizada son visibles y cuales permanecerán ocultos según sus posiciones en el eje Z ( distancia a cámara ).
Source: 3D Computer Mathematics – A Mathematical Introduction to OpenGL
Métodos:Cómo activar el Buffer Z
Comando: gl.glEnable(GL2.GL_DEPTH_TEST);
Descripción: Método empleado para activar capacidades de OpenGL durante el renderizado de las imágenes. 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, después de la llamada a [gl.glMatrixMode(GL2.GL_MODELVIEW)].
Source: 3D Computer Mathematics – A Mathematical Introduction to OpenGL
Ejemplo de Graficación sin Buffer-Z
Descripción
1. Usando el modo de proyección perspectiva, cree una aplicación en Java que dibuje los 2 triángulos siguientes, con el color especificado.
Triángulo 1 (Rojo): Vértice 1: (-2, -1, 0) Vértice 2: ( 2, -1, 0) Vértice 3: ( 0, 2, 0) Triángulo 2 (Verde): Vértice 1: (-1, -0.5, -1) Vértice 2: ( 1, -0.5, -1) Vértice 3: ( 0, 1.0, -1)
Source: 3D Computer Mathematics – A Mathematical Introduction to OpenGL
Ejemplo de Graficación sin Buffer-ZDescripción
2. El resultado obtenido será similar al siguiente:
Source: 3D Computer Mathematics – A Mathematical Introduction to OpenGL
OBSERVE que el triángulo verde se puede ver, sin embargo, de
acuerdo a su coordenada en Z se debería ocultar por el triángulo
rojo.
Esto ocurre, porque el triángulo verde se dibujó después del
rojo, y el Buffer-Z no está activado.
Ejemplo de Graficación sin Buffer-Z
Descripción
3. Para activar el Buffer-Z, agregue el comando [gl.glEnable(GL2.GL_DEPTH_TEST);], en la función init después de haber invocado a la función [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 aplicación, y observe el nuevo resultado.
Source: 3D Computer Mathematics – A Mathematical Introduction to OpenGL
Ejemplo de Graficación con Buffer-ZDescripción
6. El resultado obtenido será similar al siguiente:
Source: 3D Computer Mathematics – A Mathematical Introduction to OpenGL
OBSERVE que ahora el triángulo verde ya no se puede ver, puesto
que el Buffer-Z administra la visibilidad de los objetos de
acuerdo a su posición.
FIN