Consistencia en luces de área y Monte Carlo raytracing
Número de respuestas: 4Teniamos 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.
Re: Consistencia en luces de área y Monte Carlo raytracing
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
Re: Consistencia en luces de área y Monte Carlo raytracing
Re: Consistencia en luces de área y Monte Carlo raytracing
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
Re: Consistencia en luces de área y Monte Carlo raytracing
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!
Muchas gracias!