Consistencia en luces de área y Monte Carlo raytracing

Consistencia en luces de área y Monte Carlo raytracing

de Bruno Sena Giuggiolini -
Número de respuestas: 4
Buenas!

Teniamos una duda, con respecto a las luces de área. En ICG las luces eran puntuales, entonces al utilizar la función shadow veíamos si estaba ocluida o no y eso era suficiente como para saber la intensidad de luz directa percibida en un punto. En clase estuvimos viendo el tema de luces que ocupan un área, y por lo entendido la diferencia ahora sería que habría que seleccionar una cantidad arbitraria de puntos de luz en el área y realizar el mismo proceso que antes.

La duda es, seleccionar dinámicamente puntos aleatorios del área para cada ejecución de trace no daría resultados poco consistentes? La otra alternativa es elegir el área y fijar para todos los cálculos con esa luz un conjunto de luces puntuales seleccionadas aleatoriamente y ahí si hacer las cuentas necesarias.
En respuesta a Bruno Sena Giuggiolini

Re: Consistencia en luces de área y Monte Carlo raytracing

de Eduardo Fernandez -

Hola, 

Buena pregunta. En general lo que se hace es tirar algunas decenas/cientos de rayos aleatorios del punto a la fuente luminosa. Una alternativa más barata es fijar los puntos en la fuente luminosa. En la mayoría de las escenas no va a haber problema. Pero hay que tener cuidado con el aliasing de (por ejemplo) una grilla de 5x5 puntos en la fuente luminosa, y que justo desde algún lado que debería estar iluminado esas 25 posiciones estén ocultas. Un ejemplo sería una reja, o una silla de madera, o los rayos de una moto/bicicleta, donde hay muchas obstrucciones/espacios vacíos siguiendo un patron regular, y que podrían hacer que se generen patrones de luz y sombra que no sean los que deberían ser. 

Lo anterior se evita con una serie de rayos aleatorios y no fijos. La contra de que sea aleatorio es que se genera un ruido que para evitarlo se deba tirar una mayor cantidad de rayos.

Espero haber sido medianamente claro. No hay una respuesta mejor para todos los casos. 

saludos

EF

En respuesta a Eduardo Fernandez

Re: Consistencia en luces de área y Monte Carlo raytracing

de Bruno Stecanella Mordecki -
Si alguno de los rayos están tapados y otros no, deberíamos pintar con 100% de la intensidad de la luz o escalar según la cantidad de puntos cubiertos?
En respuesta a Bruno Stecanella Mordecki

Re: Consistencia en luces de área y Monte Carlo raytracing

de Eduardo Fernandez -

Hola, la potencia recibida debería ser proporcional a la cantidad de rayos que no intersecan.

Ojo, no es solo sumar rayos. La potencia de cada rayo es proporcional al inverso del cuadrado de la distancia. potencia = k/(d^2)


EF

En respuesta a Eduardo Fernandez

Re: Consistencia en luces de área y Monte Carlo raytracing

de Bruno Sena Giuggiolini -

Entonces probablemente probemos con el método fijo, para intentar optimizar un poco el tiempo de ejecución y si vemos que resulta en algún problema probamos hacerlo más dinamico (o una mezcla entre los dos).

Dejo la imagen de luz directa que había prometido para el jueves!

teapot


Muchas gracias!