stringtranslate.com

Rayo marchando

La marcha de rayos es una clase de métodos de renderizado para gráficos por computadora en 3D donde los rayos se atraviesan de forma iterativa, dividiendo efectivamente cada rayo en segmentos de rayo más pequeños, muestreando alguna función en cada paso. Por ejemplo, en la transmisión de rayos por volumen, la función accedería a puntos de datos de un escaneo 3D. En el rastreo de Esfera, la función estima la distancia hasta el siguiente paso.

Marcha de rayas a distancia

Seguimiento de esferas

Visualización del trazado de esferas (marcha de rayos utilizando una función de distancia con signo )

En el rastreo de esferas , [1] o marcha de rayos asistidos por esferas, se aproxima un punto de intersección entre el rayo y una superficie definida por una función de distancia con signo (SDF). El SDF se evalúa en cada iteración para poder dar pasos tan grandes como sea posible sin perder ninguna parte de la superficie. Se utiliza un umbral para cancelar iteraciones adicionales cuando se alcanza un punto que está lo suficientemente cerca de la superficie. A medida que el potente hardware GPU estuvo más disponible, este método fue popularizado por demoscene e Iñigo Quilez.

Para escenas simples con formas 3D básicas, la marcha de rayos no tiene muchos beneficios sobre el trazado de rayos (que encuentra intersecciones sin atravesar el espacio). Los puntos fuertes de la marcha de rayos SDF son, por ejemplo, la transformación de formas, la aproximación de sombras suaves, la repetición de geometría y escenas definidas algorítmicamente.

Existen funciones de distancia con signo para muchas formas 3D primitivas. [2] Se pueden combinar utilizando operaciones matemáticas como módulo y booleanas para formar superficies más complejas. Por ejemplo, tomar el módulo de las coordenadas de entrada de un SDF coloca su volumen en todo el espacio, y tomar el máximo de dos SDF da la superficie de intersección de sus volúmenes. Debido a que los SDF se pueden definir para muchos fractales, el trazado de esferas se utiliza a menudo para la representación de fractales en 3D. [3]

Asistido por cubo

Se puede utilizar una técnica similar a la marcha de rayos asistida por esferas, el uso de cubos y la distancia del taxi para representar volúmenes de vóxeles.

Marcha de rayos volumétricos

En la marcha de rayos volumétricos, se traza cada rayo para que se puedan muestrear el color y/o la densidad a lo largo del rayo y luego combinarlos en un color de píxel final. Esto se utiliza a menudo, por ejemplo, al representar nubes o escaneos médicos en 3D.

Sombreado diferido

Al renderizar efectos del espacio de la pantalla , como la reflexión del espacio de la pantalla (SSR) y las sombras del espacio de la pantalla, los rayos se trazan utilizando búferes G , donde se almacenan datos normales de profundidad y superficie por cada píxel 2D.

enlaces externos

El artículo de 1989 "Hypertexture" [4] de Ken Perlin contiene un ejemplo temprano de un método de marcha de rayos.

Referencias

  1. ^ Hart, John C. (junio de 1995), "Trazado de esferas: un método geométrico para el trazado de rayos suavizado de superficies implícitas" (PDF) , The Visual Computer
  2. ^ Quilez, Íñigo. "Funciones de distancia 3D". Íñigo Quilez . Consultado el 8 de julio de 2022 .
  3. ^ Hart, John C.; Sandín, Daniel J.; Kauffman, Louis H. (julio de 1989), "Fractales tridimensionales deterministas de trazado de rayos" (PDF) , gráficos por computadora
  4. ^ Perlin, Ken (julio de 1989), "Hipertextura" (PDF) , gráficos por computadora