• No se han encontrado resultados

Figura 7.13: Arbol de rayos para la figura 7

En la figura 7.12 se presenta un problema básico con la forma en que la traza de rayos modela la refracción: el rayo de sombra L3 no se refracta en su trayectoria hacia la luz. De hecho si simplemente refractáramos L3 de su dirección actual al punto donde sale el objeto grande, no terminaría en la fuente luminosa. Además, al terminar las trayectorias de los rayos refractados se utiliza un sólo índice de refracción para cada rayo.

La traza de rayos es muy susceptible de presentar problemas ocasionados por la limitada precisión numérica. Estos problemas se presentan al calcular objetos que intersecan rayos secundarios. Después de haber calculado las coordenadas x, y, y z del punto de intersección de un objeto visible a un rayo ocular, éstas se usan para definir el punto de partida del rayo secundario cuyo parámetro t debemos determinar. Si el objeto que acabamos de intersecar intercepta el nuevo rayo, con frecuencia tendrá un t muy pequeño, distinto de cero. Si no consideramos esta situación, esta falsa intersección puede generar problemas visuales. Por ejemplo si el rayo fuera de sombra, se consideraría que el objeto bloquea la luz que recibe, produciendo manchas de superficie incorrectamente “autosombreada”. Una forma sencilla de resolver este problema es tratar como caso especial el objeto del cual se genera un rayo secundario, para que las pruebas de intersección no se apliquen a él. Es obvio que, esto no funcionará si se utilizan objetos que en realidad podrían oscurecerse a sí mismos o si los rayos transmitidos tiene que pasar por el objeto y reflejarse en su interior. Una solución más general es calcular abs(t) para la intersección, comparar el resultado con un pequeño valor de tolerancia e ignorarlo si está por debajo de la tolerancia.

7.8. Comparación entre Mapa de Ambiente y

Trazado de Rayos

El mapa de ambiente es frecuentemente pensado como una forma de obtener efectos de reflexiones aproximados con una fracción de costo

computacional. Mientras el trazado de rayos es una técnica

incuestionablemente más versátil y comprehensiva, ya que maneja sombras y múltiples niveles de reflexiones y refracciones, el mapa de ambiente es superior en algunos aspectos, por ejemplo en su enorme ventaja en velocidad. El mapa de ambiente convenientemente manejado encuentra iluminaciones difusas, operaciones de antialiasing de iluminación especular que son problemáticas con el trazado de rayos en puntos muestreados en un ambiente.

Teóricamente encontrar la iluminación difusa y especular impregnada sobre una región de la superficie requiere integración sobre parte del ambiente 3D e inherentemente procedimientos complejos. Refinamientos al trazado de rayos propuesto para aproximar esta integración incluyen trazado de rayos distribuido y trazado de rayos con conos. El trazado de rayos distribuido y el de conos se encuentran en el capítulo 16 de [Foley90],

El mapeo de ambiente simplifica el problema tratando el ambiente como una proyección 2D, que permite la integración implementada con filtrado de textura. Especialmente la iluminación de superficies difusas y especulares puede ser encontrada filtrando regiones de un mapa de ambiente. Sin embargo la proyección sobre un ambiente 2D más que el ambiente 3D es una simplificación grosera que sacrifica la calidad de la información local, y consecuentemente aspectos del formado de la imagen que dependen del ambiente local, tales como sombras que no pueden ser implementadas de un

modo confiable. Por otro lado el mapa de ambiente transporta exactamente la iluminación global, y en situaciones donde el ambiente local no afecta substancialmente la superficie mostrada, la calidad subjetiva producida por el mapa de ambiente puede ser superior que aquella producida por el trazado de rayos.

Hay una limitación inherente al mapeo de ambiente. El objeto reflectante no está normalmente en el mapa de ambiente, el objeto no puede reflejar partes de si mismo (por ejemplo las patas no son reflejadas en el cuerpo). Actualmente esta limitación puede ser parcialmente superada utilizando mapas de entorno diferentes para partes del objeto. Con los mapas de entorno A_Buffereados, al guardar información de toda la escena, se resuelven esta limitación porque permiten hacer una implementación recursiva de las reflexiones.

Pero a pesar de todo el mapa de entorno se implementa bien en una escena. Los objetos lejanos son reflejados exactamente. Las reflexiones más próximas son menos exactas, pero la curvatura de la superficie reflectora hace que esto sea difícil de reconocer. Las reflexiones no necesitan ser exactas para verse bien, la atención debería ser puesta en la composición de la escena. Las superficies reflectoras planares, por ejemplo, podrían causar problemas, dado que su distorsión en las reflexiones puede ser bastante notables.

