Iluminación: Global Illumination (GI) mediante Scanline Renderer, parte 1 (sistema manual)

Cuando hablamos de una escena con iluminación tipo “GI” o Global Ilumination, lo que en realidad tenemos es Iluminación Indirecta. Esta se define como el rebote de la luz entre las diferentes superficies y por consiguiente, la mezcla de colores entre ambas. Sin embargo, este efecto es un tanto difícil de conseguir mediante la iluminación de tipo tradicional mediante Scanline Renderer (si lo comparamos con los nuevos métodos de GI) ya que, si queremos realizar el efecto de manera “rústica” o tradicional, debemos colocar luces de tipo Spotlight en las zonas donde queremos que se produzca el rebote de luz. También podemos crear un “domo” de luces que genere toda la GI, y para aumentar el realismo podemos atenuarlas mediante los ya estudiados parámetros de Attenuation de cada luz. Si todo lo anterior resulta demasiado difícil, podemos conseguirlo utilizando una luz de tipo Skylight y renderizar la escena con el plugin Light Tracer activado. Eso sí, a costa de tiempo de render.

Con la aparición de una gran cantidad de avanzados motores de render como Mental Ray, V-Ray, Art Render o Arnold, hablar de Iluminación Global o GI dejó de ser un tema difícil ya que, en algunos motores de render como Mental Ray, sólo nos bastará colocar una luz de tipo Spotlight, luego activar la iluminación global (GI) y con esto obtendremos una escena realista. Sin embargo, este tipo de iluminación tiene un precio caro, y ese es obviamente el tiempo de renderizado.

Una vez aclarados estos conceptos previos sólo nos asalta una duda, ¿Cómo en años pasados los animadores 3D generaban el GI? Ya que como sabemos, hace varios años atrás no existía la cantidad de motores de render que hay ahora, y los existentes en aquella época tenían un precio que estaba fuera del alcance de cualquier bolsillo. La respuesta a este dilema es simplemente: “pintar con luces”. Ahora bien, la decisión de usar la GI automática o configurar un sistema propio de luces dependerá del gusto de cada animador o renderista, y por ello debemos poner en una balanza las ventajas y desventajas de cada sistema ya que, por ejemplo, en una escena compleja tal vez sea mucho más rápido configurar un sistema de GI personalizado que uno automático, o también 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 y de renderizado que en los sistemas de GI automáticos.

Para desarrollar los temas de este apunte, puede descargar el archivo base realizando clic en el siguiente enlace: descargar archivo base.

Sistemas de creación de GI en 3DSMAX

Si bien el GI se aplica en escenas exteriores e interiores, dependiendo del tipo de escena debemos realizar ciertos pasos o activar plugins específicos para interior o exterior, según el motor de render que elijamos. Por lo general, cada motor de render dispone de su propio método o función para generar la iluminación indirecta y por ello, existen muchas formas de generar GI. Sin embargo, los sistemas de GI básicos que podremos usar en 3DSMAX son los siguientes:

Para escenas exteriores:

  1. Domo Personalizado de luces: es el sistema más antiguo de todos. Se trata de crear un sistema personalizado de luces Spotlight formando un “domo” alrededor del objeto, y luego se aplica una luz directa o un sistema llamado Sunlight para simular la luz solar. Se renderiza preferentemente mediante el motor Scanline Renderer.
  2. GI mediante Scanline Renderer: es una alternativa al anterior ya que, en lugar del domo, se inserta en la escena un sistema llamado Sunlight para simular la luz solar y luego se agrega una luz especial llamada Skylight. También podremos insertar un sistema llamado Daylight en lugar de las dos luces anteriores. Si usamos este sistema, se debe activar el plugin Light Tracer. Este se encuentra en la persiana Advanced Lightning de Render Setup (F10). También debemos ajustar Exposure Control para mejorar el control de exposición de la imagen, el cual se encuentra en Rendering >> Exposure Control.

