Iluminación Lumen vs normal

Empecé a hacer mi sala de pruebas con algunas habitaciones y luces.

Primero hice un blueprint que tenga una luz funcional y quiero activarla o apagarla cuando lo necesite, tal vez presionando un botón o desde un evento. Para lograrlo, coloco una malla de cubo simple que sostiene toda la estructura y una malla de esfera con un material brillante especial que representará la bombilla. Luego coloco un cono de luz unido a la esfera para hacer la iluminación que quiero.

Lumen vs iluminación normal

Sé que esta no es la malla más optima, pero es solo con fines de prueba. A partir de aquí haré un blueprint principal para hacer unos blueprints hijos que hereden las propiedades principales y con algunas opciones y mallas específicas.

Para evitar algunos cambios de iluminación con la exposición automática, configuré un "Post Process Volume" con esto:

  • Lens -> Exposure -> Metering Mode = Manual
  • Lens -> Exposure -> Exposure compensation = 1

Luego modifiqué el Blueprint de la luz para configurarla con un estado encendido y apagado. No quiero centrarme en esto por ahora porque incluye lógica en la que cambio el material de la luz para que deje de brillar cuando está apagada.

El resultado es algo como esto:

Lumen vs iluminación normal

Bastante bien y con la nueva versión de Unreal 5.1 se ve mejor ya que se mejora la calidad de iluminación. Pero tiene un problema: si apago esto, la luz hace un efecto de desvanecimiento porque Lumen está procesando el cambio de luz lentamente.

Lumen vs iluminación normal

Esto es por motivos de rendimiento porque un cambio rápido de luz Lumen exige una potencia de GPU alta y no se ajusta a mis necesidades porque quiero un cambio de luz instantáneo con menos demanda de potencia de GPU. Hice una prueba cambiando Lumen a iluminación normal.

Lumen vs iluminación normal

¿Ves el problema? Sin Lumen perdí la luz ambiental que se calcula a partir de la iluminación indirecta, por lo que debo hacerlo manualmente. Este es el resultado con luz indirecta:

Lumen vs iluminación normal

No es tan bueno como con Lumen pero es suficiente por ahora. Y cuando apago la luz el resultado es inmediato:

Lumen frente a iluminación normal

Entonces necesito hacer la iluminación manualmente. Para ayudarme a lograrlo hice un nuevo Blueprint llamado BP_SceneConfig donde aplicaré algunas configuraciones variables, tal vez desde una futura pantalla de configuración necesitaré cambiar algunas cosas como el rendimiento de la iluminación. En este Blueprint agregué una opción para activar o no Lumen para ayudarme a comparar escenas con y sin Lumen e intentar obtener una iluminación similar manualmente.

Este Blueprint obtiene el "Post Process Volume" y lo configura:

Lumen vs iluminación normal

Luego, los Event Dispatchers lanzan el evento LumenOn y LumenOff para informar a todos los objetos que tienen que cambiar algo para adaptarse a la nueva configuración, por ejemplo activar o no mi iluminación indirecta manual.

Tal vez podría ser útil cambiar esta configuración dinámicamente dependiendo de la habitación, ya que un ambiente externo o una habitación con luz fija funcionará mejor con Lumen.