El trazado de rayos es una clase de métodos de renderizado para gráficos 3D por computadora donde los rayos se recorren iterativamente, dividiendo cada rayo en segmentos más pequeños y muestreando alguna función en cada paso. Por ejemplo, en el trazado de rayos volumétrico, la función accedería a puntos de datos de un escaneo 3D. En el trazado de esferas, la función estima la distancia para el siguiente paso. El trazado de rayos también se utiliza en simulaciones físicas como alternativa al trazado de rayos, donde se resuelven analíticamente las trayectorias de ondas de luz o sonido. El trazado de rayos para gráficos por computadora a menudo aprovecha las funciones de distribución de forma (SDF) para determinar un tamaño de paso seguro máximo, aunque esto es menos común en simulaciones físicas, donde se puede lograr un método de paso adaptativo similar utilizando métodos adaptativos de Runge-Kutta .
La técnica se remonta al menos a la década de 1980; el artículo de 1989 "Hypertexture" [ 1 ] de Ken Perlin contiene un ejemplo temprano de un método de marcha de rayos.
Marcha de rayos asistida por distancia
trazado de esferas

En el trazado de esferas [ 2 ] o el trazado de rayos asistido por esferas, se aproxima un punto de intersección entre el rayo y una superficie definida por una función de distancia con signo (FDS). La FDS se evalúa en cada iteración para poder dar pasos lo más grandes posible sin perder 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. A medida que el hardware de GPU potente se hizo más accesible, este método fue popularizado por la demoscene e Íñigo Quilez, cocreador de Shadertoy .
Para escenas sencillas con formas 3D básicas, el ray marching no ofrece muchas ventajas sobre el trazado de rayos (que encuentra intersecciones sin recorrer el espacio). Las ventajas del ray marching SDF se observan, por ejemplo, al transformar formas, aproximar sombras suaves, repetir geometría y en escenas definidas algorítmicamente.
Existen funciones de distancia con signo para muchas formas 3D primitivas. [ 3 ] Se pueden combinar mediante operaciones matemáticas como el módulo y las funciones booleanas para formar superficies más complejas. Por ejemplo, al calcular el módulo de las coordenadas de entrada de una función de distancia con signo, se obtiene un mosaico de su volumen en todo el espacio, y al calcular el máximo de dos funciones de distancia con signo se obtiene la superficie de intersección de sus volúmenes. Dado que las funciones de distancia con signo se pueden definir para muchos fractales, el trazado de esferas se utiliza a menudo para la representación de fractales en 3D. [ 4 ]
Asistido por cubo
Mediante una técnica similar al trazado de rayos asistido por esferas, se puede utilizar el uso de cubos y la distancia de taxi para renderizar volúmenes de vóxeles.
Marcha de rayos volumétrica
En el trazado de rayos volumétrico, cada rayo se recorre para muestrear el color y/o la densidad a lo largo del mismo y luego combinarlos para obtener el color final del píxel. Esto se usa frecuentemente, por ejemplo, al renderizar nubes o escaneos médicos en 3D.
Sombreado diferido
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.
Referencias
- ↑ Perlin, Ken (julio de 1989), "Hipertextura" (PDF) , Computer Graphics , 23 (3): 253–262 , doi : 10.1145/74334.74359
- ↑ Hart, John C. (junio de 1995), "Sphere Tracing: A Geometric Method for the Antialiased Ray Tracing of Implicit Surfaces" (PDF) , The Visual Computer
- ↑ Quilez, Íñigo. «Funciones de distancia 3D» . Íñigo Quilez . Consultado el 8 de julio de 2022 .
- ↑ Hart, John C.; Sandin, Daniel J.; Kauffman, Louis H. (julio de 1989), "Ray Tracing Deterministic 3-D Fractals" (PDF) , Computer Graphics , 23 (3): 289–296 , doi : 10.1145/74334.74363
- Imágenes 3D
- Algoritmos de gráficos por computadora