Introducción a la iluminación de escenas

3dpoder - 09/09/2009 03:48
la simulación del comportamiento de la luz es posiblemente el factor más importante a la hora de conseguir sintetizar una imagen realista. Desde los inicios del estudio de la óptica los físicos han desarrollado modelos matemáticos para estudiar la interacción de la luz en las superficies. Relacionada con la temática de esta sesión del curso (iluminación y texturas) hay una bellísima y electrizante historia de amor, creada en 1998 por Juanma Sánchez, llamada luxor x, que incluimos a continuación.
Con la aparición del microprocesador, los ordenadores tuvieron suficiente potencia como para poder simular estas complejas interacciones. Así, empleando un ordenador y partiendo de las propiedades geométricas y de materiales especificadas numéricamente es posible simular la reflexión y propagación de la luz en una escena. A mayor precisión en esta simulación, mayor nivel de realismo conseguiremos en la imagen resultado.
la iluminación de escenas esta directamente relacionada con el método de render utilizado, que veremos en la sesión 5. A mayor precisión en el método de render, mayor tiempo de generación y mayor realismo en la imagen resultado.

A pesar de que el objetivo parece sencillo, existen algunos problemas y limitaciones importantes. El primero es debido al excesivo coste computacional de los métodos de cálculo más realistas. Para cualquier proyecto real de obtención de una imagen, hay que establecer un límite en el nivel de detalle de la escena que queremos simular, indicados en términos del número de interacciones máximas de la luz con las superficies (rebotes), resolución espacial de la imagen, etc. Esta conexión entre la simulación del comportamiento de la luz y el nivel de realismo queda patente en las aproximaciones propuestas en diferentes métodos de render que estudiaremos con más detalle en la sesión 5 del curso. Una ecuación que modela el comportamiento físico de la luz, ampliamente aceptada por la comunidad, es la propuesta por Kajiya en 1986, donde además proponía el método de [Path tracing. De forma general podemos decir a mayor simplificación en la resolución de los términos de esta ecuación tendremos métodos menos realistas (y computacionalmente menos costos os).



figura 01. iluminación local e iluminación global.

iluminación local vs. Iluminación global.

A un alto nivel de abstracción, podemos realizar una primera taxonomía de métodos de render entre aquellos que realizan una simulación de iluminación local, teniendo en cuenta únicamente una interacción de la luz con las superficies, o los métodos de iluminación global que tratan de calcular [todas las interacciones (rebotes) de la luz con las superficies de la escena.

Debido a que es imposible calcular las infinitas interacciones de los rayos de luz con todos los objetos de la escena, las aproximaciones de iluminación global se ocuparan de calcular algunas de estas interacciones, tratando de minimizar el error de muestreo. En la sesión 5 enunciaremos de forma superficial algunas de las técnicas de muestreo que se utilizan en motores de render actuales.

En la figura 1 se muestra el resultado de renderizar la misma escena con un método de iluminación local y uno global. Los modelos de iluminación global incorporan la iluminación directa que proviene de la primera interacción ([rebote) de las partículas de luz con las superficies, así como la iluminación indirecta reflejada por otras superficies existentes en la escena.

Blender incorpora en su motor de render dos métodos que simulan la iluminación global: radiosidad y oclusión ambiental. El método de radiosidad (radiosity) es un método de entre superficies difusas, que tiene algunas propiedades muy interesantes que lo hacen muy adecuando en ciertos entornos (vuelos virtuales de cámara donde la posición de los objetos no cambia, por ejemplo, en visualizaciones de infoarquitectura). En la figura 2 se muestra un ejemplo de cálculo de esta interacción de luz entre superficies difusas, en la famos? Sima escena de la caja de Cornell ([Cornell box), ampliamente utilizada para demostrar este tipo de características en métodos de render (se puede apreciar que las caras de los cubos que están próximas a las paredes adquieren el color de esa pared, el cubo de la derecha de color verde y el de la izquierda rojo, debido al rebote de la luz en la pared y posteriormente en el cubo). El método de emulación de Ambient Occlusion (oclusión ambiental), que ofrece una aproximación físicamente incorrecta, pero muy efectiva visualmente. Ambos métodos, junto con el uso de motores externos (Yafray y LuxRender) que permiten métodos más avanzados (Path tracing, mapas de fotones y transporte de luz de metrópolis) serán estudiados en la quinta sesión del curso.



figura 02. Cornell box.

Algunas herramientas y trucos útiles de Blender


En esta sesión (y en las siguientes) será necesario probar varias alternativas y utilizar frecuentemente el render para visualizar resultados. Para facilitar la tarea, se explicaran a continuación algunas herramientas y trucos útiles de Blender.

Parámetros del grupo de botones render


Aunque se explicara con más detalle en la sesión 5, a partir de esta sesión será conveniente conocer cómo modificar algunos parámetros generales de render en Blender (como resolución, nivel de antialiasing). En los botones de escena , dentro de la categoría de render

(ver figura 3), existen varios botones y cajas de valores numéricos que veremos a continuación. Algunos de los controles más importantes de la pestaña render son los siguientes:


figura 03. opciones render.



figura 04. oversampling.





figura 05. definición de la zona con border.

Border rendering: la opción de border es muy interesante cuando se está trabajando en una escena compleja. Por ejemplo, imaginemos que estamos generando una imagen de alta resolución para una promoción inmobiliaria, y tras 30 horas de render, en la imagen final detectamos que una de las ventanas tiene un error. Bastaría con arreglar el error y definir el rectángulo a renderizar (la zona de la ventana) y lanzar de nuevo el render sólo de esa parte. Compondríamos el resultado con algún programa de retoque, como Gimp.

En la pestaña format (ver figura 3), las opciones más relevantes para las próximas sesiones son:

modo preview
La previsualización de materiales y texturas en Blender es algo limitada en la ventana 3d. Sin embargo, existen opciones para comprobar cómo quedará el resultado mediante una previsualización rápida, accesible desde la cabecera de la ventana 3d view/ render preview o mediante el atajo de teclado shift p.

La ventana de previsualización puede desplazarse en la ventana 3d pinchando y arrastrando con
Sobre la barra de título (ver figura 6), y se puede escalar pinchando y arrastrando con
Sobre su esquina inferior derecha (zona marcada con dos líneas diagonales, ver figura 6). Esta ventana puede usarse sobre cualquier ventana 3d y, naturalmente, sobre la propia vista de la cámara. Como se muestra en la figura de ejemplo, este modo de previsualización muestra materiales, texturas y efectos de iluminación (sombra) sobre cualquier ventana 3d.


figura 06. render preview.

Posicionamiento cómodo de la cámara virtual.

En las próximas sesiones resultara interesante poder modificar cómodamente la posición de la cámara virtual para probar diferentes puntos de vista y enfoques. Establecer manualmente la orientación de la cámara (rotación en cada eje) resulta muy tedioso. En la cuarta sesión del curso estudiaremos en detalle el manejo de restricciones. Ahora aprenderemos cómo definir un tipo de restricción track todo.

Añadiremos a la escena un objeto Empty (recordemos que no tiene representación en la etapa de render), mediante barra espaciadora add/ empty. Hecho esto, seleccionamos primero la cámara
Y después con shift pulsado el empty. Con los dos seleccionados en ese orden, pulsamos control y aceptamos track todo constraint. Aparecerá una restricción de ese tipo en la pestaña constraints de los botones de objeto

Esta restricción puede eliminarse (al igual que los modificadores que vimos en la sesión anterior) pulsando en

Mediante está restricción, podemos desplazar el Empty y la cámara siempre apuntara hacia donde esté colocado. También podemos mover la cámara empleando diferentes vistas para conseguir el punto de vista adecuando. Al principio del siguiente video se posiciona la cámara cómo se ha realizado hasta ahora, mediante rotaciones y desplazamientos
Video: 00:00 - 00:20. Hecho esto, se añade el Empty (que se escala s
Video: 00:27 - 00:30 únicamente para facilitar su selección) y se crea el track cómo se ha explicado en el párrafo anterior
Video: 00:20 - 00:45. Los posteriores movimientos de cámara y del Empty se ven reflejados en la vista de la cámara. Finalmente, al eliminar la restricción track todo
Video: 01:25, la cámara vuelve al comportamiento inicial.