24
Simulación de Cáusticas en POV-Ray ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA INGENIERO EN INFORMÁTICA Realizado por JUAN JOSÉ DOMÍNGUEZ DUARTE Dirgido por FRANCISCO VILLATORO MACHUCA UNIVERSIDAD DE MÁLAGA MÁLAGA, Marzo de 2005

Cáusticas

Embed Size (px)

Citation preview

1. Simulacin de Custicas en POV-Ray ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA INGENIERO EN INFORMTICA Realizado por JUAN JOS DOMNGUEZ DUARTE Dirgido por FRANCISCO VILLATORO MACHUCA UNIVERSIDAD DE MLAGA MLAGA, Marzo de 2005 2. Contenido I. OBJETIVO 1. Qu es una custica? 2. Los trazadores de rayos II. ALGORITMO 3. Ideas claves 4. El Principio de Fermat 5. Propagacin de frentes de ondas III. IMPLEMENTACIN 6. DKB-Trace y POV-Ray 7. El mtodo de Newton: 8. Punto medio 9. Octree 10. Extrapolacin y cache 11. Cache y lista enlazada 12. Propagacin de frente de ondas 13. Mapeado de tonos IV. RESULTADOS 14. Comparacin de Mtodos de Newton Ejemplo 1: Esfera 15. Iluminacin indirecta 16. Frente de ondas 17. Slo iluminacin indirecta Ejemplo 2: Curtica 18. Iluminacin indirecta 19. Frente de ondas 20. Slo iluminacin indirecta V. CONCLUSIONES 21. Conclusiones finales 22. Lneas futuras de trabajo 3. Qu es una custica? 1/22 custica (Del lat. caustcus, y este del gr. , der. de , quemar). 1. f. Fs. Superficie tangente a los rayos reflejados o refractados por un sistema. Una custica se produce cuando un haz de fotones se acumula en un punto. En la imagen de la izquierda se observa una custica en la parte de sombra de la copa causada por la refraccin de los fotones que atraviesan la copa. 4. Los trazadores de rayos 2/22 El trazado de rayos es un algoritmo que genera imgenes fotorrealistas trazando rayos desde el punto de vista elegido hacia los objetos y fuentes luminosas que forman la escena. No tiene en cuenta el efecto de todos los fotones que siguen caminos indirectos (reflejndose o refractndose en otros objetos antes de alcanzar el punto de vista). OBJETIVO DEL PFC La simulacin de custicas mediante la incorporacin de la iluminacin indirecta a un trazador de rayos 5. Conceptos fundamentales 3/22 Artculo de Don Mitchell y Pat Hanrahan de 1992. Illumination from Curved Reflectors. Qu necesitamos conocer de un rayo indirecto? El camino que ha seguido La intensidad luminosa que viaja a travs de l Principio de Fermat Propagacin del Frente de ondas del rayo (Conservacin de la energa) 6. El Principio de Fermat 4/22 Longitud del camino ptico con un rebote: Que de forma general, nos lleva a plantear el siguiente sistema de ecuaciones: La luz viaja a lo largo de caminos pticos de longitud ptica estacionaria, donde la longitud del camino ptico es un mximo o un mnimo con respecto a una pequea variacin del mismo. 7. Propagacin de frente de ondas 5/22 El mismo flujo de radiacin lumnica atraviesa dA y dA'. Por la ley de la conservacin de la energa: De donde se deduce que: O lo que es lo mismo: La intensidad luminosa que viaja a lo largo de un rayo es proporcional a la curvatura gausiana de su frente de ondas. 8. DKB-Trace y POV-Ray 6/22 POV-Ray (Persistence of Vision Raytracer) Es un trazador de rayos freeware muy popular. La versin 1.0 se lanz, en 1989 y la ltima versin oficial (3.6.1) en Agosto de 2004. DKB-Trace (David Kirk Buck Tracer) Es el trazador de rayos precursor de POV-Ray. La versin 2.12 fue la ltima (1989), antes de que se le cambiara el nombre. Caractersticas avanzadas: Aunque escrito en C, sigue diseo orientado a objetos. Contiene un parser que reconoce un lenguaje para la descripcin de escenas. Primitivas para superficies de cuarto grado. Permite definir objetos CSG (Constructive Solid Geometry). 9. El mtodo de Newton-Raphson 7/22 Es el mtodo utilizado para resolver el sistema de ecuaciones planteado por el Principio de Fermat. OBJETIVO: Maximizar el porcentaje de caminos indirectos que realmente son encontrados respecto de los que se quieren determinar. CMO: Utilizando diferentes implementaciones del mtodo: 1 IMPLEMENTCIN: libro Mtodos Numricos con Matlab. 2 IMPLEMENTACIN: libro Numerical Recipes in C. 3 IMPLEMENTACIN: mtodo de convergencia global del libro Numerical Recipes in C. Utilizando diferentes estrategias para la eleccin de la aproximacin inicial a la solucin del sistema. 10. Estrategia: Punto Medio 8/22 Determina el punto medio de la fuente luminosa y el punto de la escena destino. Traza un rayo desde ese punto al centro del objeto que genera iluminacin indirecta, para determinar el valor inicial X. Complejidad constante. 11. Estrategia: Octree 9/22 Octree: rbol que indexa 3 dimensiones, de forma que cada nodo tiene 8 hijos o ninguno. Cada par (fuente luminosa,objeto) tiene asociado un octree. Se va llenando la estructura con los puntos destino y sus correspondientes soluciones X. Para cada punto destino, se elige la X del punto destino ms cercano de la rama recorrida. Complejidad logartmica. 12. Estrategia: Extrapolacin 10/22 Utiliza una cache para cada par (objeto,fuente luminosa) donde almacena los puntos destino y soluciones X para los 3 ltimos pxeles trazados. La prxima solucin, X, se extrapola utilizando una expresin derivada del polinomio de Lagrange de grado 2. Complejidad constante. 13. Estrategias: cache y lista enlazada 11/22 Cache Para cada par (objeto,fuente luminosa) guarda los ltimos 4 puntos destino calculados y las soluciones X asociadas. Complejidad constante. Lista enlazada de puntos del objeto Para cada objeto se crea una lista enlazada con los puntos de la superficie del objeto y sus vectores normales. Se elige como solucin X el punto que minimice Complejidad lineal respecto al tamao de la lista. 14. Implementacin de frente de ondas 12/22 Se ha aadido a DKB-Trace una nueva clase Wavefront para guardar la curvatura gaussiana del frente de ondas asociado al rayo conforme este interacta con los objetos de la escena. Se ha aadido el mtodo Shape() a la clase Object, que calcula la curvatura del objeto en un punto y direccin dados. La intensidad luminosa asociada a un punto por donde pasa un rayo se calcula como: 15. Mapeado de tonos 13/22 La mayora de los frentes de ondas en las escenas son esfricos o convexos. Como consecuencia, los valores finalmente asignados a los pxeles de la imagen son de magnitud muy pequea. Solucin: Escalar los valores de los pxeles al rango adecuado [0,1]. Determinar el valor clave de la escena (log-average luminance) y mapear los valores utilizando un operador como: Imagen sin mapeado de tono Imagen con mapeado de tono y valor clave =0,05. 16. Comparacin de estrategias 14/22 Datos obtenidos para una escena con una curtica y una fuente luminosa cercana (tamao 200x150 pxeles) 17. Ejemplo 1: Esfera con iluminacin 15/22 indirecta Sin iluminacin indirecta Con iluminacin indirecta (opcin +G del trazador activada) 18. Ejemplo 1: Esfera con propagacin 16/22 de frente de ondas Con iluminacin indirecta (opciones +G +U del trazador activada) Sin iluminacin indirecta (opcin +U del trazador activada) 19. Ejemplo 1: Esfera slo iluminacin 17/22 indirecta Iluminacin indirecta causada por una esfera vista desde arriba (opciones +u +R +t0.04 del trazador). Como se trata de una supeficie convexa, no produce custicas. 20. Ejemplo 2: Curtica con iluminacin 18/22 indirecta Sin iluminacin indirecta Con iluminacin indirecta (opcin +G activada) 21. Ejemplo 2: Curtica con propagacin 19/22 de frente de ondas Sin iluminacin indirecta (opciones +U +T activadas) Con iluminacin indirecta (opciones +G +U +T activadas) 22. Ejemplo 2: Curtica slo iluminacin 20/22 indirecta Iluminacin indirecta causada por una curtica vista desde arriba (opciones +U+R +T0.03 del trazador). Como se trata de una supeficie con regiones cncavas, produce custicas. 23. Conclusiones finales 21/22 La tcnica propuesta por Don Mitchell y Pat Hanrahan en su artculo de 1992 Illumination from Curved Reflector se puede implementar en un trazador popular como es DKB-Trace. Es una tcnica costosa: Resolver sistema de ecuaciones no lineales por cada camino indirecto. Evaluar el operador Shape en cada reflexin (o refraccin). En su implementacin, es necesario tener presente las posibles inconsistencias: No convergencia. Combinancin de propagacin de frente de ondas con otros modelos de iluminacin. 24. Lneas futuras de trabajo 22/22 Para mejorar la eficiencia: Implementaciones especficas del mtodo resultor para cada primitiva. Nuevas estrategias para elegir la aproximacin inicial. Para mejorar la consistencia: Implementar mtodos resultores que aseguren convergencia. Utilizar filtros que disimulen los efectos de la no convergencia. Para aadir funcionalidad: Simulacin de caminos indirectos con ms de un rebote. Objetos CSG (Constructive Solid Geometry) con iluminacin indirecta.