Advanced Illumination Techniques for GPU-Based Volume Raycasting

62
Advanced Illumination Techniques for GPU-Based Volume Raycasting María Toledo Joselyn López

description

Advanced Illumination Techniques for GPU-Based Volume Raycasting. María Toledo Joselyn López. Conceptos Relevantes. Representación de Volúmenes: Técnica que se utiliza para mostrar una proyección 2D de una forma discreta en 3D muestra los datos establecidos. - PowerPoint PPT Presentation

Transcript of Advanced Illumination Techniques for GPU-Based Volume Raycasting

Page 1: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Advanced IlluminationTechniques for

GPU-Based Volume Raycasting

María ToledoJoselyn López

Page 2: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Conceptos Relevantes

• Representación de Volúmenes: Técnica que se utiliza para mostrar una proyección 2D de una forma discreta en 3D muestra los datos establecidos.

• Casting Ray: Pruebas de intersección entre la superficie y el rayo para resolver una variedad de problemas en gráficos por ordenador. El término fue utilizado por primera vez en gráficas de computadoras en un documento de 1982 por Scott Roth.

• Volume Ray Casting: Volumetric ray casting, volumetric ray tracing, or volume ray marching. Es una técnica de renderizado de volúmen basado en imágenes. Se calculan imágenes de 2D desde conjunto de datos volumétricos 3D.

Page 3: Advanced Illumination Techniques for GPU-Based Volume Raycasting

GPU-Based Ray Casting• Describe una amplia gama de técnicas para la generación de

imágenes desde conjunto de datos escalares de tres dimensiones.

