View
179
Download
2
Category
Preview:
Citation preview
Técnicas de CullingTécnicas de Culling
Backface cullingClustered Backface cullingHierarchical view-frustum cullingPortal cullingDetail cullingOcclusion culling
Concepto de CullingConcepto de Culling
“Cull” significa “Seleccionar de un grupo”En el contexto de computación gráfica:
No procesar datos que no vayan a contribuir a la imagen final
Una forma más práctica de definirlo:
“Rechazar de forma Rápida lo que no es visible”
¿Por qué nace el culling?¿Por qué nace el culling?
Etapas del pipeline gráficoEtapas del pipeline gráfico
Relacion CPU – GPURelacion CPU – GPU
Ejemplos de la vida realEjemplos de la vida real
view frustum detail
backface
portal occlusion
Backface CullingBackface Culling
Simple algoritmo que descarta poligonos que no miren al usuario.
Usado para: – Mejorar la estética de los objetos ocultando
partes que no se ven.– Minimizar la cantidad de poligonos que debe
dibujar la tarjeta gráfica.
Backface CullingBackface Culling
Clustered Backface CullingClustered Backface Culling
Consiste en la misma idea del Backface Culling sin embargo remueve un conjunto de poligonos en vez de removerlos uno por uno.
Tiene la misma funcionalidad que el backface culling, pero con una complejidad un poco mayor.
Es muy útil para escenas donde la cámara no se mueve.
Clustered Backface CullingClustered Backface Culling
View-Frustum CullingView-Frustum Culling
Consiste en sólo dibujar los poligonos de objetos que se encuentren parcial o completamente dentro del campo de visión de la camara.
La tecnica usa el Bounding Volume de cada objeto para determinar si el objeto se encuentra dentro del rango de visión. Si no se encuentra no se dibuja.
View-Frustum CullingView-Frustum Culling
Sin Aplicar View-Frustum CullingSin Aplicar View-Frustum Culling
Aplicando View-Frustum CullingAplicando View-Frustum Culling
Hierarchical View-Frustum CullingHierarchical View-Frustum Culling
Es una optimización del View-Frustum Culling, en donde cada Bounding Volume es ordenado jerárquicamente usando estructuras de árboles AABB,BSP u Octrees.
Cada Nodo padre representa una zona de vision que acumula objetos, siendo la raíz la zona más amplia, y los nodos hijos son cada unos de los objetos dentro de la escena.
Hierarchical View-Frustum CullingHierarchical View-Frustum Culling
El algoritmo recorre, empezando por la raíz, cada Nodo Padre y determina si está dentro del rango de visión.
Si está, entonces se verifican sus hojas (objetos) y si tambien se encuentran en el rango de visión se dibujan en caso contrario no se dibuja.
Si no está, entonces se ignora y se continua con otro nodo
Ejemplo de Hierarchical View Ejemplo de Hierarchical View Frustum CullingFrustum Culling
root
camera
Hierarchical View-Frustum CullingHierarchical View-Frustum CullingCon esta técnica se puede sacar mucha ventaja
de la coherencia temporal, esto quiere decir que probablemente muchos de los objetos dentro del rango de visión aun se encuentren ahí después de algún desplazamiento.
Se optiene de un 0%-99% de incremento en la fluidez de la aplicación gráfica
Portal CullingPortal Culling
Consiste en realizar View Frustum Culling por cada portal en la escena limitando la visión al tamaño del portal, sean estos: Puertas, Ventanas, Celdas, Portales, etc.
Es muy usado en Videojuegos y en simulaciones gráficas.
Portal CullingPortal Culling
Portal CullingPortal Culling
En promedio se eliminan de 20-50% de los poligonos dibujados
Portal Culling DinámicoPortal Culling Dinámico
portaleye
Se actualiza el Se actualiza el View Frustum View Frustum Culling en el Culling en el portal por cada portal por cada movimiento de la movimiento de la cámaracámara
Portal Culling EstáticoPortal Culling Estático
Imágenes preprocesadas
Se muestran una cierta cantidad de imágenes preprocesadas portal
Detail CullingDetail Culling
El detail culling consiste en eliminar poligonos de un objeto dependiendo de que tan lejos este del espectador.
Mientras que otras técnicas de culling aumentan rendimiento sin sacrificar calidad el Detail Culling por contra sacrifica calidad en favor de rendimiento
Detail CullingDetail Culling
Detail CullingDetail Culling
El método consiste en proyectar el Bounding Volume asociado al objeto y determinar cuantos pixeles ocupa dentro de tú visión, dependiendo de ciertos umbrales definidos por el programador, el objeto se dibuja con mayor o menor calidad o sencillamente no se dibuja.
Recordemos View-Frustum CullingRecordemos View-Frustum Culling
Occlusion CullingOcclusion Culling
El método consiste en revisar si existe solapamiento de polígonos y objetos por otros objetos. Si se determina que existe tal solapamiento se eliminan los polígonos ocultos.
Existen dos maneras en aplicarlo:
– Hierarchical z-Buffering– Hierarchical Occlusion Maps
Occlusion CullingOcclusion Culling
Hierarchical z-BufferingHierarchical z-Buffering
Consiste en estructurar cada elemento de la escena en una Jerarquía de elementos en el que se ordenan por objetos ocluidos o no ocluidos.
Esta jerarquía va cambiando dependiendo del movimiento de la escena.
Hierarchical Occlusion MapsHierarchical Occlusion Maps
Consiste en preprocesar una imagen 2D de la visión existente de la escena y a partir de ahí mapear los pixeles que se pueden ver, luego se realiza un transformado de esa imagen a la geometría para determinar cuales son los polígonos que se deben dibujar.
Hierarchical Occlusion MapsHierarchical Occlusion Maps
Hierarchical Occlusion MapsHierarchical Occlusion Maps
Horizontal CullingHorizontal Culling
Horizontal CullingHorizontal Culling
Ejemplos de la vida realEjemplos de la vida real
view frustum detail
backface
portal occlusion
Ventajas del CullingVentajas del Culling
Dependiendo de la técnica se puede mejorar la estética de la escena
Se aprovecha mejor el pipeline gráfico obteniendo un mejor rendimiento de la aplicación gráfica
Desventajas del CullingDesventajas del Culling
Algunos algoritmos pueden ser complejos de implementar
Pueden en algunos casos no beneficiar a a la aplicación
Recommended