Iluminación: Global Illumination (GI) mediante Scanline Renderer, parte 2 (sistema automático)

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.

Este apunte utiliza un archivo de base, el cual puede ser descargado desde el siguiente vínculo (en formato MAX 2021):

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.

Creando un sistema automático de luces con Scanline Renderer

Este sistema es una versión más moderna del sistema anterior ya que, en lugar de generar un domo con luces de tipo Spotlight, este se emula mediante una luz especial llamada Skylight, la cual es literalmente la “luz del cielo”. Esta luz se encuentra en las luces Standard y funciona con el motor de render Scanline Renderer. Skylight en realidad es una emulación de las luces del domo pero a diferencia de este, posee parámetros mucho más avanzados y por ello, los renders se generan de manera más realista. Sin embargo, para que esto último funcione de manera correcta deberemos activar el plugin llamado Light tracer. Podemos realizar esto en Render Setup (F10) y luego yendo a la persiana llamada Advanced Lightning.

Sin embargo, antes de activar Light Tracer crearemos el sistema y realizaremos un render sin este plugin para apreciar las diferencias. Volvemos a utilizar el archivo base y esta vez crearemos el sistema automático mediante la luz de tipo Skylight y el sistema Sunlight para simular la luz del Sol. En la vista Top y manteniendo el sistema Sunlight, borramos el domo de luces completo y en su lugar insertaremos la luz Skylight.

Es importante destacar que en este caso bastará con colocar sólo una luz, ya que como sabemos esta representa el “domo” de luces y por ende, Skylight puede ir en cualquier parte de la escena:

Desactivamos los controles de exposición, nos vamos a la vista de cámara de la escena y presionamos F9 para realizar un render. El resultado será el de la imagen siguiente:

Como vemos en el render, la escena no muestra los rebotes de luz ya que la iluminación se ve sobreexpuesta y con colores “planos”, puesto que para que funcione el GI debemos habilitar el plugin Light Tracer. Es importante que esté activada la casilla Active del lado del nombre del plugin ya que de otra forma este no funcionará. También cambiaremos el valor de bounces de 0 a 1, ya que esto hará más notorio el rebote de luz y por ello, el GI estará más claro en el momento del render.

El resultado del renderizado es el siguiente:

Render de la escena con Bounces en 0.

Render de la escena con Bounces en 1.

Otros parámetros propios e importantes del plugin Light Tracer son la intensidad de la luz (Global Multiplier), intensidad de la luz de cielo (Sky Lights), la abertura del cono (Cone Angle) y la cantidad de rayos o Ray/Sample. Este último es importante porque nos indica la cantidad de “luces” que tenemos en la escena. Si el render se demora mucho tiempo, podremos reducir la cantidad de Ray/sample aunque esto implicará una pérdida de calidad en la imagen. 

Render realizado con Ray/sample en 150.

Render realizado con Ray/sample en 50.

Render realizado con Ray/sample en 5.

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

Render realizado con Ray/sample en 500.

Al igual que en el caso del domo de luces y en general de cualquier motor de render, podremos ajustar o mejorar el renderizado de una escena ajustando el control de exposición mediante el panel Exposure Control, donde podremos elegir distintos tipos de control de exposición de cámara.

Render ajustado mediante Logarithmic Exposure Control.

Render ajustado mediante Automatic Exposure Control.

Sistema Daylight

Una alternativa a utilizar para generar GI de manera automática es reemplazar Sunlight y Skylight por un sistema único llamado Daylight, el cual mezcla ambas luces en una sola. Esta luz se encuentra en Systems, donde mismo se ubica Sunlight:

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 por primera vez, debemos asignar como control de exposición a la opción Logarithmic Exposure control y activando la opción Exterior Daylight para que la luz funcione de forma correcta. Mediante el sistema Daylight podemos separar los dos componentes de la luz exterior que son Sol y Cielo (Sun and Sky), e incluso podremos editar el tipo de iluminación para el Sol o el cielo mismo si editamos el sistema en el panel de modificación. Si seleccionamos la luz Daylight y vamos al panel de modificación, podremos elegir entre las siguientes alternativas de luces Sunlight y Skylight:

  • Standard y Skylight.

  • IES Sun e IES Sky.

