Generando Lightmap UVs

Lightmap UV
¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)

Generar los mapa de la luz (lightmap UV) lleva mucho tiempo y una forma de mitigar esto es usar la herramienta de generación automática de Unreal Engine 4 (UE4) para generar un Lightmap UV a partir de los UV de textura existentes en la importación o mediante el editor de malla estática.  

Advertencias y consideraciones

Por defecto, un Lightmap UV generado automáticamente vuelve a empaquetar los gráficos UV existentes del primer UV de Static Mesh (UV Channel 0 en UE4). 

Este UV se usa comúnmente como la textura UV, por lo que es posible que los gráficos UV no estén diseñados o configurados de la manera más adecuada para un mapa de luz UV, incluso con las herramientas de generación automática en UE4.

Tenga en cuenta lo siguiente al crear un Lightmap UV generado automáticamente.

  • Los Lightmap UV generados requieren una fuente UV existente para volver a empacar y ese proceso es tan bueno como el UV usado, lo que significa que si los gráficos UV no están divididos y distribuidos adecuadamente, no será posible un buen reempaque. Es muy común que nos pase con modelos de Sketchup que tienen un mapeado UV normalmente muy precario.
  • Durante el reempaquetado, UE4 no dividirá los bordes del gráfico UV para crear islas UV separadas. Solo vuelve a empaquetar los gráficos UV existentes del índice UV de origen.
  • Los gráficos UV se normalizan cuando se generan para maximizar la cobertura del espacio UV con gráficos escalados o estirados de forma independiente.

Configuración de opciones de importación

Durante la importación, se generará un Lightmap UV para cualquier malla estática de forma predeterminada cuando Generate Lightmap UVs esté habilitado (tildado). El Lightmap UV se generará a partir del Índice UV 1 de su malla estática (Canal UV 0 en UE4) y se asignará al Índice 1 de coordenadas del mapa de luz.

Al importar un objeto 3d con formato FBX aparecerá esta ventana.

Lightmap UVs Generation Settings

La ventana Static Mesh Editor’s Build Settings contiene configuraciones para generar y reempaquetar UVs de Lightmap. Estas opciones le permiten generar un Lightmap UV sin tener que hacerlo durante la importación o después de la importación si desea refinar el Lightmap UV generado. 

Generar o volver a generar los lightmap en un objeto 3d o Static Mesh

Habilite Generate Lightmap UVs para usar las opciones de generación de UV detalladas a continuación en la tabla para controlar cómo se genera y vuelve a empaquetar Lightmap UV:

PropiedadDescripción
Min Lightmap Resolution Dicta el relleno mínimo necesario para los gráficos UV cuando se empacan los UV. Este valor objetivo asegura que el empaque sea el texel exacto hasta la resolución de mapa de luz mínima utilizada. Limitará el sangrado de luz y sombra que puede ocurrir cuando el valor de la resolución del mapa de luz es inferior a este valor.
Source Lightmap Index Elige el canal UV desde el cual generar el Lightmap UV.
Destination Lightmap Index Establece el canal UV en el que se almacenará el Lightmap UV generado.

Generando un Lightmap UV

Los siguientes pasos explican el proceso de generar un nuevo Lightmap UV desde el editor de malla estática.

  1. Abra el Editor de malla estática y navegue hasta la Configuración de compilación de LOD0 en el panel Detalles.
Editor de malla estatica, panel de detalles con recuadro amarillo

Genere UV de mapas de luz con la siguiente configuración:

  • Habilite Generar Lightmap UVs .
  • Establezca la resolución mínima del mapa de luz en una potencia ideal de 2, que debería ser la resolución de mapa de luz más baja que esta malla usaría. Esto asegura que menos artefactos de luz y sombra puedan afectar los gráficos UV.
  • Por lo general, el Source Lightmap Index debe dejarse en 0 o establecerse en un canal UV existente para generar el mapa de luz UV. Solo los canales UV disponibles estarán disponibles para elegir.
  • El Destination Lightmap Index establece el canal UV para crear o almacenar el mapa de luz UV. Puede ser cualquier valor (donde el valor representa el número real de canales UV actuales para esta malla estática) más uno.
  • Ingrese un valor para Lightmap Resolution que esta malla estática debe usar de manera predeterminada para cualquier instancia colocada en un nivel. La resolución ingresada debe ser mayor que el valor Min Lightmap Resolution utilizada para generar el mapa de luz UV en Build Settings.
  • Establezca el Lightmap Coordinate Index en el canal UV que se utiliza para su Lightmap UV. Por lo general, esto debería coincidir con el Destination Lightmap Index utilizado para generar el UV de Lightmap en Build Settings. Este canal UV determina qué canal UV se utiliza al generar las texturas de Lightmap durante una construcción de iluminación.

