Articulo de referencia

Lanzamiento de rayos volumétricos

El ray casting volumétrico , a veces llamado ray casting volumétrico , trazado de rayos volumétrico o ray marching volumétrico , es una técnica de renderizado volumétrico basada...

El ray casting volumétrico , a veces llamado ray casting volumétrico , trazado de rayos volumétrico o ray marching volumétrico , es una técnica de renderizado volumétrico basada en imágenes . Calcula imágenes 2D a partir de conjuntos de datos volumétricos 3D ( campos escalares 3D ). El ray casting volumétrico, que procesa datos volumétricos, no debe confundirse con el ray casting en el sentido utilizado en el trazado de rayos , que procesa datos de superficie. En la variante volumétrica, el cálculo no se detiene en la superficie, sino que "atraviesa" el objeto, muestreándolo a lo largo del rayo. A diferencia del trazado de rayos, el ray casting volumétrico no genera rayos secundarios. [ 1 ] Cuando el contexto/aplicación es claro, algunos autores simplemente lo llaman ray casting . [ 1 ] [ 2 ] Debido a que el ray marching no requiere necesariamente una solución exacta para la intersección y colisiones de rayos, es adecuado para el cálculo en tiempo real para muchas aplicaciones para las que el trazado de rayos no es adecuado.

Clasificación

La técnica de trazado de rayos volumétricos se deriva directamente de la ecuación de renderizado . Proporciona resultados de renderizado de muy alta calidad. El trazado de rayos volumétricos se clasifica como una técnica de renderizado volumétrico basada en imágenes, ya que el cálculo parte de la imagen de salida y no de los datos volumétricos de entrada, como ocurre con las técnicas basadas en objetos.

Algoritmo básico

Los cuatro pasos básicos del trazado de rayos volumétricos: (1) Trazado de rayos (2) Muestreo (3) Sombreado (4) Composición.

En su forma básica, el algoritmo de trazado de rayos volumétricos consta de cuatro pasos:

  1. Proyección de rayos. Para cada píxel de la imagen final, se proyecta un rayo a través del volumen. En esta etapa, es útil considerar que el volumen está delimitado por una primitiva , un objeto geométrico simple —generalmente un cuboide— que se utiliza para intersecar el rayo y el volumen.
  2. Muestreo. A lo largo de la parte del rayo de visión que se encuentra dentro del volumen, se seleccionan puntos de muestreo equidistantes o muestras . En general, el volumen no está alineado con el rayo de visión, y los puntos de muestreo suelen ubicarse entre vóxeles . Por ello, es necesario interpolar los valores de las muestras a partir de los vóxeles circundantes (generalmente mediante interpolación trilineal ).
  3. Sombreado. Para cada punto de muestreo, una función de transferencia obtiene el color RGBA del material y se calcula un gradiente de valores de iluminación. Este gradiente representa la orientación de las superficies locales dentro del volumen. A continuación, las muestras se sombrean (es decir, se colorean e iluminan) según la orientación de su superficie y la ubicación de la fuente de luz en la escena.
  4. Composición. Una vez sombreados todos los puntos de muestreo, se combinan a lo largo del rayo de visión, obteniendo así el valor de color final del píxel que se está procesando. La composición se deriva directamente de la ecuación de renderizado y es similar a la mezcla de láminas de acetato en un proyector de transparencias.

Optimizaciones.

  1. Puede funcionar de atrás hacia adelante , es decir, el cálculo comienza con la muestra más alejada del observador y termina con la más cercana. Esta dirección del flujo de trabajo garantiza que las partes enmascaradas del volumen no afecten al píxel resultante.
  2. El orden de adelante hacia atrás también podría ser más eficiente desde el punto de vista computacional, ya que la energía residual del rayo disminuye a medida que el rayo se aleja de la cámara; por lo tanto, la contribución a la integral de renderizado disminuye, por lo que se puede aplicar un compromiso más agresivo entre velocidad y calidad (aumentar las distancias entre muestras a lo largo del rayo es uno de esos compromisos entre velocidad y calidad).

Algoritmos adaptativos avanzados

