ténicas de culling

Post on 03-Jul-2015

184 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related