Está en la página 1de 38

Técnicas de Culling

 Backface culling
 Clustered Backface culling
 Hierarchical view-frustum culling
 Portal culling
 Detail culling
 Occlusion culling
Concepto 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?
Etapas del pipeline gráfico
Relacion CPU – GPU
Ejemplos de la vida real

view frustum detail

backface
l occlusion
porta
Backface 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 Culling
Clustered 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 Culling
View-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 Culling
Sin Aplicar View-Frustum Culling
Aplicando View-Frustum Culling
Hierarchical 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 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
Frustum Culling
root

camera
Hierarchical View-Frustum Culling
 Con 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 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 Culling
Portal Culling

 En promedio se eliminan de 20-50% de los


poligonos dibujados
Portal Culling Dinámico

Se actualiza el
View Frustum
Culling en el
portal por cada
portal
movimiento de la eye
cámara
Portal Culling Estático

Imágenes
preprocesadas
Se muestran una
cierta cantidad de
imágenes
preprocesadas portal
Detail 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 Culling
Detail 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 Culling
Occlusion 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 Culling
Hierarchical 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 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 Maps
Hierarchical Occlusion Maps
Horizontal Culling
Horizontal Culling
Ejemplos de la vida real

view frustum detail

backface
l occlusion
porta
Ventajas 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 Culling
 Algunos algoritmos pueden ser
complejos de implementar
 Pueden en algunos casos no beneficiar a
a la aplicación

También podría gustarte