En este ejemplo, la textura UV se ha utilizado para crear un nuevo Lightmap UV. La textura UV se utiliza como fuente para reempaquetar el Lightmap UV, y la textura UV se ha diseñado de una manera que funciona mejor para no desperdiciar ningún espacio de textura. Con ese enfoque, las partes de la malla se escalan más grandes (o más pequeñas) en función de su importancia para obtener una resolución de textura adecuada sin perder espacio en la textura. 

Lightmap UV

Cuando se genera Lightmap UV, se escala para tener la misma densidad (normalizada) y luego se empaqueta en el espacio UV con suficiente relleno entre cada gráfico UV para evitar artefactos de luz y sombra al realizar los calculos de la luz. 

Aquí, puede notar un poco de espacio desperdiciado en el mapa de luz UV generado, sin embargo, esto es insignificante y no justificaría volver a trabajar el UV en una herramienta personalizada solo para hacer que use este espacio.

Regeneración de UV de mapas de luz existentes

Se puede volver a generar (o reempaquetar) un Lightmap UV existente usando la configuración de construcción de Static Mesh Edtior. Hay beneficios al volver a generar un Lightmap UV para una malla estática:

  • Le permite cambiar el relleno entre los gráficos UV para utilizar una resolución de mapa de luz mínima más alta o más baja sin volver a importar la malla. Esto es ideal cuando tienes muchos gráficos UV individuales y obtienes un paquete más ajustado en Lightmap UV.
  • Le permite volver a empaquetar cualquier UV de mapa de luz existente desde cualquier índice de mapa de luz de origen, incluido un canal de UV de mapa de luz generado previamente.

Los siguientes pasos demuestran la regeneración de un UV personalizado a partir de una malla estática importada:

  1. Abra el Editor de malla estática y navegue hasta la Configuración de compilación de LOD0 en el panel Detalles para configurar las siguientes opciones:
  • Opcional Establezca la Resolución mínima del mapa de luz en un nuevo valor que sea mayor o menor. Esto ajusta la cantidad de relleno que debe haber entre los gráficos UV.
  • Establezca el Índice de mapa de luz de origen en el canal UV que desea volver a empaquetar
  • Establezca el Índice de mapa de luz de destino para que sea el mismo que el Índice de mapa de luz de origen.

A continuación se muestra una comparación del Lightmap UV personalizado que se importó originalmente con Static Mesh. Notarás que los gráficos de UV se han ajustado de manera desproporcionada entre sí, pero es perfectamente aceptable como Lightmap UV porque cumple con los criterios para que no se superpongan los UV. 

Regenerar el UV normalizará todos los gráficos de UV para obtener un resultado uniforme de horneado de luces y sombras. Cada gráfico UV también recibirá una cantidad adecuada de relleno entre ellos para garantizar menos artefactos de sombra y luz.

Lightmap UV importado que trajo el modelo 3d

Mapa de luz personalizado importado UV

Lightmap UV anterior que fue re calculado por UE4 con una resolución mínima de 256

Lightmap reenvasado conResolución mínima del mapa de luz de 256

Vale la pena señalar que el Lightmap UV personalizado se enfoca más en tener cobertura para piezas más pequeñas que el jugador verá más de cerca. 

Al aumentar la cobertura de algunas piezas, la resolución del mapa de luz puede ser menor para obtener el mismo resultado que la resolución del mapa de luz reempaquetado. Puede usar su criterio si esto es algo que debe resolver fuera de UE4 para sus activos particulares.

Te puede interesar

Por favor recuerde que si esta informacion le pareció útil puede agradecer dejando un comentario y compartiendo esta pagina con amigos o colegas. Así mismo lo invito a ver el curso gratuito de Unreal Engine 4 en mi canal de Youtube 3d4every1 y suscribirse al mismo si le parece interesante. Al inicio de este post puede asignar un numero de estrellas que les parezca merezca este post, siendo 5 la mayor calificación.

Temas relacionados que pueden interesarte:

Deja una respuesta Cancelar la respuesta