Trazado de rayos no en tiempo real

13

He jugado bastante con el trazado de rayos en tiempo real (y raymarching, etc.), pero no he dedicado tanto tiempo al trazado de rayos en tiempo no real, para imágenes de mayor calidad o para pre-renderizar videos y similares.

Sé que una técnica común para mejorar la calidad de la imagen en el caso de tiempo no real es emitir MUCHO más rayos por píxel y promediar los resultados.

¿Existen otras técnicas que se destaquen como buenas formas de mejorar la calidad de la imagen en el caso en tiempo no real, sobre lo que normalmente haría en el caso en tiempo real?

Alan Wolfe
fuente

Respuestas:

9

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: ingrese la descripción de la imagen aquí 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: ingrese la descripción de la imagen aquí

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. ingrese la descripción de la imagen aquí 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. ingrese la descripción de la imagen aquí

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 ingrese la descripción de la imagen aquí

JarkkoL
fuente
5

Uno de los grandes es el uso de geometría sólida constructiva en lugar de mallas triangulares. Las intersecciones triángulo-rayo son más rápidas que casi cualquier otra intersección en forma de rayo, pero se necesitan grandes cantidades de triángulos para aproximarse a la superficie de un cilindro o toro, sin mencionar algunas de las formas realmente exóticas como los fractales de Julia o las funciones paramétricas generalizadas que algunos renderizadores apoyan.

Otro es el uso del mapeo de fotones en tiempo de renderizado y los cálculos difusos de interreflexión : esto le permite obtener efectos de iluminación precisos en una escena cambiante. En el trazado de rayos en tiempo real, estos son demasiado caros de calcular, por lo que las fuentes de luz y los principales elementos de geometría se ven obligados a ser estacionarios (para permitir el cálculo previo) o los efectos se omiten por completo.

marca
fuente
Las superficies de subdivisión se usan mucho más que la geometría sólida constructiva. Todavía involucran triángulos (o alternativamente splines).
3

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:

ingrese la descripción de la imagen aquí

Alan Wolfe
fuente