ténicas de culling

38
Técnicas de Culling Técnicas de Culling Backface culling Clustered Backface culling Hierarchical view-frustum culling Portal culling Detail culling Occlusion culling

Upload: miguel-alfonzo-chang

Post on 03-Jul-2015

182 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Ténicas de Culling

Técnicas de CullingTécnicas de Culling

Backface cullingClustered Backface cullingHierarchical view-frustum cullingPortal cullingDetail cullingOcclusion culling

Page 2: Ténicas de 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”

Page 3: Ténicas de Culling

¿Por qué nace el culling?¿Por qué nace el culling?

Page 4: Ténicas de Culling

Etapas del pipeline gráficoEtapas del pipeline gráfico

Page 5: Ténicas de Culling

Relacion CPU – GPURelacion CPU – GPU

Page 6: Ténicas de Culling

Ejemplos de la vida realEjemplos de la vida real

view frustum detail

backface

portal occlusion

Page 7: Ténicas de Culling

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.

Page 8: Ténicas de Culling

Backface CullingBackface Culling

Page 9: Ténicas de 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.

Page 10: Ténicas de Culling

Clustered Backface CullingClustered Backface Culling

Page 11: Ténicas de 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.

Page 12: Ténicas de Culling

View-Frustum CullingView-Frustum Culling

Page 13: Ténicas de Culling

Sin Aplicar View-Frustum CullingSin Aplicar View-Frustum Culling

Page 14: Ténicas de Culling

Aplicando View-Frustum CullingAplicando View-Frustum Culling

Page 15: Ténicas de 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.

Page 16: Ténicas de Culling

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

Page 17: Ténicas de Culling

Ejemplo de Hierarchical View Ejemplo de Hierarchical View Frustum CullingFrustum Culling

root

camera

Page 18: Ténicas de Culling

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

Page 19: Ténicas de Culling

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.

Page 20: Ténicas de Culling

Portal CullingPortal Culling

Page 21: Ténicas de Culling

Portal CullingPortal Culling

En promedio se eliminan de 20-50% de los poligonos dibujados

Page 22: Ténicas de Culling

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

Page 23: Ténicas de Culling

Portal Culling EstáticoPortal Culling Estático

Imágenes preprocesadas

Se muestran una cierta cantidad de imágenes preprocesadas portal

Page 24: Ténicas de Culling

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

Page 25: Ténicas de Culling

Detail CullingDetail Culling

Page 26: Ténicas de 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.

Page 27: Ténicas de Culling

Recordemos View-Frustum CullingRecordemos View-Frustum Culling

Page 28: Ténicas de 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

Page 29: Ténicas de Culling

Occlusion CullingOcclusion Culling

Page 30: Ténicas de 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.

Page 31: Ténicas de Culling

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.

Page 32: Ténicas de Culling

Hierarchical Occlusion MapsHierarchical Occlusion Maps

Page 33: Ténicas de Culling

Hierarchical Occlusion MapsHierarchical Occlusion Maps

Page 34: Ténicas de Culling

Horizontal CullingHorizontal Culling

Page 35: Ténicas de Culling

Horizontal CullingHorizontal Culling

Page 36: Ténicas de Culling

Ejemplos de la vida realEjemplos de la vida real

view frustum detail

backface

portal occlusion

Page 37: Ténicas de Culling

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

Page 38: Ténicas de Culling

Desventajas del CullingDesventajas del Culling

Algunos algoritmos pueden ser complejos de implementar

Pueden en algunos casos no beneficiar a a la aplicación