Eliminación de Superficies Ocultas Laboratorio de Computación Grafica Universidad Central de Venezuela Eliminación de Superficies Ocultas Ernesto Coto
Contenido Introducción Back-Face Culling Eliminación por pirámide visualización Eliminación por nivel de detalle Eliminación por oclusión Eliminación usando portales Z-Buffering Ernesto Coto - Eliminación de Superficies Ocultas
Conocimientos Previos Objetos 3D Despliegue de Objetos en 3D Pipeline Gráfico OpenGL Ernesto Coto - Eliminación de Superficies Ocultas
Introducción Técnica de aceleración de despliegue de escenas Evita el despliegue innecesario de geometrías que no pueden ser vistas por el observador visible No visible Ojo No visible Ernesto Coto - Eliminación de Superficies Ocultas
Introducción ¿Por qué tomarse la molestia? La respuesta es obvia Las geometrías fuera del campo de visión son cortadas por el hardware El hardware también puede manejar ocultamiento de superficies La respuesta es obvia Eficiencia !!! A pesar de las capacidades del hardware podrían procesarse muchas primitivas innecesarias Ernesto Coto - Eliminación de Superficies Ocultas
Introducción ¿Por qué no desplegar todo? Limitaciones en el número de polígonos Limitaciones de memoria Limitaciones en la velocidad de transferencia de los buses Mientras más temprano se eliminen los objetos ocultos … mejor !!! Ernesto Coto - Eliminación de Superficies Ocultas
Introducción Niveles de Eliminación Nivel de Píxel Nivel de Polígono Nivel de Objeto Nivel del Mundo Ojo Ernesto Coto - Eliminación de Superficies Ocultas
Back-Face Culling Eliminación a nivel de Polígono Idea: Las caras traseras de objetos cerrados y no transparentes no pueden ser vistas directamente No visibles Ojo Ernesto Coto - Eliminación de Superficies Ocultas
Back-Face Culling Implementación sencilla Elimina un alto porcentaje de polígonos N Visible si < 90º O Ojo Ernesto Coto - Eliminación de Superficies Ocultas
Back-Face Culling Use los vértices para obtener la normal Los vértices de los polígonos deben estar ordenados en dirección contraria a las agujas del reloj N = ba x bc c b a Ernesto Coto - Eliminación de Superficies Ocultas
Eliminación por Pirámide de Visualización Eliminación a nivel de Mundo y de Objeto Los objetos que están fuera de la pirámide de visualización no se procesan far near Ojo Pirámide de Visualización (Viewfrustrum) Ernesto Coto - Eliminación de Superficies Ocultas
Eliminación por Pirámide de Visualización Se utilizan Volúmenes Delimitadores (VD) para acelerar Ojo Ernesto Coto - Eliminación de Superficies Ocultas
Eliminación por Pirámide de Visualización Utilice un enfoque jerárquico para acelerar aun más Raíz Ernesto Coto - Eliminación de Superficies Ocultas
Eliminación por nivel de Detalle Eliminación a nivel de Mundo y de Objeto Los objetos que aportan poco a la escena pueden ser omitidos Ernesto Coto - Eliminación de Superficies Ocultas
Eliminación por nivel de Detalle No hay casi diferencia, pero el despliegue es mucho mas rápido Sin eliminación Con eliminación Ernesto Coto - Eliminación de Superficies Ocultas
Eliminación por Oclusión Eliminación a nivel de Mundo y de Objeto Los objetos completamente ocluidos por otros objetos, se eliminan Difícil de resolver Ojo Imagen Final Ernesto Coto - Eliminación de Superficies Ocultas
Eliminación por Oclusión Procesar los objetos del frente hacia atrás Mantener un horizonte de oclusión Horizonte de oclusión Ernesto Coto - Eliminación de Superficies Ocultas
Eliminación por Oclusión Para procesar un nuevo objeto Calcular caja de proyección alineada a los ejes Comparar contra el horizonte de oclusión Eliminado !!! Ernesto Coto - Eliminación de Superficies Ocultas
Eliminación por Oclusión Cuando un objeto se considere visible Agregue su “poder de oclusión” al horizonte Ernesto Coto - Eliminación de Superficies Ocultas
Eliminación usando Portales Usado en modelos arquitectónicos Las paredes son “oclusores” Cuartos y pasillos son “celdas” Puertas y ventanas son “portales” Dado un punto de vista, se calcula el Conjunto Potencialmente Visible (CPV) de objetos Ernesto Coto - Eliminación de Superficies Ocultas
Eliminación usando Portales Ernesto Coto - Eliminación de Superficies Ocultas
Eliminación usando Portales Excelente para escenas interiores Excelente para escenas urbanas con grandes oclusores Deficiente para escenas generales con oclusores pequeños La identificación de los portales y las celdas generalmente es manual Ernesto Coto - Eliminación de Superficies Ocultas
Z-Buffering Eliminación a nivel de píxel Se mantiene un buffer de profundidades del tamaño de la imagen El buffer contiene la profundidad de los píxeles más cercanos al ojo que se hayan dibujado Ojo En buffer Ernesto Coto - Eliminación de Superficies Ocultas
Z-Buffering Para (cada cara F) Para (cada píxel (x,y) en la cara) { profundidad = profundidad de F en (x,y) si (profundidad < d[x][y]) { //F es el más cercano hasta ahora c= color de F en (x,y) pintar el píxel (x,y) de color c d[x][y] = profundidad //actualizar el buffer } Ernesto Coto - Eliminación de Superficies Ocultas
Z-Buffering Buffer de color Buffer de profundidad Ernesto Coto - Eliminación de Superficies Ocultas
Z-Buffering Implementación Posible problema: Z-Fighting Detalle clave: Es innecesario calcular la profundidad de cada uno de los píxeles En lugar de eso: calcule la profundidad de los vértices del polígono e interpole linealmente la profundidad de los píxeles internos Posible problema: Z-Fighting Ernesto Coto - Eliminación de Superficies Ocultas
Z-Buffering La interpolación de los valores de las profundidades de los píxeles usando los vértices es sencilla Costoso para escenas simples pero excelente para escenas complejas Es necesario gastar más memoria Frecuentemente en hardware Ernesto Coto - Eliminación de Superficies Ocultas
Resumen Concepto de Eliminación de Superficies Ocultas Motivación Niveles de Eliminación Técnicas conocidas de Eliminación de Superficies Ocultas Ernesto Coto - Eliminación de Superficies Ocultas
Bibliografía Foley, James D. ; van Dam, Andries ; Feiner, Steven K. ; Hughes, Jhon F. Computer Graphics: Principles and Practice in C. 2da Edición. Addison Wesley Professional.1996. Moller, Tomas ; Haines, Eric. Real-Time Rendering. A.K. Peters, Ltd. 1999. Sudarsky, Oded ; Gotsman, Craig. Dynamic Scene Occlusion Culling. IEEE Transactions on Visualization and Computer Graphics, vol. 5, no. 1, pp. 13-29, Enero-Marzo 1999. Sutherland, I. E. ; Sproull, R. F.; Schumacker, R. A.. A Characterization of Ten Hidden-Surface Algorithms. ACM Computing Surveys, vol. 6, num. 1, pp. 1-55. Marzo, 1974. Ernesto Coto - Eliminación de Superficies Ocultas
Preguntas Ernesto Coto - Eliminación de Superficies Ocultas