La estrategia de muestreo adaptativo reduce drásticamente el tiempo de renderizado para renderizado de alta calidad: cuanto mayor sea la calidad y/o el tamaño del conjunto de datos, mayor será la ventaja sobre la estrategia de muestreo regular/uniforme. [ 1 ] Sin embargo, el trazado de rayos adaptativo sobre un plano de proyección y el muestreo adaptativo a lo largo de cada rayo individual no se adaptan bien a la arquitectura SIMD de las GPU modernas. Las CPU multinúcleo, en cambio, son ideales para esta técnica, lo que las hace adecuadas para el renderizado volumétrico interactivo de ultra alta calidad .

Ejemplos de proyección de rayos volumétricos de alta calidad

Momia de cocodrilo proporcionada por el Museo de Antropología Phoebe A. Hearst, UC Berkeley. Los datos de la tomografía computarizada fueron adquiridos por la Dra. Rebecca Fahrig, del Departamento de Radiología de la Universidad de Stanford, utilizando un equipo Siemens SOMATOM Definition, de Siemens Healthcare. La imagen fue renderizada por el motor de renderizado volumétrico de alta definición (HDR) de Fovia.

Esta galería presenta una colección de imágenes renderizadas mediante la técnica de trazado de rayos volumétricos de alta calidad. Generalmente, la nitidez de las imágenes obtenidas con esta técnica las distingue de las generadas mediante mapeo de texturas en realidad virtual, debido a la mayor precisión de los renderizados por trazado de rayos volumétricos.

La tomografía computarizada de la momia de cocodrilo tiene una resolución de 3000×512×512 (16 bits), y el conjunto de datos del cráneo tiene una resolución de 512×512×750 (16 bits).

Ray marchando

El término "ray marching" es más amplio y se refiere a métodos en los que se recorren rayos simulados de forma iterativa, dividiendo cada rayo en segmentos más pequeños y muestreando alguna función en cada paso. Estos métodos se suelen utilizar cuando la creación de geometría explícita, como triángulos, no es una buena opción.

Visualización del algoritmo de trazado de rayos SDF

Otros ejemplos de ray marching

  • En el trazado de rayos SDF , o trazado de esferas , [ 3 ] se aproxima un punto de intersección entre el rayo y una superficie definida por una función de distancia con signo (SDF). La SDF se evalúa en cada iteración para poder dar pasos lo más grandes posible sin omitir ninguna parte de la superficie. Se utiliza un umbral para cancelar la iteración posterior cuando se alcanza un punto lo suficientemente cercano a la superficie. Este método se utiliza a menudo para la representación fractal 3D. [ 4 ]
  • Al renderizar efectos en el espacio de la pantalla , como la reflexión en el espacio de la pantalla (SSR) y las sombras en el espacio de la pantalla, los rayos se trazan utilizando búferes G , donde los datos de profundidad y normales de superficie se almacenan para cada píxel 2D.

Véase también

  • Amira : software comercial de visualización y análisis 3D (para ciencias de la vida y biomedicina) que utiliza un motor de renderizado volumétrico por trazado de rayos (basado en Open Inventor ).
  • Avizo : software comercial de visualización y análisis 3D que utiliza un motor de renderizado volumétrico por trazado de rayos (también basado en Open Inventor).
  • Shadertoy : comunidad y plataforma en línea para profesionales, académicos y entusiastas de los gráficos por computadora que comparten, aprenden y experimentan con técnicas de renderizado y arte procedural a través del código GLSL.
  • Trazado de trayectorias volumétrico

Referencias

  1. 1 2 3 Daniel Weiskopf (2006). Técnicas de visualización interactiva basadas en GPU . Springer Science & Business Media. pág.  21. ISBN 978-3-540-33263-3.
  2. Barton F. Branstetter (2009). Practical Imaging Informatics: Foundations and Applications for PACS Professionals . Springer Science & Business Media. p. 126. ISBN  978-1-4419-0485-0.
  3. Hart, John C. (junio de 1995), "Sphere Tracing: A Geometric Method for the Antialiased Ray Tracing of Implicit Surfaces" (PDF) , The Visual Computer
  4. Hart, John C.; Sandin, Daniel J.; Kauffman, Louis H. (julio de 1989), "Ray Tracing Deterministic 3-D Fractals" (PDF) , Computer Graphics
  • Técnicas de aceleración para la renderización de volúmenes basada en GPU (J. Krüger, R. Westermann, IEEE Visualization 2003)
  • Un marco de trabajo de trazado de rayos GPU de una sola pasada para la renderización interactiva fuera de la memoria principal de conjuntos de datos volumétricos masivos (E. Gobbetti, F. Marton, JA Iglesias Guitian, The Visual Computer 2008)