Imagen generada con IA
Iluminación horneada en UE5: lightmaps y GPU Lightmass
Diego Cortés
Autor
Tu escena de Unreal Engine 5 se ve espectacular y corre a 20 fps. La solución no es bajar la calidad: es decidir qué luz se hornea y cuál se calcula en vivo. La iluminación horneada y los lightmaps existen exactamente para eso.
Qué es hornear la iluminación en Unreal Engine 5
Hornear es precalcular la luz en el editor y guardarla en el proyecto. Con luces static y stationary, Unreal usa Lightmass para resolver sombras de área e interreflexión difusa y escribe el resultado en texturas aplicadas a la geometría. Terminado el build, esa luz no cuesta nada en ejecución: el gasto pasó a memoria de GPU y disco.
Un lightmap guarda la luz que llega a una superficie, no el color del material, así que no es lo mismo que el horneado de mapas de Blender (normales, oclusión ambiental y empaquetado ORM): aquello es del asset, esto es de la escena.
Cuándo NO tiene sentido hornear
Si la luz cambia, el horneado pierde su sentido: interruptores, ciclo de día y noche o una escena que se reordena obligan a rehacer el build. La documentación lo dice sin rodeos: los mundos abiertos grandes son poco prácticos de hornear, como los entornos con terreno y World Partition.
La movilidad de las luces: la decisión que lo cambia todo
Antes de tocar un ajuste de Lightmass, cada luz necesita una movilidad. Eso define qué se precalcula y qué se paga en cada fotograma.
Static: coste cero en runtime
Una luz static no se mueve ni se puede cambiar en ejecución, y a cambio Lightmass la precalcula entera. Es la de coste más bajo: terminado el build, no vuelve a costar. En un interior fijo, casi toda la iluminación debería ser static.
Stationary: la luz híbrida y el límite de cuatro
Una stationary está pensada para quedarse quieta pero cambiar de brillo y color: la luz indirecta va a los lightmaps y las sombras directas a shadow maps. Usa Distance Field Shadows, así que aguanta resoluciones bajas. El límite a memorizar: solo cuatro luces stationary o menos pueden solaparse sobre la misma geometría.
Movable: dinamismo puro y caro
Es totalmente dinámica y la más costosa: depende de cuántas mallas ilumina y de cuántos triángulos tienen. Un dato que sorprende y ahorra: una luz movable que no proyecta sombra es muy barata, incluso más que una static, porque no hay datos que guardar en disco.
Preparar los UV de lightmap, donde se rompen los bakes
La mayoría de los horneados que salen mal no fallan por Lightmass, fallan por los UV. El lightmap necesita su propio canal de coordenadas, con reglas duras.
Sin solapes y con el padding correcto
Cada cara necesita su propio espacio: si dos comparten el mismo trozo, la luz de una se cuela en la otra. Entre islas debe haber separación para evitar fugas, y el mínimo habitual son cuatro texels porque la compresión DXT trabaja en bloques de 4x4. La rejilla se calcula dividiendo uno entre la resolución objetivo: con 64, el espaciado es 0,016129.
Resolución, canal UV y la vista que lo delata
El Lightmap Coordinate Index indica qué canal UV usa el build. Bajar por debajo de la resolución mínima del UV generado produce costuras y fugas. La vista Lightmap Density colorea por densidad de texel: verde es lo ideal, rojo es exceso y los movable salen marrones porque no necesitan lightmap. Sin Compress Lightmaps, la memoria se cuadruplica.
Hornear en CPU con Lightmass: el flujo clásico
El Importance Volume y el build
Lightmass emite fotones según el tamaño del nivel, así que una escena enorme con geometría de fondo se vuelve lenta sin motivo. El Importance Volume concentra el cálculo donde importa; fuera de él solo hay un rebote de baja calidad. El build se lanza desde el menú Build y al terminar se elige Keep. Los presets van de Preview, rápido, a Production, que se ve increíble y tarda un rato.
Los ajustes que de verdad mueven el resultado
Static Lighting Level Scale trabaja en centímetros: subirlo a 2 o 4 acelera los mundos grandes. Num Indirect Lighting Bounces controla los rebotes, y el primero es el que más aporta. Indirect Lighting Quality sube las muestras, y con calidad alta conviene bajar Smoothness a unos 0,75. Environment Color existe, pero la recomendación oficial es una Static Sky Light. Los Lightmass Portals solo sirven en interiores pequeños.
GPU Lightmass: hornear con la GPU y sus límites reales
Activarlo y qué gana
Es un plugin que está en Edit, Plugins, dentro de Built-In en Editor. Exige Support Hardware Ray Tracing y Virtual Texture Support activados, el Default RHI en DirectX 12 y una GPU con ray tracing. Precalcula lo mismo que Lightmass en CPU en mucho menos tiempo, y con Virtual Texture Lightmaps el resultado se actualiza en el viewport.
Qué NO soporta y cuánta memoria pide
Sigue en Beta y no soporta bake distribuido con Swarm, World Position Offset, Pixel Depth Offset, Stationary Sky Light ni Lighting Channels, ni la oclusión ambiental precalculada ni los Portals. Pide la escena entera en VRAM e ignora los LOD, así que los builds pesados pueden provocar el reinicio de controlador de Windows.
Volumetric Lightmaps: que los personajes reciban la luz horneada
Cómo funciona y qué resuelve
Al construir, Lightmass coloca muestras en una rejilla adaptativa sobre el Importance Volume, más densas junto a la geometría estática. Cada muestra guarda la luz entrante como un armónico esférico de tercer orden, y la interpolación se hace por píxel en la GPU, y en móvil en la CPU. Así un personaje con Control Rig recibe luz indirecta coherente, y la niebla volumétrica queda iluminada por el bake, como la niebla de Blender.
Los dos diales de coste y la cifra honesta
Detail Cell Size impacta fuerte en build y memoria: reducirlo a la mitad puede multiplicar la memoria hasta por ocho. Maximum Brick Memory Mb actúa como techo, y si se queda corto se descartan bricks y la luz del personaje queda imprecisa. Un personaje cuesta unos 0,02 ms de GPU, y en un mapa de referencia el sistema antiguo usaba 5 MB frente a 30 MB.
Desactivar Lumen: cómo se hace y qué se pierde
Lumen no se lleva bien con lo horneado
Con Lumen activado, las contribuciones de luz estática precalculada se desactivan y todos los lightmaps se ocultan. Las luces static tampoco están soportadas, porque su contribución vive entera en los lightmaps. No puedes tener las dos cosas: eliges un camino antes de construir.
Los dos interruptores y la vía intermedia
Allow Static Lighting elimina la iluminación precalculada del proyecto. Los niveles con datos previos no se limpian solos: hay que activar Force No Precomputed Lighting en World Settings, reconstruir la iluminación y guardar el nivel. Existe una vía intermedia poco usada: Lumen Reflections funciona sin la iluminación global de Lumen, para proyectos con luz estática que quieren mejores reflejos que las Reflection Captures.
Iluminación horneada o dinámica: la decisión en una tabla
El camino precalculado es para luz que no cambia: el coste se mide en memoria de lightmaps, la calidad la fija la resolución del lightmap, requiere UV propios y va especialmente bien en móvil. El dinámico es para luz que cambia: el coste se paga en tiempo real y los mundos abiertos grandes son poco prácticos de hornear.
No es excluyente. Se puede hornear el entorno y dejar las luces de gameplay dinámicas, y esa escena híbrida es el caso más común en producción.
Checklist: un bake que no da problemas
Decide si el proyecto va a móvil o si la escena es fija, y elige la iluminación global. Asigna la movilidad a cada luz. Genera los UV de lightmap y fija resoluciones. Coloca el Importance Volume y los Portals si es un interior. Construye en CPU o con GPU Lightmass. Revisa la vista Lighting Only y la coloración de errores. Y verifica que los objetos en movimiento reciben bien la luz de los Volumetric Lightmaps.
Conclusión
Hornear la iluminación cambia libertad por rendimiento: pierdes la capacidad de cambiar la luz en ejecución y ganas memoria y tiempo de build. En una escena de luz fija es una de las optimizaciones más redondas, y en móvil suele ser directamente la respuesta.
En la plataforma tienes tutoriales en video sobre iluminación y rendimiento en Unreal Engine 5, ordenados y sin distracciones. Puedes empezar por la categoría de Unreal Engine o entrar directo al video sobre desactivar Lumen y bakear la iluminación.