Cómo crear entornos atmosféricos con un presupuesto

La publicación de hoy es de Alfonso Caparrini, cofundador y desarrollador en Lapsus Games. El 28 de agosto, Lapsus lanzó su juego debut, NODE: El Último Favor de los Antarii, una aventura de rompecabezas 2.5D única con una iluminación en el juego absolutamente impresionante. Aprende cómo Alfonso, un artista CG profesional durante el día, aborda la iluminación en HDRP para crear los NODE's} densos entornos atmosféricos en Unity.
Como artista de iluminación en la industria de la animación, estoy acostumbrado a no tener prácticamente límites en lo que puedo agregar a una escena para obtener el aspecto que quiero. ¿Y si algo no funciona? Lo arreglo en la composición. Pero para obtener un solo fotograma de esa tubería, puede llevar decenas o incluso cientos de horas de tiempo de renderizado.
Cuando comencé a desarrollar NODE: El Último Favor de los Antarii en Unity, tuve que cambiar mi enfoque para obtener los resultados cinematográficos y atmosféricos a los que estaba acostumbrado, pero tenía que funcionar a 60 fotogramas por segundo en lugar de 60 horas por fotograma.
No hace falta decir que introducir iluminación volumétrica nunca es barato, pero aquí hay algunas de las herramientas y técnicas que desarrollé para iluminar NODE de una manera que se siente rica y cinematográfica, mientras se mantiene lo suficientemente simple para funcionar de manera eficiente en tiempo real.
El punto de partida habitual: Solo una luz clave
Aquí es donde todos comienzan: Lanzas una sola luz clave y esperas que la Iluminación Global (GI) llene mágicamente el resto.

Horneas la escena y luego te das cuenta de que la GI ayuda, pero no es suficiente para obtener la atmósfera, profundidad o estado de ánimo que imaginas, ni te da el control necesario sobre la paleta para crear lo que tenías en mente.

Volumétricos: Añadiendo profundidad
Dado que queremos un entorno atmosférico, comencemos habilitando la niebla volumétrica. Instantáneamente añade atmósfera, profundidad y direccionalidad. El entorno comienza a sentirse como si tuviera aire en él.
¡Aún no es suficiente, sin embargo!

Este es el punto donde puedes empezar a volverte loco tratando de añadir luces por todas partes – luces gigantes, luces sin sombras, etc. – para llenar todos los espacios que la luz o la GI cubren. Pero acumular todas esas ideas, más probablemente que no, terminará haciendo que la escena se sienta más plana debido a la pérdida de volumen y dimensionalidad – o funcionando mucho más lentamente.
Mi objetivo para NODE era crear la sensación de un entorno denso y atmosférico, con luz rebotando y dispersándose en el aire mismo, sin afectar completamente el rendimiento. Con ese fin, desarrollé esta solución alternativa.
Fingiendo la dispersión de la luz en el aire usando volúmenes geométricos
Para realizar mis objetivos de iluminación para NODE, construí un shader muy simple sin iluminación que crea un suave degradado con colores HDR. Agregué controles para el punto medio, la caída y un multiplicador de emisión. Uso este shader en geometrías básicas como esferas, cápsulas, cajas o mallas personalizadas, colocadas en áreas donde quería simular la luz llenando el aire. Estos volúmenes no son físicamente precisos, pero se sienten bien.

En este caso particular, aunque poco realista, elegí un color complementario frío para contrastar con la calidez de la luz principal, creando lo que creo que es una paleta más rica. Puedes superponer tantos como necesites e incluso apilarlos con diferentes intensidades para controlar mejor cómo se desvanece.

El resultado es que la escena comienza a sentirse como si estuviera rebotando en el aire mismo, llenando esos espacios, y tengo control total sobre el tono y la intensidad.

En el resultado y su correspondiente lightmap, puedes ver cómo esto ha creado un gradiente en la escena, originándose en el área donde el haz de la luz clave está añadiendo mucha profundidad y volumen a la escena.


Niebla, cielo degradado y mapeo de tonos
A continuación, complementé la escena con niebla tradicional - solo lo suficiente para añadir profundidad a la escena según sus dimensiones. Ajusté el brillo y el color usando un Cielo Degradado, que me permite unificar la paleta de colores y establecer el tono general para el entorno.
Para unir todo esto, utilicé el mapeo de tonos ACES. Sin entrar en demasiados detalles, esto le da al fotograma final una sensación más "cinematográfica".

Transiciones suaves entre atmósferas
Esta combinación de niebla y luz volumétrica, coloreada con un Cielo Gradiente, y el uso de volúmenes geométricos que emulan la dispersión de la luz atmosférica, también permitió transiciones suaves y atmósferas únicas. Puedo controlar la longitud y los puntos de transición ajustando las rampas en los gradientes del shader sin iluminación que creé, junto con la mezcla de volúmenes de Unity para transitar entre diferentes configuraciones de cielo y niebla.
Esto también me ayudó a evitar el uso de grandes cantidades de luces y mantuvo los tiempos de horneado de luz muy bajos. ¡Estoy orgulloso de poder decir que el tiempo total de horneado para las 150 escenas diferentes en NODO es de menos de 1 hora!

Resolviendo iluminación compleja con una sola malla
En esta sección, compartiré algunos ejemplos de cómo esta técnica simple puede ayudarte a resolver problemas de iluminación complejos con facilidad.
En este pozo de ascensor, necesitaba transitar de los tonos verdes del subsuelo a los azules de la azotea. Con solo una caja, creé la base cromática para ayudarme a hacer esa transición, y sin costo adicional de rendimiento.

En espacios más reducidos, como esta sala de control, pude crear dos ambientes diferentes entre los monitores y el centro de la escena, lo que me dio todo el envolvimiento de luz que necesitaba.


Reflexiones finales
Iluminación NODO: El Último Favor de los Antarii se trataba de abrazar las limitaciones y convertirlas en oportunidades creativas. Viniendo del mundo de la animación, tuve que repensar mucho de lo que sabía: Cómo engañar sin composición, cómo guiar la vista sin lanzar más luces al problema, y cómo hacer que una escena se sienta rica sin romper el rendimiento.
Espero que algunos de estos trucos te den ideas para tu propio proyecto, o al menos sirvan como un recordatorio de que siempre hay una manera de sortear el primer enfoque intuitivo. ¡Gracias por leer!
NODO: El Último Favor de los Antarii ya está disponible en PC y consolas – añade el juego a tu lista de deseos aquí. Sigue más juegos Hechos con Unity en nuestra página de Curador de Steam, y descubre más historias de desarrolladores de Unity en nuestra página de Recursos.
