Tutorial 08: Iluminación GI

3dsmax_gibCuando hablamos de una escena con iluminación tipo GI (Global Ilumination) lo que en realidad tenemos es Iluminación Indirecta, esto es, el rebote de la luz entre las diferentes superficies y por consiguiente la mezcla de colores entre ambas. Este efecto es un tanto difícil de conseguir mediante la iluminación de tipo tradicional (comparándolo con los nuevos métodos de GI) ya que debemos colocar luces de tipo Spotlight en las zonas donde queremos que se produzca el rebote de luz. También se puede crear un “domo” de luces que genere toda la GI, y para aumentar el realismo podemos atenuarlas. Si todo lo anterior resulta demasiado difícil, podemos utilizar una luz de tipo Skylight y renderizar la escena con el plugin light tracer, eso sí a costa de tiempo de render.

Con la aparición de una gran cantidad de avanzados motores de render hablar de Iluminación Global ya dejó de ser un tema difícil, incluso en algunos motores de render (como Mental Ray) sólo basta colocar una luz de tipo Spot light, luego activar la iluminación global (GI) y obtenemos una escena realística, pero este tipo de iluminación tiene un precio caro y ese es el tiempo.

Ahora sólo nos asalta una duda, ¿Cómo en años pasados los animadores 3D generaban GI? Ya que no existía la cantidad de motores de render que hay ahora y su precio estaba fuera del alcance de cualquier bolsillo. La respuesta a este dilema es “pintar con luces”.

Ahora bien, la decisión de usar la GI automática o configurar un sistema propio de luces dependerá de cada uno, debemos poner en una balanza las ventajas y desventajas de cada sistema, tal vez en una escena sea mucho más rápido configurar un sistema de GI personalizado que uno automático o puede que no. Sin embargo configurar un sistema personalizado de luces tiene grandes ventajas ya que se tiene un control absoluto sobre la iluminación de la escena y puede brindar los mismos resultados y en un menor tiempo de configuración que en los sistemas GI automáticos.

Los sistemas de GI básicos que podremos usar en 3DSMAX son los siguientes:

1 – Crear un sistema personalizado de luces mediante un “domo” de luces Standard y luego aplicando un sistema llamado Sunlight para la luz solar (usando el motor de render que queramos).

2 – Creando un sistema llamado Sunlight e insertando en la escena una luz llamada Skylight, para luego configurar el GI.

3 – Creando un sistema llamado Daylight y configurando el GI.

Para las alternativas 2 y 3 podremos configurar GI usando lo siguiente:

– Aplicando los plugins Light Tracer (para escenas exteriores) o Radiosity (preferentemente para escenas interiores) en la persiana Advanced Lightning, en el caso que ocupemos el motor de render Default Scanline Render. Además debemos ajustar el control de exposición para mejorar el render. Este sistema funciona mejor con la alternativa 2.

– Configurando y aplicando Final Gather junto con GI en la persiana Indirect Ilumination, en el caso que usemos el motor de render Mental Ray. Además debemos ajustar el control de exposición para mejorar el render. Este sistema funciona mejor con la alternativa 3.

En este tutorial se irán viendo una a una estas 3 alternativas.

1- Creando un sistema personalizado de luces

Para crearlo, lo primero que haremos será colocar una luz de tipo Spotlight en el objeto a iluminar. La idea es que este apunte hacia el objeto y su target esté centrado en el punto de origen:

tut08_02

Ahora copiaremos mediante la herramienta array (Tools >> Array) teniendo en cuanta que el punto de pivote esté en Word y en la posición 0,0. Seleccionamos la luz y procedemos a ejecutar array.

En array nos aparecerá un cuadro donde deberemos colocar los siguientes valores:

Rotate: debemos presionar la flecha de la derecha y colocar el valor 360 en el eje Z, en type of object colocamos instance y en 1D colocamos el valor 10. Podemos ver una vista previa de las copias si presionamos el botón preview:

3dsmax_gi001

Una vez que tengamos nuestras copias, presionamos ok para crearlas.

tut08_03

