eliminación de superficies ocultas ernesto coto laboratorio de computación grafica universidad...
TRANSCRIPT
Eliminación de Superficies Ocultas
Ernesto Coto
Laboratorio de Computación GraficaUniversidad Central de Venezuela
2Ernesto Coto - Eliminación de Superficies Ocultas
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
3Ernesto Coto - Eliminación de Superficies Ocultas
Conocimientos Previos
• Objetos 3D
• Despliegue de Objetos en 3D
• Pipeline Gráfico
• OpenGL
4Ernesto 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
Ojo visibleNo
visible
Novisible
5Ernesto Coto - Eliminación de Superficies Ocultas
Introducción
• ¿Por qué tomarse la molestia?• 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
6Ernesto 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 !!!
7Ernesto Coto - Eliminación de Superficies Ocultas
• Niveles de Eliminación• Nivel de Píxel• Nivel de Polígono• Nivel de Objeto• Nivel del Mundo
Introducción
Ojo
8Ernesto 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
Ojo
No visibles
9Ernesto Coto - Eliminación de Superficies Ocultas
Back-Face Culling
• Implementación sencilla
• Elimina un alto porcentaje de polígonos
OjoN
N
N
O
OO
Visible si < 90º
10
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
a
b
c
N = ba x bc
11
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
Ojo
Pirámide de Visualización(Viewfrustrum)
near
far
12
Ernesto Coto - Eliminación de Superficies Ocultas
Eliminación por Pirámide de Visualización
• Se utilizan Volúmenes Delimitadores (VD) para acelerar
Ojo
13
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
14
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
15
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
16
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
17
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
18
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 !!!
19
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
20
Ernesto Coto - Eliminación de Superficies Ocultas
Eliminación usandoPortales
• 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
21
Ernesto Coto - Eliminación de Superficies Ocultas
Eliminación usandoPortales
22
Ernesto Coto - Eliminación de Superficies Ocultas
Eliminación usandoPortales
• 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
23
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
24
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
}
}
25
Ernesto Coto - Eliminación de Superficies Ocultas
Z-Buffering
Buffer de color Buffer de profundidad
26
Ernesto Coto - Eliminación de Superficies Ocultas
Z-Buffering
• Implementación• 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
27
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
28
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
29
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.
30
Ernesto Coto - Eliminación de Superficies Ocultas
Preguntas