stringtranslate.com

Mapeo de fotones

En gráficos por computadora , el mapeo de fotones es un algoritmo de renderizado de iluminación global de dos pasadas desarrollado por Henrik Wann Jensen entre 1995 y 2001 [1] que resuelve aproximadamente la ecuación de renderizado para integrar la radiancia de la luz en un punto dado en el espacio. Los rayos de la fuente de luz (como los fotones ) y los rayos de la cámara se trazan de forma independiente hasta que se cumple algún criterio de terminación, luego se conectan en un segundo paso para producir un valor de radiancia. El algoritmo se utiliza para simular de forma realista la interacción de la luz con diferentes tipos de objetos (similar a otras técnicas de renderizado fotorrealista ). Específicamente, es capaz de simular la refracción de la luz a través de una sustancia transparente como el vidrio o el agua (incluidos los cáusticos ), la interreflexión difusa entre objetos iluminados, la dispersión subsuperficial de la luz en materiales translúcidos y algunos de los efectos causados ​​por materia particulada como el humo o el vapor de agua . El mapeo de fotones también se puede extender a simulaciones más precisas de la luz, como el renderizado espectral . El mapeo progresivo de fotones (PPM) comienza con el trazado de rayos y luego agrega más y más pases de mapeo de fotones para proporcionar una representación progresivamente más precisa.

A diferencia del trazado de trayectoria , el trazado de trayectoria bidireccional , el trazado de trayectoria volumétrico y el transporte de luz de Metropolis , el mapeo de fotones es un algoritmo de renderizado "sesgado" , lo que significa que promediar una cantidad infinita de renderizados de la misma escena utilizando este método no converge a una solución correcta para la ecuación de renderizado . Sin embargo, es un método consistente y la precisión de un renderizado se puede aumentar al aumentar la cantidad de fotones. A medida que la cantidad de fotones se acerca al infinito, un renderizado se acercará cada vez más a la solución de la ecuación de renderizado.

Efectos

Cáusticos

Un modelo de una copa de vino trazada con rayos y mapeo de fotones para mostrar cáusticos

La luz refractada o reflejada produce patrones llamados cáusticos , que suelen ser visibles como manchas concentradas de luz en superficies cercanas. Por ejemplo, cuando los rayos de luz pasan a través de una copa de vino colocada sobre una mesa, se refractan y se ven patrones de luz en la mesa. El mapeo de fotones puede rastrear las trayectorias de fotones individuales para modelar dónde aparecerán estas manchas concentradas de luz.

Interreflexión difusa

La interreflexión difusa es evidente cuando la luz de un objeto difuso se refleja en otro. El mapeo de fotones es particularmente adecuado para manejar este efecto porque el algoritmo refleja los fotones de una superficie a otra en función de la función de distribución de reflectancia bidireccional (BRDF) de esa superficie y, por lo tanto, la luz de un objeto que golpea a otro es un resultado natural del método. La interreflexión difusa se modeló primero utilizando soluciones de radiosidad . Sin embargo, el mapeo de fotones difiere en que separa el transporte de luz de la naturaleza de la geometría en la escena. El sangrado de color es un ejemplo de interreflexión difusa.

Dispersión subsuperficial

La dispersión subsuperficial es el efecto que se manifiesta cuando la luz entra en un material y se dispersa antes de ser absorbida o reflejada en una dirección diferente. La dispersión subsuperficial se puede modelar con precisión mediante el uso de mapas de fotones. Esta fue la forma original en que Jensen lo implementó; sin embargo, el método se vuelve lento para materiales con alta dispersión y las funciones de distribución de reflectancia de dispersión superficial bidireccional (BSSRDF) son más eficientes en estas situaciones.

Uso

Construcción del mapa de fotones (1er paso)

Con el mapeo de fotones, los paquetes de luz llamados fotones se envían a la escena desde las fuentes de luz. Siempre que un fotón se interseca con una superficie, el punto de intersección y la dirección entrante se almacenan en una memoria caché llamada mapa de fotones . Normalmente, se crean dos mapas de fotones para una escena: uno especialmente para cáusticos y uno global para otra luz. Después de la intersección con la superficie, el material proporciona una probabilidad de reflexión, absorción o transmisión/refracción. Se utiliza un método de Monte Carlo llamado ruleta rusa para elegir una de estas acciones. Si el fotón se absorbe, no se proporciona una nueva dirección y finaliza el rastreo de ese fotón. Si el fotón se refleja, se utiliza la función de distribución de reflectancia bidireccional de la superficie para determinar la relación de la radiancia reflejada. Finalmente, si el fotón está transmitiendo, se proporciona una función para su dirección dependiendo de la naturaleza de la transmisión.

Una vez que se construye el mapa de fotones (o durante su construcción), normalmente se organiza de una manera que sea óptima para el algoritmo de k vecinos más cercanos , ya que el tiempo de búsqueda de fotones depende de la distribución espacial de los fotones. Jensen recomienda el uso de árboles kd . Luego, el mapa de fotones se almacena en el disco o en la memoria para su uso posterior.

Renderizado (2da pasada)

En este paso del algoritmo, el mapa de fotones creado en la primera pasada se utiliza para estimar la radiancia de cada píxel de la imagen de salida. Para cada píxel, se traza un rayo de la escena hasta encontrar la superficie de intersección más cercana.

En este punto, se utiliza la ecuación de renderizado para calcular la radiancia de la superficie que sale del punto de intersección en la dirección del rayo que lo impactó. Para facilitar la eficiencia, la ecuación se descompone en cuatro factores separados: iluminación directa, reflexión especular, cáusticos e iluminación indirecta suave.

Para una estimación precisa de la iluminación directa, se traza un rayo desde el punto de intersección hasta cada fuente de luz. Siempre que un rayo no intersecte otro objeto, se utiliza la fuente de luz para calcular la iluminación directa. Para una estimación aproximada de la iluminación indirecta, se utiliza el mapa de fotones para calcular la contribución de la radiancia.

La reflexión especular se puede calcular, en la mayoría de los casos, utilizando procedimientos de trazado de rayos (ya que maneja bien los reflejos).

La contribución de las cáusticas a la radiancia de la superficie se calcula utilizando directamente el mapa de fotones de cáusticas. La cantidad de fotones en este mapa debe ser lo suficientemente grande, ya que el mapa es la única fuente de información sobre cáusticas en la escena.

En el caso de la iluminación indirecta suave, la radiancia se calcula utilizando directamente el mapa de fotones. Sin embargo, esta contribución no necesita ser tan precisa como la contribución de las cáusticas y, por lo tanto, utiliza el mapa de fotones global.

Cálculo de la radiancia mediante el mapa de fotones

Para calcular la radiancia de la superficie en un punto de intersección, se utiliza uno de los mapas de fotones almacenados en caché. Los pasos son los siguientes:

  1. Reúna los N fotones más cercanos utilizando la función de búsqueda de vecino más cercano en el mapa de fotones.
  2. Sea S la esfera que contiene estos N fotones.
  3. Para cada fotón, divida la cantidad de flujo (fotones reales) que representa el fotón por el área de S y multiplique por la BRDF aplicada a ese fotón.
  4. La suma de esos resultados para cada fotón representa la radiancia superficial total devuelta por la intersección de la superficie en la dirección del rayo que lo impactó.

Optimizaciones

Variaciones

Referencias

  1. ^ Jensen, H. (1996). Iluminación global mediante mapas de fotones . [en línea] Disponible en: http://graphics.stanford.edu/~henrik/papers/ewr7/egwr96.pdf

Enlaces externos