• Usos: En datos médicos del interior del cuerpo humano (obtenidas por tomografías computarizadas (TC) o resonancias magnéticas.

• Otros Usos: Dinámica de fluidos computacional (CFD), geológicos y datos sísmicos, así como datos abstractos matemáticos: distribuciones probabilísticas 3D de números aleatorios.

• Es ideal para describir objetos irregulares e indefinidos como fluídos, gases y fenómenos naturales: nubes, neblina, fuego, etc.

Page 4: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Volume Ray Casting• Importante tanto para las artes visuales y la

visualización. Permite la visualización de los datos científicos obtenidos por tomografía o la simulación numérica.

• Flexibilidad. Los expertos coinciden en que Raycasting basada en la GPU es el estado de la técnica del arte del renderizado interactivo de volúmenes.

• Renderizado de Volúmen: Efectivo para el renderizado directo de superficies implícitas usadas para la animación suavizada de cuerpos y la construcción de sólidos geométricos.

Page 5: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Datos de Volúmen• Voxel: Muestra obtenida en un punto pequeño

infinitesimal desde una señal continua tridimensional.

• Volume Data: Un conjunto discreto de volúmen que puede ser visto como un arreglo tridimensional de elementos cúbicos (voxels)

• Vida Real: Señal de banda limitada con una frecuencia de corte. Reconstrucción lograda mediante el muestreo uniforme con mas del doble de la frecuencia de corte.

Page 6: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Datos de VolúmenProblemas de Reconstrucción en la practica:

• Requeridos convolusión de puntos de muestra con la función de seno(todos los puntos deberán ser considerados, no solo vecinos, intratable computacionalmente).

• Datos reales no representan una señal de banda limitada. El muestreo de dichos datos producirá efectos de aliasing.

Soluciones:• Box Filter (Calculo por vecinos: discontinuidades entre

vecinosy efecto ladrillo) y Tent Filter (suavidad de señal a buen costo computacional) Vs 3d Sinc.

Page 7: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Renderizado Directo de VolúmenSe despiega evaluando en modelo óptico (cantidades fisicas de emisión de volumen, reflectividad, absorción, dispersión de la luz). Mapeo o Clasificación para lograr la síntesis de la imagen.

Modelos Ópticos• Solo absorción: Todas las partículas negras (no emiten ni

dispersan luz).• Solo emisión• Absorción + Emisión: Técnica mas común. Partículas

absorben y emiten luz.• Scattering and Shading/Shadowing: Dispersión de

iluminación externa al voxel.• Multiple scattering: Soporte de luz incidente, dispersada

anteriormente por mútiples partículas, antes de dispersión al

Page 8: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Renderizado Directo de Volúmen

Ray Casting: Algoritmo mas comun de renderización de volúmen.Integral del Renderizado Volumétrico: Para cada pixel a

renderizar, se lanza un rayo desde la camara hacia el centro del pixel de volumen, integrando propiedades ópticas con distintas densidades.

Page 9: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Renderizado Directo de Volúmen

Page 10: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Ray Casting• Algoritmo de renderizado de volúmen directo, evaluación

directa de numeros en la integral.• Para cada pixel, se lanza un rayo. Por cada ubicación de

muestreo, el valor escalar de 8 voxels vecinos son pesado de acuerdo a su distancia al valor que se desee obtener. Mapeo de escalares en tabla RGBA donde se tienen los distintos valores de absorción y emisión para la ubicación. Alpha blending (iterativamente, color y opacidad, absorción).

• Interpolating Opacity weighted colors, mejores resultados. Evaluación de adelante hacia atrás o viceversa. Frame buffer: absorción. Early ray termination(front to back).

Page 11: Advanced Illumination Techniques for GPU-Based Volume Raycasting

GPU-Based Volume Ray Casting

OBJETIVO: Almacenar todo el volumen en una textura 3D única, y conducir un programa fragmento que lanza los rayos en el volumen. Cada pixel o fragmento corresponde a un rayo.

OBTENCIÓN: Vector dirección desde la cámara hasta las coordenadas de la pantalla del pixel o vía rasterización.

El rango de distancias desde el rayo penetra el volumen hasta que sale es calculado por frame, en una fase anterior de configuración antes de que el programa de ray casting es ejecutado.

Page 12: Advanced Illumination Techniques for GPU-Based Volume Raycasting

GPU-Based Volume Ray Casting

Page 13: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Ray Casting Básico

Page 14: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Object Order Empty Space Skipping

División del volumen en pequeños bloques para determinar si estos estan vaciós o no, optimizando el proceso de rasterización solo para las que no esten vacias. Mas rapido, menos ciclos de rasterización.

Page 15: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Object Order Empty Space Skipping

Page 16: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Object Order Empty Space Skipping

Page 17: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Advanced Ray Casting Pipeline

Combina image-order y object-order, para disminuir el costo de procesamiento del GPU. Se lleva un grid almacenado con los valores máximos y mínimos por bloques de tamaño 83 para culling de subvolumenes irrelevantes. Se realiza el ray casting en una sola pasada, para evitar overhead por cada bloque.

Page 18: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Advanced Ray Casting Pipeline

Page 19: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Culling and Brick Boundary Rasterization

Cada bloque de subdivisión del volúmen se encuentra activo o inactivo. Para determinar las posiciones iniciales y las distancias, se rasterizan las caras entre los bloques activos e inactivos. Manejo de cullin mediante almacenamiento min-max de valores por volumen.

Page 20: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Geometry Intersection

Page 21: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Isosurface Ray Casting

First Hit Ray Casting: Se mantiene valores min-max por cada subdivisión del volumen. Si el volumen completo no cabe en el GPU, entonces se mantiene en cola. Manteniendo la geometría de las caras delimitadoras de los bloques activos, adyacentes a los bloques inactivos en a memoria del GPU para mayor velocidad de procesamiento. Se renderizan las caras frontales de los bloques para obtener la distancia, desde la cámara. No excluye bloques inactivos si están encerrados por bloques activos con respecto a la dirección actual.

Page 22: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Adaptive Sampling

Posición de intersección de cada rayo, mediante la reconstrucción de la función escalar en posiciones discretas de muestreo. La intersección es detectada cuando la primera muestra se encuentra detrás de la isosuperficie. Uso para mejorar la detección de intersecciones.

Page 23: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Adaptive Sampling

Page 24: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Memory ManagementGrandes volúmenes pueden llegar a abarcar toda la memoria GPU. Sin embargo, a mayoría de los volúmenes son mapeados a propiedades ópticas, llegando a ser transparentes en diversos casos (aire en tomografías). Para solventar: Bricking and Multiresolution schemes. Desacoplar restricciones de memoria y de resolución de volúmenes del GPU. Bloques inactivos removidos por Least Reasebtly Used (LRU)

Page 25: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Mixed Resolution Volume Rendering

• Volume Subdivision for Texture Packing

• Mixed Resolution Texture Packing

• Address Translation

Page 26: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Multiresolution LOD and Adaptive Sampling

• Octree-Based Multiresolution Representation• Block properties and acceleration structures

Page 27: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Multiresolution LOD and Adaptive Sampling

• Herarchical multiresolution representations• Level of detail management approaches: View

dependant, data error based, transfer function based.

Page 28: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Encoding, Decoding and Storage

Transform and Compression Based Techniques:

1. Discrete Cosine Transform2. Multiresolution Analysis – Wavelets3. Data Compression

Page 29: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Encoding, Decoding and Storage

Out-of-Core Data Management Techniques:

Page 30: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Flat blocking Multiresolution Representation

Page 31: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Sampling of Multiresolution Volumes

• Nearest Block Sampling• Interblock Interpolation Sampling

Page 32: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Sample Placement Discussion

Page 33: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Ray Casting on the GPU

• Adaptive Object-Space Sampling• Flat Blocking Summary

Page 34: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Light InteractionRepresentación de la luz en el mundo real. Sombras y reflejos.

O(n2).Light Transport and Illumination Models:

• Phong Illumination: Tomando en cuenta solo iluminación directa, no de otros elementos en escena O(n). Posición y gradiente del voxel, color del voxel y posición de la fuente de luz. Reflección como suma de la luz especular, difusa y ambiental. Atenuación.

• Gradient Computation: Importante para la calidad visual del renderizado. Opacidad.

Page 35: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Specular Reflections through Ray-Tracing

Uso para mejora de iluminación. Sirve para realizar un Ray Tracer volumétrico o como enfoque para el Ray Casting basado en GPU, considerando el recorrido de rayos de primer orden.

Simulate mirror-like reflection and refraction, by texture lookup.

Page 36: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Specular Reflections through Ray-Tracing

Page 37: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Shadows: Soft vs. Hard

Poco se ha hecho para integrar las sombras dentro del raycasting basado en GPU. Ha sido iintegrado en sistemas de raycasting de volúmenes, por su similitud al paradigma del rayo. Se agrega el mapeo de profundidad para almacenar la visibilidad de la funete de luz.

Page 38: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Sombras Semitransparentes a través del mapeado de sombras

• Mapa de sombras: Es un mapa de bits que se genera durante un proceso de modelado previo de la escena. Los mapas de sombras no muestran el color proyectado por objetos transparentes o translúcidos.

Page 39: Advanced Illumination Techniques for GPU-Based Volume Raycasting
Page 40: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Sombras Semitransparentes a través del mapeado de sombras

Mientras que el mapeo de sombras produce resultados eficientes en fragmentos bases, este no es compatible los oclusores semitransparentes que se hacen presente en el renderizado de volumen. Para hacerle frente a estas semitransparencias se tiene:

– Mapas de sombras opacas– Mapas de sombras profundas.

Page 41: Advanced Illumination Techniques for GPU-Based Volume Raycasting
Page 42: Advanced Illumination Techniques for GPU-Based Volume Raycasting

El trabajo de aproximación se realiza de la siguiente manera:

• El primer punto de contacto para cada rayo de sombra es procesado• La distancia de la fuente de luz al primer punto de contacto y el valor α para

esta posición son almacenados en la primera capa de el mapa de sombras profundas.

• Empezando de este primer punto de contacto, se atraviesa cada rayo de sombra chequeando iterativamente las muestras, y encontrando cuan aproximables son por una función lineal.

• Cuando se procesa una muestra, y esta aproximación no es suficiente, la distancia de la muestra previa a la fuente de luz así como el valor α acumulado en la muestra anterior se almacena en la siguiente capa del mapa de sombras profundas. Esto se repite hasta que la octava capa del mapa de sombras profundas se haya completado.

Page 43: Advanced Illumination Techniques for GPU-Based Volume Raycasting
Page 44: Advanced Illumination Techniques for GPU-Based Volume Raycasting
Page 45: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Oclusión AmbientalEl termino oclusión Ambiental se refiere a las técnicas

desarrolladas para simular la iluminación global mediante una estimación de la visibilidad proveniente de una fuente luminosa omnidireccional ambiental, a partir de una primitiva, ya sea un vértice del polígono, la ubicación de superficie o en un voxel.

Page 46: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Oclusión ambiental para Iso Superficies.

Para las Iso superficies, Los algoritmos se dividen en dos clases:1ª) Renderizado de superficies en base al volumen. 2ª)Renderización del volumen total, incorporando

