Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Trazado de rayos
El raytracing o trazado de rayos es un algoritmo para sntesis de imgenes tridimensionales. Propuesto inicialmente por Turner Whitted en 1980, est basado en el algoritmo de determinacin de superficies visibles de Arthur Appel denominado Ray Casting (1968). En el algoritmo Ray Casting se determinan las superficies visibles en la escena que se quiere sintetizar trazando rayos desde el observador (cmara) hasta la escena a travs del plano de la imagen. Se calculan las intersecciones del rayo con los diferentes objetos de la escena y aquella interseccin que est ms cerca del observador determina cul es el objeto visible. El algoritmo de trazado de rayos extiende la idea de trazar los rayos para determinar las superficies visibles con un proceso de sombreado (clculo de la intensidad del pxel) que tiene en cuenta efectos globales de iluminacin como pueden ser reflexiones, refracciones o sombras arrojadas.
Para simular los efectos de reflexin y refraccin se trazan rayos recursivamente desde el punto de interseccin que se est sombreando dependiendo de las caractersticas del material del objeto intersecado. Para simular las sombras arrojadas se lanzan rayos desde el punto de interseccin hasta las fuentes de luz. Estos rayos se conocen con el nombre de rayos de sombra (shadow rays). El algoritmo bsico de trazado de rayos fue mejorado por Robert Cook (1985) para simular otros efectos en las imgenes mediante el muestreo estocstico usando un mtodo de Montecarlo; entre estos efectos podemos citar el desenfoque por movimiento (blur motion), la profundidad de campo o el submuestreo para eliminar efectos de aliasing en la imagen resultante. En la actualidad, el algoritmo de trazado de rayos es la base de otros algoritmos ms complejos para sntesis de imgenes (mapeado de fotones, Metropolis, entre otros) que son capaces de simular efectos de iluminacin global complejos como la mezcla de colores (color blending) o las custicas.
Trazado de rayos } } } Si NearestObject = NULL{ Rellenamos pixelActual con el color de fondo } Sino{ Lanzar un rayo a cada foco de luz para comprobar las sombras Si la superficie es reflectiva, generar un rayo reflectivo (recursivo) Si la superficie es transparente, generar un rayo refractante (recursivo) Usar NearestObject y NearestT para computar la funcin de sombreado Rellenar este pixel con el color resultante de la funcin de sombreado } }
Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/