Para escenas interiores:

  1. Radiosidad mediante Scanline Renderer: este sistema se utiliza preferentemente para escenas interiores, y depende de la geometría de los objetos para lograr un buen resultado. Para que este sistema funcione, se debe activar el plugin Radiosity, el cual se encuentra en la persiana Advanced Lightning de Render Setup (F10). También debemos ajustar Exposure Control para mejorar el control de exposición de la imagen, el cual se encuentra en Rendering >> Exposure Control.

Para escenas exteriores e interiores:

  1. GI mediante Mental Ray: se inserta el sistema llamado Daylight y se configura el GI en las opciones del motor de render. En este caso, debemos configurar y aplicar Final Gather junto con GI desde la persiana Indirect Ilumination. También debemos ajustar Exposure Control para mejorar el control de exposición de la imagen, el cual se encuentra en Rendering >> Exposure Control. Este puede ser visualizado en su apunte respectivo.
  2. GI mediante Art Renderer/Arnold: se configura de manera automática al renderizar la escena. Sin embargo, para iluminar escenas exteriores se debe insertar una luz llamada Sun Positioner. Podemos aprender más sobre este motor de render y su GI en su apunte respectivo.

En este apunte veremos toda la iluminación GI mediante Scanline Renderer (Domo de luces, sistema Skylight y Radiosity) y aplicaremos todos los sistemas de este motor de render en dos archivos base, junto con configurar los diferentes parámetros de estos. Para ello, abrimos el primer archivo base y lo que debemos ver en 3DSMAX es lo siguiente:

Como vemos, el archivo es una vivienda de 2 pisos a la cual se le han aplicado materiales de tipo Physical y que se encuentran por defecto en 3DSMAX. También se le han agregado ventanas y puertas mediante Windows y Doors respectivamente. En este archivo base trabajaremos aplicando los dos sistemas de GI para exteriores de Domo y de Skylight respectivamente.

Sistema manual o Domo personalizado de luces

Esta es la solución más antigua para generar la iluminación global y que nos permite crear domos personalizados. Para crear este sistema, lo primero que haremos será ir a la vista Top de nuestro archivo base. Luego, nos vamos al panel de crear y en la categoría Lights, colocaremos una luz de tipo Standard en la escena. Esta será una luz de tipo Target Spot, ya que la idea idea es que esta apunte hacia la vivienda y su target esté centrado en el punto de origen (0,0,0). Nos aseguramos también que los valores de Hotspot y Falloff estén en alrededor de 60 y 62 respectivamente. Finalmente, podemos configurar la posición del foco de la luz en (1500,0,400) tal como se aprecia en las imágenes:

 Ahora copiaremos la luz Spot mediante la herramienta Array, la cual se encuentra en Tools >> Array. Es importante que al copiar la luz, solamente seleccionemos el foco de esta ya que para que el domo funcione, los targets de todas las copias deben estar siempre en la misma posición. Previamente, cambiaremos el punto de coordenadas (Reference Coordinate System) a World:

Y finalmente cambiaremos Use Pivot Point CenterUse Transform Coordinate Center:

Con esto realizado estableceremos el target como pivote para la copia en (0,0,0) y ya podremos realizar la primera parte del domo. Al ir a Array nos aparecerá un cuadro donde deberemos colocar los siguientes valores: en 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 14. Podemos ver una vista previa de las copias si presionamos el botón Preview:

Una vez que tengamos nuestras copias, presionamos OK para crearlas. Es muy importante mencionar que las copias sean de tipo Instance, ya que esto nos permitirá tener el control de todas las luces al mismo tiempo al editar los parámetros del domo completo. Con este procedimiento, hemos creado una serie de 14 luces que apuntan directamente hacia la casa:

Ahora, en la vista Front (o Left) procederemos a copiar las luces hacia arriba. Podemos hacerlo tomando todos los focos y luego moviendo respecto al eje Z todo el conjunto, presionando y manteniendo Shift. Como siempre, podremos elegir la cantidad de copias y el tipo de copia, la cual siempre será de tipo Instance.

Una vez copiadas las luces, mantenemos la selección y aplicaremos escala uniforme (Uniform Scale) a todo el conjunto. Por defecto, al escalar las luces estas no disminuirán de tamaño pero sí se irán reduciendo en distancia y altura, ya que la idea de esta operación es ir formando el domo de las luces que iluminará a la casa. Si es necesario, ajustaremos la altura de todas las luces moviéndolas respecto al eje Z.