muestras semi-transparentes y translúcidas.

Page 47: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Oclusión ambiental para renderizado directo del volumen.

• Oclusión ambiental local: Recientemente Hernell ha propuesto un método para el simular un ambiente y la iluminación eficiente del mismo. Esta técnica se basa en disparar rayos en varias direcciones de cada voxel no transparente en el conjunto de datos. Los rayos terminan en el límite predefinido radial haciendo de esta técnica de un enfoque local. Dado que estos rayos se generan para cada voxel no transparente en el conjunto de datos se beneficia de multiresolución. El espacio vacío se pasa por alto y regiones de baja resolución requieren menos procesamiento.

Page 48: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Oclusión ambiental para renderizado directo del volumen.

• Integración de volúmenes de Multiresolución:Esta se realiza con la asignación de coordenadas de volumen. Se empaquetan las coordenadas, por lo que es sencillo utilizando el índice de texturas.

La correspondencia inversa presenta un desafío menor, ya que la ubicación de un voxel en el volumen de debe ser determinado. Potencialmente, un bloque podría ser representado por un vóxel único en el paquete de texturas que requieren un mapa de índice inverso del mismo tamaño que paquete de texturas en sí mismo.

Page 49: Advanced Illumination Techniques for GPU-Based Volume Raycasting
Page 50: Advanced Illumination Techniques for GPU-Based Volume Raycasting
Page 51: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Oclusión ambiental DinámicaPara lograr la oclusión ambiental dinámica se tienen una serie de técnicas que realizan la oclusión dinámica del ambiente, así como una aproximación al representar conjuntos de datos volumétricos. El método es independiente de la función de transferencia que se aplica actualmente, así como el umbral y la por lo tanto representa una oclusión ambiental. Sin embargo, el algoritmo de representación no se basa en la física de la propagación de la luz, pero proporciona una aproximación visual convincente.

