¿Por qué el trazado de rayos de Monte Carlo funciona mejor que el trazado de rayos distribuidos?


30

Escuché que la calidad de un rastreador de Monte Carlo (basado en algoritmos de trazado de ruta) es mucho más realista que un motor distribuido (estocástico). Trato de entender por qué, pero solo estoy al principio.

Para profundizar en este tema y comprender los conceptos básicos, ¿alguien puede señalarme en la dirección correcta? ¿Qué parte del algoritmo conduce a un resultado de renderizado más realista?


99
Quisiera más que "Una recomendación de un libro sólido", ya que esta pregunta debe recibir una respuesta directa de alguien que sepa sobre esto. Deberíamos tratar de poner información en el sitio en lugar de señalarlo fuera del sitio.
Robobenklein el

@robobenklein Pregunta editada, mejor tener cuidado;)
p2o

Extracción @ChristianRau "Gracias" debe discutido en un meta, esto es diferente en cada sitio de intercambio de pila ...
p2or

1
@poor No, en realidad no lo es. Eso es algo que en ninguna parte cambia. Y siempre que no tengamos reglas especiales, de todos modos empleamos las reglas generales de SE. Pero incluso entonces, casi no puedo imaginar a nadie por votar que esto se permita aquí. Nunca he visto que esto sea una buena práctica en ningún otro sitio de SE.
Chris dice que reinstala a Mónica el

Respuestas:


31

El término "trazado de rayos distribuidos" fue originalmente acuñado por Robert Cook en este artículo de 1984. Su observación fue que para realizar el suavizado en un trazador de rayos, el renderizador debe realizar un muestreo espacial superior, es decir, tomar más muestras (es decir, disparar más rayos) que la cantidad de píxeles en la imagen y combinar sus resultados . Una forma de hacerlo es disparar múltiples rayos dentro de un píxel y promediar sus valores de color, por ejemplo. Sin embargo, si el renderizador ya está trazando múltiples rayos por píxel de todos modos para obtener una imagen suavizada, entonces estos rayos también se pueden "distribuir" entre dimensiones adicionales además de la posición del píxel para muestrear efectos que no podrían ser capturados por un solo rayo . Lo importante es que esto viene sin ningún costo adicional además del muestreo espacial superior, ya que de todos modos ya está trazando esos rayos adicionales. Por ejemplo,

El trazado de rayos de Monte Carlo es un término que es ligeramente ambiguo. En la mayoría de los casos, se refiere a técnicas de representación que resuelven la ecuación de representación, introducido por Jim Kajiya en 1986, utilizando la integración de Monte Carlo. Prácticamente todas las técnicas modernas de representación que resuelven la ecuación de representación, como el trazado de ruta, el trazado de ruta bidireccional, el mapeo progresivo de fotones y el VCM, se pueden clasificar como técnicas de trazado de rayos de Monte Carlo. La idea de la integración de Monte Carlo es que podemos calcular la integral de cualquier función eligiendo aleatoriamente puntos en el dominio de integración y promediando el valor de la función en estos puntos. En un nivel alto, en el trazado de rayos de Monte Carlo podemos usar esta técnica para integrar la cantidad de luz que llega a la cámara dentro de un píxel para calcular el valor del píxel. Por ejemplo, un trazado de ruta hace esto seleccionando aleatoriamente un punto dentro del píxel para disparar el primer rayo, y luego continúa eligiendo aleatoriamente una dirección para continuar en la superficie en la que aterriza, Etcétera. También podríamos elegir aleatoriamente una posición en el eje de tiempo si queremos hacer un desenfoque de movimiento, o elegir aleatoriamente un punto en la apertura si queremos hacer la profundidad de campo, o ...

Si esto suena muy similar al trazado de rayos distribuido, ¡es porque lo es! Podemos pensar en el trazado de rayos distribuidos como una descripción muy informal de un algoritmo de Monte Carlo que muestrea ciertos efectos como sombras suaves. El documento de Cook carece del marco matemático para razonar realmente sobre esto correctamente, pero ciertamente podría implementar el trazado de rayos distribuidos utilizando un simple renderizador de Monte Carlo. Vale la pena señalar que el trazado de rayos distribuidos carece de una descripción de los efectos de iluminación global, que se modelan naturalmente en la ecuación de representación (debe mencionarse que el artículo de Kajiya se publicó dos años después del artículo de Cook).

Puede pensar en el trazado de rayos de Monte Carlo como una versión más general del trazado de rayos distribuido. El trazado de rayos de Monte Carlo contiene un marco matemático general que le permite manejar prácticamente cualquier efecto, incluidos los mencionados en el documento de trazado de rayos distribuido.

En estos días, "trazado de rayos distribuidos" no es realmente un término que se utiliza para referirse al algoritmo original. Con mayor frecuencia lo escuchará junto con los "efectos de distribución", que son simplemente efectos como desenfoque de movimiento, profundidad de campo o sombras suaves que no se pueden manejar con un trazador de rayos de muestra única.


5

En el trazado de rayos distribuido , usted toma muestras estocásticamente de muchos rayos en direcciones que el BRDF puede preferir o no . Mientras que, en el trazado de rayos de Monte Carlo o simplemente en el trazado de ruta, se muestrea solo un rayo en una dirección preferida por el BRDF . Por lo tanto, hay dos ventajas obvias que tendría el trazado de ruta:

  • Computacionalmente menos costoso. Lo que significa que con la misma potencia de cálculo tiene la libertad de calcular más golpes de objetos en comparación con el trazado de rayos distribuidos donde hay múltiples rayos.
  • Menos ruido. El trazado de rayos distribuido muestrea rayos en direcciones que podrían no ser preferidas por el BRDF, por lo que se introducen artefactos no deseados.

Y así, el trazado de ruta le dará mejores resultados.


2
"Mientras que, en el trazado de rayos de Monte Carlo o simplemente en el trazado de ruta, se muestrea solo un rayo en una dirección preferida por el BRDF". Per se, no sabes cómo se selecciona el rayo. Los enfoques ingenuos usan rayos aleatorios. Tener en cuenta el BRDF es un muestreo importante y no es inherente al trazado de rayos de Monte Carlo o al trazado de ruta.
David Kuri

44
Creo que esta respuesta es completamente falsa. Usted es libre de muestrear múltiples rayos salientes y ponderar su resultado cuando se combina. Obtiene la misma verdad que la técnica de la ruleta rusa, pero generalmente se acepta que el método anterior es más costoso.
v.oddou