Podemos aumentar el realismo reproduciendo las sombras proyectadas por un objeto sobre otro. Este es otro caso en que la apariencia de un objeto se ve afectada por otros objetos. Las sombras aumentan el realismo y ofrecen mayor indicación de la profundidad: si el objeto A proyecta una sombra sobre la superficie B, entonces sabemos que A se encuentra entre B y una fuente de luz directa o reflejada.

Los algoritmos de superficies visibles determinan cuales son las superficies que pueden verse desde el punto de observación; los algoritmos de sombras determinan cuales son las superficies que se pueden “ver” desde la fuente luminosa. Por lo tanto ambos algoritmos son en esencia los mismos. Las superficies que son visibles desde la fuente luminosa no están bajo sombra; los que no son visibles desde la fuente están bajo sombra. Cuando hay varias fuentes luminosas, hay que clasificar una superficie con respecto a cada una de ellas.

Consideraremos aquí las fuentes luminosas puntuales, dejando de lado las extendidas. La visibilidad desde una fuente luminosa puntual es, como la visibilidad desde el punto de observación, un aspecto absoluto: todo o nada. Cuando un punto en la superficie no se puede ver desde una fuente luminosa, el cálculo de iluminación debe ajustarse para considerarlo. La adición de sombras a la ecuación de iluminación (ver pág. 57) genera:

!>. “ laX^aOdX + ^1< ¡ <n S¡fattJpX.¡[kdOdX.(N»L) + ksOs>.(R¡#V) ]

donde

{

0, si la luz i está bloqueada en ese punto;1, si la luz i no está bloqueada en ese punto

Las áreas en sombra de todas las fuentes puntuales continúan iluminadas por la luz ambiental.

8.1. Traza de rayos de sombras

Imagínese a usted mismo sobre la superficie de un objeto, como el punto P en la figura 8.1, por ejemplo. ¿Hay alguna luz que llegue a usted desde las fuentes de luz? Una forma de responder a esta pregunta es, simplemente, mirar a cada luz. Si usted puede ver la fuente de luz, entonces hay un camino entre usted y la luz, y como mínimo algunos fotones pueden viajar por ese camino. Si hay algunos objetos opacos en ese tramo, entonces

ninguna luz está viniendo directamente desde la fuente de luz hasta hacia su ojo, y usted está en sombra respecto de esa luz.

Podemos simular esta operación de pararnos sobre un objeto y mirar hacia la fuente de luz con un rayo de luz llamado rayo de sombras. En la práctica, un rayo de sombra es como cualquier otro rayo, excepto que lo usamos para mirar alrededor buscando sombras. Básicamente comenzamos el trayecto del rayo en el objeto y lo enviamos a la fuente de luz (recuerde que estamos siguiendo el camino de los fotones hacia atrás). Si este rayo retrógrado alcanza la fuente de luz sin chocar ningún objeto en su camino, entonces, ciertamente algunos fotones viajarán hacia adelante por el rayo de luz para iluminar el objeto. Pero si hay algún objeto opaco en el camino, entonces la luz no puede llegar a través de este objeto hacia nosotros; nosotros estaríamos en sombra relativa a esa fuente de luz. La figura 8.1 muestra dos rayos de sombra dejando la superficie, el rayo LA yendo a la fuente de luz A, y el rayo LB yendo a la fuente de luz B. El rayo LA llega a su fuente de luz sin interrupción, pero el rayo LB choca con un objeto opaco en su camino. De esto deducimos que la luz llegará desde la luz A pero no desde la luzB.

Cuando un rayo de sombra alcanza una fuente de luz sin interrupción, dejamos de pensar en él como tal, y comenzamos a pensarlo como un rayo de luz, que acarrea luz desde la fuente de luz.

En resumen, la primer clase de rayos de luz que contribuyen al color de la luz son los rayos de luz que vienen directamente de la fuente de luz, iluminando al objeto. Para determinar cuando hay algunos fotones viniendo desde una fuente de luz enviamos un rayo de sombra a cada fuente de luz. Si el rayo no encuentra un objeto opaco en su camino hacia la luz, es signo de que los fotones arribarán desde la luz hasta el objeto. En caso contrario el objeto está en sombra relativa a esa fuente de luz.

En este caso solo discutimos que pasa cuando chocamos con objetos opacos; el caso de los objetos Reflectivos es discutido en otra sección del trabajo (ver pág. 77)

A

B

Figura 8.1: determinación de la iluminación de