El trazado de ruta es la técnica estándar en el renderizado fotorrealista no en tiempo real, y debe buscar específicamente en el trazado de ruta bidireccional para obtener efectos como cáusticos, que realmente no se pueden obtener con el trazado de ruta básico. El trazado de ruta bidireccional también converge más rápido a la verdad del terreno como se muestra en la imagen a continuación:
También el transporte ligero de Metropolis (MLT) es una técnica de rastreo de ruta más avanzada que converge aún más rápido a la verdad del terreno al mutar las rutas "buenas" existentes:
También puede usar el muestreo de importancia para una convergencia más rápida al enfocar más rayos en las direcciones que importan más. Es decir, enfocando los rayos basados en BRDF (más hacia el pico BRDF usando la función de densidad de probabilidad) o hacia la fuente de luz, u obtenga lo mejor de los dos mundos y usando muestreo de importancia múltiple.
Esto se trata de reducir el ruido de manera imparcial. También hay técnicas de eliminación de ruido para reducir aún más el ruido en las imágenes renderizadas.
Creo que es mejor implementar primero el trazador de ruta Monte Carlo de fuerza bruta básica para que sirva como referencia imparcial antes de analizar las técnicas más avanzadas. Es bastante fácil cometer errores e introducir sesgos que pasan desapercibidos, por lo que es bueno tener una implementación simple como referencia.
También puede obtener resultados realmente buenos aplicando el trazado de ruta a los medios participantes, pero eso se ralentiza muy rápido: D
Aunque no sabía sobre el trazado del camino de Monte Carlo cuando escribí esto, accidentalmente lo describí. Irónicamente, el trazado de ruta de Monte Carlo es la respuesta que estaba buscando en ese momento.
El trazado de ruta ingenuo de monte carlo funciona evaluando algo llamado ecuación de representación para resolver numéricamente el valor de color de un píxel. Toma muestras aleatorias al fluctuar aleatoriamente dentro de un píxel (hay mejores estrategias de muestreo y filtrado: ¿Cuál es el razonamiento fundamental para el suavizado usando múltiples muestras aleatorias dentro de un píxel? ) Y también rebotando en direcciones aleatorias cuando un rayo golpea una superficie .
Puede tomar muchas muestras para obtener buenos resultados, y con no suficientes muestras, su imagen se verá ruidosa. Se necesitan 4 veces más muestras para reducir el ruido a la mitad. Los tiempos de procesamiento pueden ser del orden de una hora usando 8 núcleos de CPU modernos para una escena simple.
Existen técnicas de trazado de ruta de Monte Carlo más avanzadas que le permiten obtener mejores imágenes más rápidamente, como el muestreo de importancia o la eliminación de ruido de la imagen después de que se renderiza.
El trazado de ruta de Monte Carlo puede crear imágenes fotorrealistas y le ofrece muchas funciones de representación avanzadas simplemente porque sigue las leyes físicas, por lo que ofrece resultados realistas.
Puede leer más sobre esto aquí: http://blog.demofox.org/2016/09/21/path-tracing-getting-started-with-diffuse-and-emissive/
Aquí hay una imagen de ejemplo, que tardó aproximadamente una hora en renderizar usando los 8 núcleos de mi CPU:
fuente