Inicio >1. Introduccion2. Modelado3. Materiales e Iluminacion4. Animacion5. Render y Postproduccion
5.1. Introducción: Render y Postproducción 5.3. Ambient Occlusion

5.2. Trazado de Rayos

El método de trazado de rayos (propuesto por Whitted como mejora del método de Ray Casting es una alternativa elegante y sencilla que permite calcular de una forma unificada la reflexión y la refracción de la luz, sombras, eliminación de superficies ocultas y otros efectos necesarios para conseguir escenas fotorrealistas. De este método surgieron aproximaciones más completas que resolvían de forma más exacta la ecuación de render, basándose en los mismos principios de trazado de los caminos que sigue la luz. Por esta razón, prestaremos especial atención a la descripción de este método.

La idea básica del trazado de rayos es seguir el camino de la luz desde las fuentes emisoras de fotones hasta que llegan a la posición del observador. La simulación del camino natural de la luz presenta el principal inconveniente de que la mayoría de los rayos nunca llegan al observador (o plano de imagen), lo que resulta computacionalmente prohibitivo. Este es el esquema de trazado de rayos hacia delante (forward RayTracing).

Para evitar trazar un número alto de rayos que no llegarán al plano imagen, y como solución sencilla a la discretización del espacio continuo en píxeles, se emplea el trazado de rayos hacia atrás (backward RayTracing), donde los rayos parten del plano imagen hasta alcanzar los objetos de la escena. La Figura 1 muestra un esquema general de los componentes básicos que forman un trazador de rayos hacia atrás.

Figura 01. Esquema de funcionamiento del RayTracing.

Una de las principales características del método de RayTracing es el cálculo recursivo de la contribución de la luz debido a la reflexión y refracción que se produce en ciertas superficies. Así, definimos cuatro tipos de rayos:

  • Rayos Primarios o Visuales (V): Son los rayos que parten de la cámara virtual, pasando por cada uno de los píxeles en el plano de imagen. Para cada elemento de la escena se comprueba si el rayo visual intersecta con alguno de ellos, quedándonos con el punto de intersección más cercano de toda la lista de objetos.
  • Rayos de Sombra (S): Parten del punto de intersección con el objeto y tienen dirección hacia las fuentes de luz. De nuevo se realiza una prueba de intersección del rayo con todos los objetos de la escena para ver si hay algún objeto que corte su trayectoria, en cuyo caso el punto de origen del rayo estaría en sombra.
  • Rayos Reflejados (R): Si el objeto donde intersectó el rayo tiene propiedades de reflexión de tipo espejo, se generará un nuevo rayo reflejado en ese punto. Este rayo se construirá típicamente en un procedimiento recursivo, pasando a comportarse como un rayo primario en la siguiente iteración del algoritmo.
  • Rayo Transmitidos (T): En el caso de objetos en mayor o menor grado transparentes, y de forma análoga al tratamiento para los rayos reflejados, se generará un rayo transmitido. De igual forma, este nuevo rayo se comportará como un rayo primario en la siguiente iteración del algoritmo.

Utilización de RayTracing en Blender

En la tercera sesión del curso (apartado 3.4) ya estudiamos el uso de RayTracing para calcular reflexiones realistas en los materiales. Recordemos que simplemente es necesario activar el botón Ray de la pestaña de Render del grupo de botones de Render . En la misma sección vimos que las fuentes de luz podían configurarse para calcular las sombras (los rayos de sombra S estudiados en este mismo apartado) mediante trazado de rayos.

Figura 02. Resolución del Octree.

Para mejorar los tiempos de render en RayTracing se emplean estructuras de datos para calcular de una forma más eficiente la intersección rayo-objeto. Una de estas estructuras son los árboles octales (Octree), en los que cada nodo del árbol tiene hasta ocho hijos (que subdividen el espacio del nodo padre). Este tipo de árbol se emplean frecuentemente para particionar el espacio 3D. En la lista desplegable situada en la parte inferior de la pestaña Render (ver Figura 2) es posible elegir la resolución del Octree. Es conveniente utilizar valores mayores para escenas geométricamente complejas (muchas caras poligonales). Es conveniente, en el caso de emplear RayTracing en animaciones, realizar pruebas en varios frames con diferentes resoluciones del Octree para comprobar qué configuración nos da mejores resultados. La resolución del Octree no tiene efecto sobre la calidad del render, únicamente sobre el tiempo invertido en el cálculo del render.

5.1. Introducción: Render y Postproducción 5.3. Ambient Occlusion