Ahora hemos creado una serie de 10 luces que apuntan directamente hacia la casa. Ahora procederemos a copiar las luces en la vista left (tomándolas todas y presionando y manteniendo el botón shift) y luego las escalamos. La idea de esto es formar un “domo” de luces que envuelvan la casa, tal como se ve en la imagen:

tut08_04

Realizamos dos o tres copias más y volvemos a escalar para así completar el domo. El mínimo de luces que necesitamos son 50 aunque lo ideal es tener al menos, unas 150 para apreciar mejor el efecto.

Nota: no debemos olvidar que las luces siempre se deben copiar como instance, pues si las realizamos como copia (copy) no podremos modificarlas todas al mismo tiempo.

Si realizamos un render en este paso,  notaremos que la casa está de color banco y por ende la escena se “quema”:

3dsmax_gi002

Lo que debemos hacer ahora es configurar la intensidad de las luces y la atenuación de estas para así lograr el efecto. Seleccionamos una de las luces y procedemos a configurar la intensidad para bajarla (0,05) y lograr la iluminación adecuada de la casa:

3dsmax_gi003

Realizamos un render y el resultado es el de la imagen de arriba. Ahora mejoraremos la iluminación activando en las luces del domo la sombra de tipo shadow map:

3dsmax_gi004

Render realizado con 50 luces con intensidad 0,05 y aplicandoles el tipo de sombra Shadow Map.

Ahora pondremos una luz extra (de tipo direct) que arrojará la sombra general del sol (también podremos colocar el sistema Sunlight). El resultado es el siguiente:

3dsmax_gi005

Ahora procedemos a ocultar las luces del domo y configuramos la luz que proyecta la sombra. Podremos mejorar el resultado aumentando el número de luces en el domo, bajando la intensidad de estas y ajustando la intensidad de la luz que arroja la sombra del sol.

3dsmax_gi005b

Sistema de luces creado en el ejemplo anterior (total: 50 luces).

3dsmax_gi005d

Sistema creado con 150 luces. y una luz direct para el Sol. Abajo: el render resultante de este sistema.

3dsmax_gi005c

Podremos ajustar o mejorar el render mediante el panel Exposure Control donde podremos elegir distintos tipos de control de exposición de cámara. Exposure control se reseñará más abajo.

3dsmax_gi005e

El render anterior ajustado mediante Logarithmic Exposure Control.

2- Creando un sistema automático de luces

En este caso crearemos un sistema automático mediante la luz de tipo Skylight y una luz de tipo directa, o en su reemplazo el sistema Sunlight. Para crearlo, lo primero que haremos será abrir la escena llamada tutorial08.max y allí colocar una luz de tipo Direct (o insertar el sistema Sunlight) ya que esta será la que arroje sombras. Ahora deberemos crear una luz de tipo Skylight que se encuentra en el panel de las luces standard. Bastará colocar sólo una luz, ya que esta representa el “domo” de luces y por ende puede ir en cualquier parte de la escena:

tut08_06

Si realizamos un render el resultado será el siguiente:

3dsmax_gi006Como vemos en la imagen, la iluminación se ve sobreexpuesta ya que para que funcione el GI debemos habilitar el plugin llamado Light Tracer, el cual se encuentra en la persiana Advanced Lightning del cuadro Render Setup.

Al llegar al cuadro Render Setup, en la persiana Advanced Lightning debemos habilitar el plugin Light Tracer. Es importante que esté activada la casilla Active, de otra forma el plugin no funcionará. También cambiaremos el valor de bounces de 0 a 1, esto hará más notorio el rebote de luz y por ello más claro el GI en el momento del render. El resultado es el siguiente:

3dsmax_gi007

El resultado es el de la imagen de arriba. Si el render se demora mucho, podremos reducir la cantidad de Ray/sample (cantidad de rayos) que viene por defecto (250) aunque esto implicará una pérdida de calidad en la imagen:

3dsmax_gi007b

Render realizado con Ray/sample en 50.

3dsmax_gi007c

Render realizado con Ray/sample en 20.

3dsmax_gi007d

Render realizado con Ray/sample en 5.

Por el contrario, si aumentamos la cantidad de rayos ganaremos mayor calidad aunque evidentemente, tendremos un largo tiempo de render:

3dsmax_gi007e

Render realizado con Ray/sample en 500.

Podremos ajustar o mejorar el render mediante el panel Exposure Control donde podremos elegir distintos tipos de control de exposición de cámara. Exposure control se reseñará más abajo.

3dsmax_gi007f

El render anterior ajustado mediante Logarithmic Exposure Control.

2a- Radiosidad o Radiosity

tut08_09

Radiosidad es una forma de iluminación indirecta en la cual la luz es transmitida entre las superficies por la reflexión difusa del color de la superficie. Este tipo de iluminación se obtiene mediante el rebote de la luz entre las superficies. Mientras más rebote haya, mucho más precisa será la solución de radiosidad la cual sólo está limitada por la cantidad de RAM que posea nuestra PC, ya que mientras más RAM tengamos mucho menos se demorarán los cálculos. Una vez calculada la radiosidad esta almacena información de sombreado en cada vértice de los objetos que estén en la escena, esto implica que la calidad de la radiosidad va a depender de la cantidad de vértices que contengan los objetos de la escena. Lo anterior puede considerarse una desventaja ya que mientras más compleja sea una escena, mucho más se va a prolongar el tiempo de cálculo.

Cuando modelamos una escena en la cual vamos a utilizar luces fotométricas debemos tener el cuidado de modelar bien y de hacerlo a escala, ya que un mal modelado podría provocar fugas de luz y las dimensiones erróneas de los objetos causaría que la escena se renderizará sobreexpuesta o con muy baja exposición.

En 3DSMAX hay dos formas de utilizar Radiosidad:

– La primera es utilizar luces fotométricas o de tipo Photometric, las cuales son muy utilizadas en iluminación de interiores para arquitectura. Esta es ideal para iluminar espacios interiores o utilizar GI del motor de render Mental Ray. Estas luces son reseñadas en este tutorial.

– La segunda consiste en utilizar un sistema de iluminación que se llama Daylight, el cual es generalmente usado para iluminación de exteriores. Con este sistema podemos separar los dos componentes de la luz exterior que son sol y cielo (Sun and Sky).

2b- Generando radiosidad para interiores

Este sistema utiliza el motor de Render por defecto de 3DSMAX llamado Default Scanline Render. Este sistema es ideal para configurar espacios interiores ya que Radiosity calculará el rebote de luz según la superficie y la cantidad de malla que posea nuestro modelo. Lo primero que haremos será modelar o definir una escena de interiores, o abrir la escena llamada tutorial08b.max que se incluye al final del artículo. Debemos modelar este espacio en unidades métricas y utilizando medidas reales para hacer más real la iluminación y para que el cálculo de las superficies sea más preciso. en esta escena aplicaremos 4 luces fotométricas (también funciona con luces standard) y luego realizaremos un render para ver la escena. Si colocamos luces fotométricas, cambiamos la distribución a Photometric web. El resultado del render normal es el de abajo:

tut08_14

Ahora debemos configurar la radiosidad para activar la iluminación indirecta o GI. Antes de ello nos conviene ir al panel Exposure Control (imagen de abajo, se encuentra en la misma persiana que environment) el cual nos permite definir el control de exposición de la imagen de forma similar al de una cámara real:

tut08_15

Allí tendremos las diversas opciones de control de exposición y seleccionamos Logarithmic Exposure Control, ya que es la más precisa. Presionando el botón Render Preview podremos ver un pequeño render antes del rendereado definitivo. Además podremos controlar sus parámetros como brillo (Brightness), contraste (Contrast), Tonos medios (Mid Tones) y Escala Física (Physical Scale). Si estamos realizando una escena de exteriores deberemos activar de forma obligada la opción Exterior daylight.

Para calcular la radiosidad nos vamos al cuadro Render Setup, elegimos la opción Advanced Lightning y esta vez elegiremos el plugin Radiosity. Presionaremos el botón Start para iniciar el cálculo de radiosidad y nos aseguramos estar en la vista en la que queramos realizarla:

3dsmax_gi0014