Repetiremos los procesos anteriores unas 3 o 4 veces más para así completar el juego de luces. La idea de esto es formar un “domo” de luces que envuelvan la casa de una forma similar a un árbol, tal como se ve en la imagen siguiente:

Como norma general, diremos que el mínimo de luces Spot que necesitamos para generar el efecto de GI serán 50, aunque lo ideal es tener al menos unas 150 para apreciarlo mejor.

Tip: 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. Otra cosa fundamental es que los targets siempre deben estar en la misma posición del primero.

Una vez terminado nuestro domo, nos vamos a la cámara del archivo (tecla C) para visualizarlo:

Ahora presionamos F9 realizar un render. Al hacerlo, notaremos que la casa está de color banco y por ende, la escena se “quema” debido al exceso de intensidad de las luces del domo:

Como la cámara insertada en la escena es de tipo Physical, podemos ocupar dos métodos para resolver el problema:

1) Aumentar el valor de EV de la cámara y luego realizar el render: para realizar esto, seleccionamos la cámara y en los parámetros de edición de la cámara iremos a Exposure. En Target, le asignamos el valor 14 en lugar de los 6 que vienen por defecto.

Si no se permite cambiar el valor de EV, debemos presionar previamente el botón Install Exposure Control ya que esto activará el control de exposición de la cámara.

Si realizamos el render, el resultado es el siguiente:

Podemos experimentar con otros valores de EV para aumentar la intensidad o disminuirla y así generar diversos efectos en el render. En este caso, no se deben modificar la intensidad de las luces del domo.

2) Ajustar la intensidad de las luces y la atenuación de las luces del domo: para este método no debemos tener activado ningún control de exposición. Seleccionamos una de las luces y en los parámetros de edición, procedemos a configurar la intensidad de la luz Spot para bajar el valor de Multiplier a 0,02.

Realizamos un render y el resultado es el de la imagen siguiente:

Como vemos en la imagen, en este caso hemos disminuido drásticamente la intensidad de las luces del domo para apreciar el efecto del GI. Podemos también ajustar el parámetro Decay junto con la intensidad para mejorar el efecto, aunque esto implicará varias pruebas de render:

Render anterior pero esta vez con Decay Inverse activado.

En cualquier método que utilicemos, podemos mejorar el domo cambiando el tipo de sombra a Shadow Map para hacerla más difusa, o también ampliando el cono de las luces manipulando los valores de Falloff y Hotspot para lograr un mejor efecto. Igualmente, podremos ajustar intensidades como anteriormente se ha mencionado.

Configuración de las luces antes de realizar el render. En verde se muestran los parámetros modificados.

Render de la configuración anterior.

Sistema Sunlight

Terminaremos el ejercicio pondremos una luz extra de tipo direct que simulará la iluminación general del Sol. si bien podemos colocar una luz directa cualquiera, en este caso lo mejor es que insertemos un sistema que además de la luz misma, posee atributos de huso horario el cual nos permitirá simular la sombra del Sol en distintos lugares de la tierra. Para ello, iremos a Systems del panel de creación y colocaremos en la vista Top el sistema llamado Sunlight:

Sunlight tiene la ventaja de que, además de ser una luz directa y configurable, nos permitirá elegir el día, hora y lugar geográfico para simular de mejor manera la iluminación solar. La colocaremos haciendo clic y presionando el botón del mouse, luego movemos hacia abajo para crear la rosa de los puntos cardinales y soltamos, para finamente mover el cursor hacia abajo para generar la altura de la luz.

En el caso de Sunlight, podremos controlar los parámetros de edición de la luz de la manera tradicional (mediante el panel modificar) pero no podremos moverlo ya que, al ser un sistema de iluminación solar, debemos editar el movimiento de nuestro “Sol” directamente desde el panel de animación:

