620 likes | 805 Views
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.
E N D
Advanced IlluminationTechniques forGPU-Based Volume Raycasting María Toledo Joselyn López
ConceptosRelevantes • 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. • VolumeRay 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.
GPU-BasedRay 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 paradescribirobjetosirregulares e indefinidoscomofluídos, gases y fenómenosnaturales: nubes, neblina, fuego, etc.
VolumeRay 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.
Datos de Volúmen • Voxel:Muestraobtenida en un puntopequeño infinitesimal desdeunaseñal continua tridimensional. • Volume Data: Un conjuntodiscreto de volúmenquepuede ser vistocomo un arreglo tridimensional de elementoscú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.
Datos de Volúmen Problemas 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 TentFilter (suavidad de señal a buen costo computacional) Vs 3d Sinc.
Renderizado Directo de Volúmen • Se 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. • Multiplescattering: Soporte de luz incidente, dispersada anteriormente por mútiples partículas, antes de dispersión al
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.
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. Alphablending (iterativamente, color y opacidad, absorción). • InterpolatingOpacityweightedcolors, mejores resultados. Evaluación de adelante hacia atrás o viceversa. Frame buffer: absorción. Earlyraytermination(frontto back).
GPU-BasedVolumeRay Casting • OBJETIVO:Almacenar todo el volumen en una textura 3D única, y conducir un programa fragmento que lanzalos 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.
ObjectOrderEmptySpaceSkipping • División del volumen en pequeños bloques para determinar si estos estanvaciós o no, optimizando el proceso de rasterización solo para las que no estenvacias. Mas rapido, menos ciclos de rasterización.
AdvancedRay 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.
Culling and BrickBoundaryRasterization • 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.
IsosurfaceRay 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.
AdaptiveSampling 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.
Memory Management Grandes 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 Multiresolutionschemes. Desacoplar restricciones de memoria y de resolución de volúmenes del GPU. Bloques inactivos removidos por LeastReasebtlyUsed (LRU)
MixedResolutionVolumeRendering • VolumeSubdivisionforTexturePacking • MixedResolutionTexturePacking • AddressTranslation
Multiresolution LOD and AdaptiveSampling • Octree-BasedMultiresolutionRepresentation • Block properties and accelerationstructures
Multiresolution LOD and AdaptiveSampling • Herarchicalmultiresolutionrepresentations • Level of detailmanagementapproaches: View dependant, data error based, transfer functionbased.
Encoding, Decoding and Storage Transform and CompressionBasedTechniques: • DiscreteCosineTransform • MultiresolutionAnalysis – Wavelets • Data Compression
Encoding, Decoding and Storage Out-of-Core Data Management Techniques:
Sampling of MultiresolutionVolumes • Nearest Block Sampling • InterblockInterpolationSampling
Ray Casting onthe GPU • AdaptiveObject-SpaceSampling • Flat BlockingSummary
Light Interaction Representación de la luz en el mundo real. Sombras y reflejos. O(n2). Light Transport and IlluminationModels: • Phong Illumination:Tomando en cuenta solo iluminacióndirecta, no de otroselementos en escena O(n). Posición y gradiente del voxel, color del voxel y posición de la fuente de luz. Refleccióncomosuma de la luzespecular, difusa y ambiental. Atenuación. • Gradient Computation: Importantepara la calidad visual del renderizado. Opacidad.
SpecularReflectionsthroughRay-Tracing Uso para mejora de iluminación. Sirve para realizar un RayTracer volumétrico o como enfoque para el Ray Casting basado en GPU, considerando el recorrido de rayos de primer orden. Simulatemirror-likereflection and refraction, bytexturelookup.
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.
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.
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.
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.
Oclusión Ambiental El 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.
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.
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.
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.