Puede ser aplicado al renderizado directo del volumen (DVR) así como a la iso superficie y a las técnicas de sombreado. El tiempo de renderizado se mantiene bajo, ya que la propuesta técnica requiere poca sobrecarga en comparación con la solución de la cantidad estándar de renderizado integral junto con la aplicación de la iluminación estrictamente local.

Page 52: Advanced Illumination Techniques for GPU-Based Volume Raycasting

•Generación de histograma local

El histograma de una imagen es el cálculo muestral de la función de densidad de probabilidad de los valores de intensidad de los pixeles de la imagen.

Page 53: Advanced Illumination Techniques for GPU-Based Volume Raycasting

• Si la imagen contiene regiones dominantemente oscuras, el histograma presenta un sesgo hacia la izquierda.

• Si la imagen contiene regiones dominantemente claras, el histograma presenta un sesgo hacia la derecha.

• Si la imagen contiene regiones sobre el promedio, el histograma se encuentra en el centro.

Page 54: Advanced Illumination Techniques for GPU-Based Volume Raycasting
Page 55: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Efectos de dispersión

En física la luz esta descrita en 3 diferentes modelos: – Óptica geométrica– Óptica de ondas– Óptica cuántica

Page 56: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Dispersión• La dispersión es el proceso físico que obliga a los rayos a

desviar su trayectoria.• Para el renderizado superficial se asume que el transporte de

luz se lleva a cabo en el vacío, la interacción entre la luz y la materia está restringida a la superficie del objeto. En el vacio la luz viaja en líneas rectas (rayos).

• La reflexión de la luz en un punto de la superficie es, pues, un evento de dispersión. Dependiendo sobre las propiedades del material de la superficie, los fotones incidentes se encuentran dispersos en direcciones diferentes y por lo tanto, cambia su energía y frecuencia, lo que posiblemente cause un cambio en el color.

Page 57: Advanced Illumination Techniques for GPU-Based Volume Raycasting
Page 58: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Luz IndirectaLa técnica tradicional de ray tracing muestra perfectas reflexiones en espejos y perfectas refracciones en objetos transparentes. El ray tracing asume que el camino de un fotón después de la emisión de una fuente de luz es determinista. El rayo es trazado tomando en cuenta la reflexión del espejo y refracción hasta que llega un punto en una superficie difusa o con características brillantes. 

Page 59: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Transparencia y translucidez• Los materiales transparentes son claros, mientras que los

materiales translúcidos permiten que la luz pase a través de ellos sólo de forma difusa. Dado que el ray tracing se basa en técnicas deterministas, no se puede dar cuenta de los medios translúcidos que requiere la consideración de la ruta probabilística de fotones. Esta técnica no tiene en cuenta muchos caminos posibles por los cuales la luz pueda viajar hasta el ojo.

Page 60: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Monte Carlo Ray-Tracing• Este es el esquema mas conocido para resolver las sumas de

Riemann. El método de integración de Montecarlo consiste en un conjunto de algoritmos para encontrar una evaluación aproximada de una integral definida, normalmente de integrales múltiples.

• Se basa en tratar el problema como un proceso estocástico en lugar de determinístico y formula una solución como parámetro de una variable aleatoria. El método es muy útil en el área de la iluminación global. Entre sus aplicaciones están el Ray-Tracing distribuído y el Path-Tracing. También se utiliza en otras áreas como simulaciones nucleares, tansferencia de calor, etc.

Page 61: Advanced Illumination Techniques for GPU-Based Volume Raycasting

• Ray Tracing distribuído. En lugar de un rayo, lanza varios rayos por píxel de manera estocástica e integra la iluminación de cada uno de ellos. Este algoritmo permite mejorar notablemente el antialiasing y produce efectos que proporcionan más realismo como lo son: penumbra (en lugar de sombras perfectas), profundidad de campo (los objetos lejanos se ven mas borrosos), glossy (distribuye muestras segun reflectacia especular noideal) y motion blur (distribuye muestras en el tiempo).

• Path Tracing. Trata la simulación de los rayos como un proceso random walk. Es ineficiente como algoritmo pero resuelve la ecuación de la luz de forma más precisa que ray tracing convencional

Page 62: Advanced Illumination Techniques for GPU-Based Volume Raycasting

Preguntas?