Estas opciones pueden mezclarse para lograr en el render final diferentes efectos. Cabe destacar que IES Sun y IES Sky son las más precisas a la hora de representar la luz del cielo y la luz solar pero implicará mayor tiempo de render. La configuración por defecto Standard y Skylight es menos precisa pero a la vez es la más rápida a la hora del cálculo. Insertaremos Daylight en la escena de igual manera que lo hicimos con Sunlight:

Notaremos que al igual que en el caso de Sunlight no podremos mover la luz, ya que en lugar de ello tendremos que definir el huso horario así como el lugar, día y hora. Los parámetros de Daylight son los mismos que los de Sunlight y por ello, podremos definir aspectos principales del huso horario como la latitud, longitud, el lugar físico, Orbital Scale y North direction.

Aplicación del sistema Daylight y render resultante. En este caso, se ha ajustado mediante Logarithmic Exposure Control.

Tip: para tomar como referencia, la intensidad de luz en un cielo claro es aproximadamente de unos 90.000 lux.

Radiosidad o Radiosity

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 y por ello, mientras más rebote haya, mucho más precisa será la solución de radiosidad. Esta 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 la información de sombreado en cada vértice de los objetos que estén en la escena y por lo mismo, su calidad 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 de esta.

Como norma general, 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 real, 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 renderizara sobreexpuesta o con muy baja exposición. Radiosity es un plugin que está disponible en el motor de render Scanline Renderer, y este nos permitirá realizar el cálculo de GI en escenas interiores de manera precisa. Podemos efectuar el cálculo usando luces Standard o Fotométricas, pero para este sistema lo más recomendable es utilizar luces fotométricas o de tipo Photometric (reseñadas en su apunte respectivo), las cuales son muy utilizadas en iluminación de interiores para arquitectura. Radiosity 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.

Para generar la radiosidad mediante Scanline Renderer, abriremos el archivo base alusivo y a este le aplicaremos algunas luces para iluminar la escena. Al abrirlo, se nos mostrará la siguiente escena:

Este espacio interno está modelado en unidades métricas y utiliza medidas reales para hacer más real la iluminación, justamente para que el cálculo de las superficies sea más preciso. En esta escena aplicaremos 3 luces de tipo fotométrico: una de tipo Uniform Sphere en la lámpara colgante y dos instacias Spotlight en las lámparas de piso. Ajustamos sus candelas en 300 y 80 respectivamente y luego realizaremos un render para ver la escena. El render normal debe ser similar al de la imagen siguiente:

Notaremos que el renderizado no posee el rebote de luz aunque las luces se aplican de forma correcta. Para generar el rebote de luz respectivo, debemos configurar la radiosidad. Antes de ello, nos conviene ir al 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.

Ahora calcularemos la radiosidad de la escena. Para calcularla, nos vamos al cuadro Render Setup (F10), elegimos la opción Advanced Lightning y esta vez elegiremos el plugin Radiosity.

Una vez cargado el plugin, presionaremos el botón Start para iniciar el cálculo de radiosidad y nos aseguramos estar en la vista de cámara de nuestro espacio:

Cuando este termine, notaremos que se habrán formado los polígonos y líneas de vértices de la radiosidad en toda la escena. Si queremos eliminar el cálculo y volver a realizarlo, presionamos el botón Reset All. Si realizamos algún cambio que implique materiales o modelado de objetos, debemos rehacer el cálculo de radiosidad y para ello se nos mostrará el botón Update & Start.

Ahora simplemente realizamos un render para ver la escena. El resultado al realizar el render es el siguiente:

Render realizado con Physical Camera Exposure Control.

Render realizado con Logarithmic Exposure Control.

Como corolario final podemos decir que si bien esta solución es relativamente rápida y aceptable como GI, la principal desventaja del sistema de Radiosidad es que se puede ocupar sólo para renders de tipo estático, puesto que usarlo en animación implicaría calcular la radiosidad de cada cuadro y luego renderizarlo, lo cual tomaría demasiado tiempo y lo haría inviable.

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.

 

Deje un comentario en este artículo