Proyecto CC52B Implementación de ray tracing Jong Bor Lee Profesora: María Cecilia Rivara Auxiliar: Eduardo Graells
¿Qué es ray tracing? Es una técnica de rendering que produce imágenes trazando rayos desde un ojo imaginario a cada pixel. El rayo se hace rebotar con los objetos de la escena y el rayo reflejado determinará el color de un pixel. Imagen del paper de Turner Whitted An improved illumination model for shaded display Communications of the ACM, v.23 n.6, p.343-349, June 1980
¿Qué es ray tracing? Applet ilustrativo: http://www.siggraph.org/education/materials/HyperGraph/raytrace/rt_java/raytrace.html
¿Qué es ray tracing? El proceso de seguimiento es recursivo
¿Qué es ray tracing? Da imágenes de gran realismo. Facilita efectos de reflexión y refracción, entre otros. Técnica popular, ampliamente estudiada y documentada.
¿Qué es ray tracing? Es costosa computacionalmente, así que no se usa en tiempo real, aunque hay investigación avanzando en este sentido. Ejemplo: RayCity, juego de carreras (proyecto de universidades de Saarland y Erlangen, Alemania, 2005)
Planes (muy preliminar) Iteración 1: estudio e implementación básica de ray tracing (lograr que funcione, sin buscar eficiencia ni imágenes sofisticadas). Iteración 2: posibles optimizaciones dependiendo de la eficiencia de la implementación. Experimentar con distintas escenas y efectos (reflexión, refracción, antialiasing).
Ambiente de desarrollo OpenGL C++
Referencias Glassner, Andrew. An introduction to ray tracing. 1989. Hearn, Baker. Computer Graphics Principles and Graphics in C. Cap 14-6, Ray-tracing methods. Second edition, 1995. A raytracer in C++ http://www.codermind.com/articles/Raytracer-in-C++-Introduction-What-is-ray-tracing.html
Referencias Ray Tracing on GPU http://www.clockworkcoders.com/oglsl/rt/ Raytracing: Theory and implementation http://www.devmaster.net/articles/raytracing_series/part1.php