Técnica de representación de volumen basada en imágenes
El ray casting de volumen , a veces llamado ray casting volumétrico , trazado de rayos volumétrico o marcha de rayos de volumen , es una técnica de renderizado de volumen basada en imágenes . Calcula imágenes 2D a partir de conjuntos de datos volumétricos 3D ( campos escalares 3D ). El ray casting de volumen, que procesa datos de volumen, 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 "empuja a través" del objeto, muestreando el objeto a lo largo del rayo. A diferencia del trazado de rayos, el ray casting de volumen no genera rayos secundarios. [1] Cuando el contexto/aplicación es claro, algunos autores simplemente lo llaman ray casting . [1] [2] Debido a que la marcha de rayos no requiere necesariamente una solución exacta para la intersección y las colisiones de rayos, es adecuado para la computación en tiempo real para muchas aplicaciones para las que el trazado de rayos no es adecuado.
Clasificación
La técnica de proyección de rayos de volumen se puede derivar directamente de la ecuación de renderizado . Proporciona resultados de renderizado de muy alta calidad. La proyección de rayos de volumen se clasifica como una técnica de renderizado de volumen basada en imágenes, ya que el cálculo emana de la imagen de salida y no de los datos de volumen de entrada, como es el caso de las técnicas basadas en objetos.
Algoritmo básico
En su forma básica, el algoritmo de proyección de rayos de volumen consta de cuatro pasos:
Proyección de rayos. Por cada píxel de la imagen final, se proyecta ("proyecta") un rayo de visión a través del volumen. En esta etapa, es útil considerar el volumen que se toca y se encierra dentro de una primitiva delimitadora , un objeto geométrico simple (normalmente un cuboide ) que se utiliza para intersecar el rayo de visión y el volumen.
Muestreo. A lo largo de la parte del rayo de visión que se encuentra dentro del volumen, se seleccionan puntos de muestreo o muestras equidistantes. En general, el volumen no está alineado con el rayo de visión y los puntos de muestreo generalmente se ubicarán entre los vóxeles . Debido a eso, es necesario interpolar los valores de las muestras a partir de los vóxeles circundantes (comúnmente mediante interpolación trilineal ).
Sombreado. Para cada punto de muestreo, una función de transferencia recupera un color de material RGBA y se calcula un gradiente de valores de iluminación. El gradiente representa la orientación de las superficies locales dentro del volumen. Luego, 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.
Composición. Una vez que se han sombreado todos los puntos de muestreo, se componen a lo largo del rayo de visión, lo que da como resultado el valor de color final para el píxel que se está procesando actualmente. La composición se deriva directamente de la ecuación de renderizado y es similar a mezclar hojas de acetato en un retroproyector. Puede funcionar de atrás hacia adelante , es decir, el cálculo comienza con la muestra más alejada del espectador y termina con la más cercana al espectador. Esta dirección del flujo de trabajo garantiza que las partes enmascaradas del volumen no afecten al píxel resultante. El orden de adelante hacia atrás podría ser más eficiente computacionalmente 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 de velocidad/calidad (el aumento de las distancias entre las muestras a lo largo del rayo es uno de esos compromisos de velocidad/calidad).
Ejemplos de fundición de rayos volumétricos de alta calidad
Esta galería representa una colección de imágenes renderizadas con proyección de rayos de volumen de alta calidad. Por lo general, la apariencia nítida de las imágenes de proyección de rayos de volumen las distingue de las imágenes de VR de mapeo de texturas debido a la mayor precisión de las representaciones de proyección de rayos de volumen.
La tomografía computarizada de la momia del cocodrilo tiene una resolución de 3000×512×512 (16 bits), el conjunto de datos del cráneo tiene una resolución de 512×512×750 (16 bits).
Ray marchando
El término "marcha de rayos" es más amplio y se refiere a métodos en los que se recorren rayos simulados de forma iterativa, dividiendo efectivamente cada rayo en segmentos de rayos más pequeños y tomando muestras de alguna función en cada paso. Estos métodos se utilizan a menudo en casos en los que crear geometría explícita, como triángulos, no es una buena opción.
Otros ejemplos de marcha de rayos
En el método de marcha 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 para cada iteración con el fin de poder dar pasos tan grandes como sea posible sin omitir ninguna parte de la superficie. Se utiliza un umbral para cancelar la iteración posterior cuando se ha alcanzado un punto que está lo suficientemente cerca de la superficie. Este método se utiliza a menudo para la representación fractal en 3D. [4]
Amira : software comercial de análisis y visualización 3D (para ciencias biológicas y biomédicas) que utiliza un motor de renderizado de volumen mediante proyección de rayos (basado en Open Inventor )
Avizo : software comercial de análisis y visualización 3D que utiliza un motor de renderizado de volumen mediante proyección 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 procedimental a través del código GLSL
^ abc 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.
^ Barton F. Branstetter (2009). Informática práctica de imágenes: fundamentos y aplicaciones para profesionales de PACS. Springer Science & Business Media. pág. 126. ISBN978-1-4419-0485-0.
^ Hart, John C. (junio de 1995), "Trazado de esferas: un método geométrico para el trazado de rayos antialias de superficies implícitas" (PDF) , The Visual Computer
^ Hart, John C.; Sandin, Daniel J.; Kauffman, Louis H. (julio de 1989), "Trazado de rayos de fractales tridimensionales deterministas" (PDF) , Gráficos por computadora
Enlaces externos
Técnicas de aceleración para renderizado de volumen basado en GPU (J. Krüger, R. Westermann, IEEE Visualization 2003)
Un marco de proyección de rayos de GPU de una sola pasada para la representación interactiva fuera del núcleo de conjuntos de datos volumétricos masivos (E. Gobbetti, F. Marton, JA Iglesias Guitian, The Visual Computer 2008)