Volver al inicio

Optimización de Iluminación en Unity: Lightmaps y Shaders

El artículo cubre métodos prácticos de optimización de iluminación en Unity Built-in Render Pipeline. Describe técnicas de renderizado híbrido, gestión manual de lightmaps, proyección de iluminación en terreno vía shaders y modificaciones de sombras en cascada para lograr un rendimiento estable.

Cómo Sacar el Máximo Partido a la Iluminación en Unity Sin HDRP
Advertisement 728x90

# Optimización de la iluminación en Unity: Lightmapping, Light Probes y shaders personalizados

Desarrollar proyectos indie con áreas abiertas inevitablemente tropieza con limitaciones de renderizado. Aunque la industria está migrando activamente a HDRP y ray tracing por hardware, el Built-in Render Pipeline (Built-in RP) de Unity sigue siendo una herramienta viable para equipos que priorizan un rendimiento predecible y control total sobre el pipeline. La clave para una tasa de frames estable sin compromisos visuales radica en separar correctamente la iluminación estática y dinámica, así como en la optimización dirigida de las draw calls.

Enfoque híbrido: Lightmaps vs Light Probes

La iluminación eficiente de la escena se basa en una clara separación de la geometría por prioridades. La arquitectura grande, los paisajes y los props estáticos se renderizan mediante lightmaps horneados. Para este proceso, lightmappers de terceros como Bakery son óptimos, ya que proporcionan un prehorneado rápido de Global Illumination y un manejo adecuado de las reflexiones sin sobrecargar el editor.

Hornear objetos pequeños con topología compleja es impráctico: genera fragmentación en los atlas y aumenta el uso de memoria de vídeo. En su lugar, se utiliza el sistema de Light Probes. Las sondas interpolan la iluminación ambiental, transmitiendo reflexiones de color y sombreado básico a mallas dinámicas o estáticas pequeñas. Para optimizar el batching de props idénticos en la misma zona, puedes asignar forzosamente las coordenadas de la misma sonda. Esto reduce el número de estados de renderizado únicos y alivia la carga de la CPU durante la preparación del frame.

Google AdInline article slot

Un aspecto importante del renderizado híbrido es excluir la geometría lejana de los cálculos de iluminación en tiempo real. La Directional Light y las sombras en cascada se convierten rápidamente en un cuello de botella si el motor intenta calcularlas para objetos en el horizonte. Desactivar la influencia en tiempo real para el fondo lejano y cambiar completamente esas áreas a lightmaps o sondas reduce drásticamente las Draw Calls.

Control manual de la densidad de texel y el culling de fuentes de luz

La generación automática del segundo UV unwrap para lightmaps suele dar resultados subóptimos. El layout manual de UV2 permite distribuir con precisión la Texel Density según la cámara de juego y la importancia. Fachadas de edificios, pasillos y áreas de interacción activa reciben alta densidad de texel, mientras que techos, lados traseros de paredes y zonas inaccesibles se comprimen al mínimo. Esto ahorra espacio en los atlas de luz y evita artefactos de compresión en primer plano.

Para equilibrar calidad y rendimiento en Unity, se usa el modo Distance Shadowmask. A 50–80 metros de la cámara, el motor renderiza sombras dinámicas y superpone GI horneada. Más allá de este radio, solo se renderizan sombras estáticas de lightmaps. La transición es fluida y la carga de la GPU se estabiliza.

Google AdInline article slot

Sin embargo, el Built-in Render Pipeline carece de un mecanismo nativo para el culling por distancia de fuentes puntuales y spotlights. Las lámparas en habitaciones lejanas siguen calculándose, desperdiciando recursos. La solución es un gestor personalizado: el script mantiene un pool de fuentes activas, verifica periódicamente (cada 2–3 segundos) la distancia a la cámara y alterna el estado activado. La verificación asíncrona evita microstutters y asegura que solo las fuentes visualmente relevantes estén activas en el frame.

Proyección de iluminación de terreno mediante shader personalizado

La decoración de terreno (montones de nieve, rocas, vegetación) plantea un problema serio para el lightmapping estándar. Hornear cada objeto pequeño toma demasiado tiempo, y usar Light Probes para miles de instancias genera draw calls extra y rompe el batching estático.

Una solución efectiva es escribir un shader que proyecte el lightmap del terreno sobre la geometría superpuesta de arriba hacia abajo. El lightmap debe contener solo datos del paisaje. El shader lee las coordenadas mundiales de los vértices de la decoración, las transforma al espacio UV del terreno y muestrea el texel correspondiente de la luz horneada. El resultado simula oclusión ambiental e iluminación básica sin dependencia de sondas.

Google AdInline article slot

Además, se integra vertex blending en el shader. Cuando la parte inferior de la malla contacta la superficie del terreno, albedo, normales y máscaras de rugosidad se mezclan suavemente. Esto elimina costuras duras, crea efectos de acumulación de nieve en las bases de los objetos y fusiona visualmente props dispersos con el paisaje en una geometría unificada. El método elimina completamente las costuras de intersección y funciona mucho más rápido que post-procesado o sistemas complejos de blending voxel.

Modificación de sombras en cascada y desenfoque programático

Las sombras estándar de Directional Light en Unity sufren dos extremos: o bien demasiado nítidas y escalonadas, o borrosas con parpadeo notable al reducir la resolución del Shadow Map. En condiciones reales, la suavidad de la sombra depende de la distancia al oclusor y del tamaño angular de la fuente de luz. La sombra en la base del objeto siempre es nítida, pero el penumbra se expande con la distancia.

Para simular un comportamiento físicamente correcto sin pipelines pesados, se aplica un algoritmo de contact shadowing con desenfoque progresivo de cascadas. Soluciones de terceros modifican el pipeline de sombras estándar, añadiendo filtrado basado en profundidad y distancia a la cámara. Esto mantiene alta resolución de Shadow Map para zonas cercanas y desenfoca suavemente las cascadas lejanas, eliminando aliasing y reduciendo demandas de fill rate. A diferencia de los integrados en HDRP, esto evita cálculos de ray tracing o post-efectos pesados, asegurando compatibilidad con hardware de gama media.

Puntos clave

• El renderizado híbrido requiere una clara separación de geometría: lightmaps para estáticos grandes, Light Probes para decoración pequeña y objetos dinámicos.

• La sintonización manual de UV2 y Texel Density ahorra memoria de vídeo y potencia el detalle de iluminación en zonas críticas de juego.

• Los shaders de proyección de lightmap de terreno eliminan la necesidad de sondas para miles de objetos pequeños, reduciendo Draw Calls y mejorando el batching.

• El culling por distancia de point lights mediante pool manager compensa la falta de funciones nativas en Built-in RP.

• El desenfoque progresivo de sombras en cascada por distancia resuelve aliasing y parpadeo sin impactos en el rendimiento.

— Editorial Team

Advertisement 728x90

Leer después