Cuando este termine, notaremos que se habrán formado los polígonos y líneas de vértices de la radiosidad. Ahora simplemente realizamos un render para ver la escena. Si queremos eliminar el cálculo y volver a realizarlo, presionamos el botón Reset All. El resultado al realizar el render es el siguiente:

tut08_16

La principal desventaja del sistema de radiosidad es que se puede ocupar sólo para renders estáticos, puesto que usarlo en animación implicaría calcular la radiosidad de cada cuadro y luego renderizarlo.

2c- Generando radiosidad para exteriores

Al iluminar una escena de exteriores tenemos varias opciones: las clásicas luces estándar o utilizar el sistema de iluminación diurna de 3DSMAX llamado DayLight. La gran ventaja de este sistema es que nos permite simular soluciones bastante precisas de iluminación y además podemos escoger horas, días, meses, años y hasta la zona horaria.

Daylight posee varias opciones: podemos utilizar las luces IES sun y IES sky que son las más precisas a la hora de representar la luz del cielo y la luz solar o utilizar la configuración que trae por defecto en la cual se utiliza una luz direccional mas una luz skylight que es menos precisa pero más rápida a la hora del cálculo.

Si no disponemos de suficiente tiempo para hacer un estudio de sombras y asoleo (que es generalmente para lo que se utiliza este sistema) preciso, podemos utilizar la luz de tipo Sunlight que tiene las mismas opciones de huso horario que Daylight, pero este tipo de luz no hace el cálculo de rebote de luz ya que es una luz de tipo directa, lo cual acelera bastante él render.

Para generar radiosidad exterior lo primero que haremos será modelar o definir una escena de exterior (la escena tutorial08c.max de este tutorial). Debemos modelar este espacio en unidades métricas y utilizando medidas reales para hacer más real la iluminación.

Ahora iremos al panel crear y presionaremos el último ícono llamado Systems (el de los engranajes) el cual es el de sistemas (systems). Al hacerlo nos mostrará varios tipos de sistemas y entre ellos estarán las opciones Sunlight y Daylight. Elegiremos Daylight e insertaremos la luz en la vista top, de tal forma de definir primero la estrella de puntos cardinales y luego la posición de la luz.

Al estar en el motor de Render Default Scanline e insertar el sistema Daylight se nos recomendará asignar como control de exposición a la opción Logarithmic Exposure control y activando la opción Exterior Daylight.

3dsmax_gi0015

Al estar en el motor de Render Mental Ray e insertar el sistema Daylight se nos recomendará asignar como control de exposición a la opción Mr Photographic Exposure control y colocar el Exposure Value (EV) en 15. Esta opción realzará de mejor forma la iluminación exterior que la tradicional Logarithmic (aunque no hay problema de utilizar cualquiera de los dos).

tut08_18b

Notaremos que no podremos mover la luz, en lugar de ello tendremos que definir el huso horario así como el lugar, día y hora. Ahora iremos al panel de motion (la rueda) y una vez allí podremos configurar los parámetros ya que nos aparece el cuadro de la imagen izquierda. Con el botón Get Location podremos elegir el lugar físico donde posicionaremos el objeto (incluso podemos elegir Santiago de Chile) o podremos definir sus parámetros como latitud o longitud.

En la opción Orbital Scale podremos definir la altura en la que está posicionada la luz respecto al suelo. Para nuestro caso elegimos Santiago y movemos el huso horario de tal modo que la luz nos quede como la imagen del lado (28/03 a las 13:00 hrs.). En la opción North Direction podremos mover o girar la brújula para adaptar la posición del Norte a la de nuestro modelo.

Si realizamos un render sin colocar opción alguna en Exposure Control, el resultado es el de la imagen de abajo:

tut08_20

Lo que haremos ahora para mejorarlo, será ir al control de exposición y activar el control de tipo logarithmic. Como esta escena es exterior deberemos marcar también la opción Exterior Daylight. Si tuviéramos una escena exterior pero la vista está desde el interior del edificio, podemos utilizar también la opción Automatic Exposure Control. Ahora nos vamos a la radiosidad (Radiosity) y procedemos a iniciar el cálculo, realizamos un render para ver el resultado final:

tut08_21

Nota: La intensidad de luz en un cielo claro es aproximadamente de unos 90.000 lux

Si seleccionamos la luz de Daylight y vamos al panel modificar, podremos elegir entre alternativas de luz del sol y luz de día además de la luz standard. Tenemos por ejemplo, IES Sun junto con IES Sky. Si los elegimos y realizamos el render este es el resultado:

tut08_21b_iessun_iessky

También podremos elegir MR Sun y MR Sky los cuales producen diferentes resultados según el motor de render que se utilice. MR Sun y MR Sky se utilizan junto al motor de render llamado Mental Ray. Si los elegimos y realizamos un render, el resultado es el siguiente:

tut08_21c_mrsun_mrsky

Si elegimos la opción Mr Sky, el programa nos preguntará si queremos asignar un cielo. Si aceptamos se creará el cielo junto al horizonte respectivo (mapa Mr Physical Sky), el cual se utilizará como base para el render.

Si queremos experimentar con el sistema de Sunlight, es igual que Daylight pero sólo coloca una luz direccional para realizar el estudio de asoleo.

En el caso del sistema Sunlight, podremos modificar la intensidad de la luz y los parámetros de sombras de la misma manera como lo hacemos con cualquier tipo de luz direccional standard. Un render con el sistema Sunlight es similar a la imagen de abajo:

tut08_22

3- Generando GI con Mental Ray

Mental Ray es un motor de render con el cual podemos conseguir simulaciones con base física de los efectos de la luz. Este motor de render acepta varias técnicas de GI como Photon map (mapa de fotones), cáusticas y Trace depth. En Mental Ray podremos usar tanto el sistema de luces Standard como el sistema Daylight (este último es el recomendado) y cualquiera de los dos tipos de control de exposición disponibles: Logarithmic y Mr Photographic.

Si comparamos el motor de render que trae por defecto 3DSMAX (Scanline) con mental ray, nos daremos cuenta de que este motor de render tiene muchas más ventajas como son los efectos cáusticos o la iluminación indirecta a partir de la técnica de photon map, que en el render de Scanline son mucho más difíciles de conseguir. Además Mental Ray trae su propia librería de materiales/mapas y si deseamos utilizar nuestros clásicos materiales lo podremos hacer, además que tenemos a nuestra disposición una persiana con la cual podemos utilizar los shaders de mental ray. Si bien las ventajas de este motor de render son bastante grandes estas tienen un precio y ese es el tiempo de renderizado.

Para utilizar Mental Ray debemos escogerlo en la persiana Common de Render Setup. Allí buscaremos la persiana Assign Renderer. Veremos que en production está la opción por defecto (Scanline Renderer). Presionamos el botón del lado y cuando nos aparezca el cuadro elegiremos Mental Ray Renderer. Con esto cargamos el motor de render y cambiará un poco de aspecto el cuadro de Render Setup.

Para generar el GI, nos iremos al ejemplo de la casa del primer ejercicio (tutorial08.max). Una vez que hemos abierto el archivo, procederemos a cambiar el motor de render a mental ray y dejaremos sólo la luz que hemos utilizado para generar la sombra. El multiplicador de la luz directa lo dejaremos en el valor 2.

En Mental Ray, el GI se logra con una técnica llamada Photon Map que tiene ciertas ventajas sobre la radiosidad, ya que esta técnica de GI no depende de la cantidad de malla y tampoco necesita generar una “solución previa” al render.

Para activarlo iremos a la persiana Indirect Ilumination del cuadro Render Setup, ubicamos la persiana Global Ilumination y activamos la opción Enable, esto activará el GI.

También nos aseguraremos de activar la opción Final Gather que está el principio de la persiana. Con Final Gather activado, mental ray genera un paso más de photon map y con esto se mejora notablemente la iluminación global de la escena. Eso sí, aumenta el tiempo de render. En FG Precision Presets podremos controlar la calidad del render y por defecto está activada la opción Draft, si lo movemos aumentaremos la calidad de la imagen pero el tiempo de render será considerablemente más largo.