En este caso encontraremos la persiana llamada Control Parameters. Aquí podremos cambiar el día, hora, mes y año además de la zona horaria o Time Zone. Sin embargo, un aspecto interesante de este sistema (y que también posee el sistema Daylight) es que podremos elegir el lugar geográfico para generar la posición del Sol de manera realista respecto de la escena si presionamos el botón Get Location, ya que 3DSMAX tiene una base de datos con las ciudades más importantes del mundo. Para el caso de nuestro ejercicio presionamos el botón, elegiremos South America y luego elegiremos Santiago de Chile como lugar geográfico.

Tip: también podremos elegir la ciudad si hacemos clic en el lugar respectivo del mapa.

Con esto, ya tendremos configurado el sistema Sunlight para la vivienda. Sin embargo, notaremos que la luz queda en el “Sur” de 3DSMAX lo que hará que la fachada principal de la vivienda no reciba luz directa, ya que está en el Norte y en Santiago de Chile, esta es la orientación con más luz. Podemos resolver esto simplemente modificando el ángulo de North Direction a 180 y si no nos gusta la altura de la luz, podremos modificarla mediante Orbital Scale dejando el valor en aproximadamente 2500. La opción Orbital Scale nos permite definir la altura en la que está posicionada la luz respecto al suelo, mientras que 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.

Tip: para calzar correctamente el Target y Orbital Scale en la escena, ambos deben tener el mismo valor. El valor del Target se puede modificar en los parámetros generales de la luz directa de Sunlight.

Si queremos elegir una ciudad que no esté en la base de datos, podremos ingresar sus coordenadas en los parámetros Latitude y Longitude los cuales definen Latitud y Longitud respectivamente. Volviendo a nuestro ejercicio, nos aseguramos que la intensidad de la luz de Sunlight sea 1. Finalmente, realizamos un render para ver el resultado:

Render realizado a las 10:00 hrs del mes 6 y día 21 (invierno).

También podemos también asignar un mes, día, hora diferentes para visualizar el efecto de la iluminación solar sobre nuestra escena en el render.

Render realizado a las 10:00 hrs del mes 1 y día 21 (verano).

Demás está decir que si colocamos mayor cantidad de luces en nuestro domo, los ajustes no serán los mismos pero el efecto de GI mejorará sustancialmente debido a la mayor cantidad de rebotes de luz.

Sistema creado con el doble de luces que la configuración anterior.

Render resultante de la configuración.

Cabe destacar que el sistema Sunlight se utiliza preferentemente para realizar estudios de asoleo ya que, al disponer de opciones de huso horario, nos permite calcular la trayectoria de las sombras del Sol de manera precisa aunque también cabe decir que, debido a que es una luz directa, Sunlight no realiza el cálculo de rebote de luz o GI. Podremos ajustar o mejorar el render mediante el panel Exposure Control, ya que este nos permite definir el control de exposición de la imagen de forma similar al de una cámara real:

En este caso tenemos los siguientes tipos de control de Exposición:

  • Automatic Exposure Control.
  • Linear Exposure Control.
  • Logarithmic Exposure Control.
  • Physical Camera Exposure Control.
  • Pseudo Color Exposure Control.

Cada uno tiene sus parámetros de edición respectivos, aunque por defecto aparece Physical Camera Exposure Control. Si instalamos algún otro motor de render, podremos ver su control de exposición Propio. Para el caso de nuestro ejercicio, podemos mantener el Physical Camera o también seleccionar Logarithmic Exposure Control, ya que es la más precisa. Para todos los casos, presionando el botón Render Preview podremos ver una vista previa del render antes del renderizado definitivo. Si ocupamos Logarithmic Exposure Control, 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.

El render anterior, ajustado mediante Logarithmic Exposure Control.

El render anterior, ajustado mediante Automatic Exposure Control.

El render anterior, ajustado mediante Pseudo Color Exposure Control.

En la segunda parte de este apunte, estudiaremos el sistema de GI automático en el motor de render Scanline Renderer. Ir a la segunda parte.

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.

1 thought on “Iluminación: Global Illumination (GI) mediante Scanline Renderer, parte 1 (sistema manual)

  1. Les agradezco esta informacion tan importante para quienes nos gusta resolver problemas de Autocad y 3D Max

Deje un comentario en este artículo