En el caso de los valores de GI, si desactivamos Final gather podremos ver y controlar la cantidad de fotones en la escena. Mientras estos estén más juntos, se mezclarán de mejor manera y por ello podremos tener un render más realista. En la imagen de abajo hemos definido la cantidad de fotones por muestra (Maximum Num. Photons per Sample) en 10 y su radio máximo de muestra (Maximun Sampling radius) en 0.1, y vemos que la cantidad de fotones es insuficiente para el render:

tut08_25

Por el contrario, el render de la imagen siguiente tiene 500 fotones y no está activado el radio, por lo tanto es el más adecuado para nuestra escena:

tut08_25b

Render realizado con GI y Final Gather, sin incluir el mapa Physical Sky.

3dsmax_gi0016

Render realizado con Mr Photographic exposure control y valor de EV=15. En este caso se incluye en el fondo el mapa Physical Sky.

Si aplicamos GI mediante Mental Ray en el archivo de las columnas usando el sistema Daylight, los resultados son los siguientes:

3dsmax_gi0017

Render realizado con GI de Mental Ray, con control de Exposición en Mr Photographic, EV de 15 y una imagen de cielo de fondo (Mr Sun y Mr Sky).

3dsmax_gi0017b

Render realizado con GI de Mental Ray, con control de Exposición en Logarithmic, Exterior Daylight activado y una imagen de cielo de fondo (Mr Sun y Mr Sky).

3dsmax_gi0017c

Render realizado con GI de Mental Ray, con control de Exposición en Mr Photographic, EV de 15 y el cielo Mr Physical Sky (Mr Sun y Mr Sky). En este caso se ha aumentado la intensidad de la luz de Daylight a 3.

3b- Generando efectos cáusticos con Mental Ray

El efecto cáustico se produce cuando la luz que se proyecta en los objetos se refleja o refracta a través de otro objeto. Este efecto que es muy común en objetos refractivos como el agua o el vidrio en los cuales se pueden apreciar pequeños destellos en las sombras de los objetos.

En Mental Ray este tipo de efecto es bastante fácil de conseguir ya que sólo debemos asegurarnos que en las propiedades del objeto esté marcada la opción generar cáusticas, después nos asegurarnos de manejar correctamente las luces y las propiedades de la persiana Indirect Illumination.

Para generarlo, crearemos una escena (una tetera y una esfera) que estén sobre un plano. Aplicaremos a ambas un material de tipo Raytrace (copiaremos el color diffuse en Transparency) o crearemos un material que tenga este mapa en el canal de refraction (y Reflection). Ahora crearemos una luz de tipo omni que ilumine ambos objetos y que proyecte sombras de tipo Raytrace. Lo que haremos ahora es ir a las propiedades de cada objeto (seleccionando el objeto y clickeando con el botón secundario para luego seleccionar la opción object properties) y en la persiana mental ray activaremos la opción generate caustics. Esto debemos hacerlo en la tetera y en la esfera, o todos los objetos en los que queremos que se generen las cáusticas. Incluso debemos realizarlo en la luz para que resulte el efecto.

Una vez hecho esto, nos vamos a render Setup y en la persiana Indirect Ilumination buscamos Caustics and Global Ilumination, allí activamos la opción Enable Caustics. Además activaremos Final Gather y Enable GI.

Realizamos un render para ver el resultado final. Si no se ve claramente el efecto, podemos aumentar el valor de multiply de las cáusticas. Si se ven manchones o fotones en la escena, podemos resolver esto aumentando los valores de Fotones cáusticos y de GI en la opción light properties.

Este es el resultado del render final con el efecto de cáusticas, con el multiplicador de ellas en valor 5:


Bibliografía utilizada:

– Tutorial GI Standard y Mental Ray del profesor Sebastián Huenchual H., Carrera Animación Digital 3D, Instituto DGM.

– 3DSMAX User Guide reference.

– Manuales USERS 3DSMAX por Daniel Venditti. Ediciones MP, Buenos Aires, Argentina.

Descargar Tutorial (PDF) y Archivos Base (MAX 2013):

3dsmax_download

image_pdfimage_print

Un comentario en “Tutorial 08: Iluminación GI”

Deja un comentario