Al crear recursos 3D, puedes necesitar la capacidad para definir distintos tipos de superficie dentro del mismo material. Una manera simple y económica de lograr esto es usar una máscara de textura que defina qué partes de una superficie deben verse afectadas por qué sección del material.
Este tutorial cubre cómo puedes usar la máscara de texturas en los materiales de Unreal Engine.
Máscaras de texturas
Una máscara de textura es una textura de escala de grises o un canal único (R, G, B o A) de una textura, que se utiliza para limitar el área de un efecto en un material.
En general, las máscaras se incluyen dentro de un canal único de otra textura, como el canal alfa de las texturas difusa o Normal Map. En otros casos, un archivo de imagen única contiene las máscaras Rugosidad, Metálico y Oclusión ambiental, las cuales ocupan un canal cada una.
Esto se conoce como channel packing y es una buena manera de mejorar el rendimiento del material, ya que reduce la cantidad de muestras de textura requeridas por el material. Técnicamente, cualquier canal de cualquier textura se puede considerar y usar como una máscara de textura.
A continuación se muestra un ejemplo de cómo es la máscara de textura para la malla estática SM_Chair en el contenido de inicio.
De hecho, este archivo de imagen contiene una máscara blanca y negra distinta en cada uno de los cuatro canales de color (RGBA).
Creación de una máscara de textura
Puedes crear una máscara de textura en cualquier programa de manipulación de imágenes 2D. También puedes integrar máscaras directamente de la geometría en el programa de creación de contenido principal, o con una herramienta de texturas dedicada, como Marmoset Toolbag, Xnormal o Substance Painter/Designer.
Al crear máscaras de forma manual, en general, empezarás con una imagen que muestra el diseño UV de la malla. En este ejemplo, la intención es enmascarar los cojines del asiento. Los UV correspondientes están resaltados en la imagen a continuación. Para enmascarar una parte específica del modelo, es necesario que pintes con blanco esa región de la imagen y dejes en negro todas las demás áreas.
Como se muestra arriba, esto permite aplicar propiedades de superficie específicas a la región enmascarada. En este caso, la máscara se usa para pintar de naranja los cojines.
Al crear una máscara de textura siempre tienes que usar blanco o negro puros y nunca información de color. El uso de cualquier otro tipo de color podría generar artefactos extraños al utilizar la máscara en Unreal.
Exportación de una máscara de textura
Cuando terminas de pintar la textura de la máscara, puedes exportarla como una imagen única, o bien puedes empaquetar varias máscaras en los canales R, G, B y A de una sola imagen y exportar eso. Esto se conoce habitualmente como "RGB channel packing" y es el método preferido al crear máscaras, ya que ofrece un rendimiento considerable y un uso menor de la memoria con muy poco trabajo adicional.
Si empaquetas algo en el canal alfa de una textura, recuerda que debes habilitar la exportación alfa en cualquier software de manipulación de imágenes 2D que uses. De lo contrario, corres el riesgo de que el canal alfa no se exporte con la textura.
Uso de máscaras de texturas
Puedes usar texturas de máscara de numerosas maneras en el editor de materiales de Unreal. Los usos comunes incluyen definir una fuente de luz emisiva, definir qué partes de una malla son metálicas y no metálicas, o asignar distintos colores a diferentes partes de un modelo, como se muestra en el ejemplo de la silla.
En la siguiente sección, se demuestran algunas de las maneras más comunes de usar máscaras de texturas en Unreal Engine.
Máscara emisiva
Uno de los usos más comunes de una textura de máscara es controlar las secciones emisivas de un material. Por lo general, para hacer esto primero se crea una textura de máscara emisiva, que utiliza blanco puro para definir las secciones del material que debe emitir luz. Hay dos parámetros que suelen acompañar a una máscara emisiva:
- Para cambiar el color de la emisión de luz, puedes multiplicar la máscara emisiva con un color definido por un parámetro vectorial.
- Para cambiar la intensidad de la luz emisiva, puedes multiplicarla mediante un parámetro escalar. Aumenta el valor en el parámetro escalar para aumentar el brillo de la emisión.
Los cuatro nodos resaltados en el siguiente gráfico muestran una máscara emisiva multiplicada con parámetros que controlan el color y brillo de la luz. La esfera solo emite luz en las regiones que corresponden a las partes blancas de la máscara emisiva. El resto de la esfera muestra la textura de color base.
Máscara del material
Un segundo uso común de las máscaras de texturas es almacenar distintos tipos de información de texturas en los canales R, G, B y Alfa individuales. El material en la malla estática SM_Chair que viene con el contenido de inicio es un perfecto ejemplo de esta técnica.
Si deseas buscar SM_Chair y todo el contenido correspondiente, primero debes seleccionar la carpeta Contenido de inicio en el explorador de contenido y después introducir "silla" en el cuadro de búsqueda. Esto mostrará todo el contenido relativo a la silla. Si no ves la silla, es probable que no hayas incluido el contenido de inicio con tu proyecto. Para corregir esto, necesitarás crear un proyecto nuevo o probar la herramienta de migración de recursos para mover el contenido de la silla de otro proyecto a este.
Al abrir el material de silla, M_Chair, podemos ver un ejemplo perfecto de máscara de textura en acción.
En este material, la textura de la máscara, T_Chair_M, se utiliza para asignar propiedades de superficie específicas a distintas regiones de la malla. La máscara de textura ayuda a definir qué secciones son metálicas o no metálicas, y también se usa para asignar distintos valores de rugosidad y color a diferentes partes de la silla.
En la siguiente imagen, podemos ver de manera detallada cómo se utiliza cada canal en la textura de la máscara. A la izquierda, observamos la imagen RGB compuesta, o cuál es la apariencia de la imagen si la vemos como una textura. La columna del medio muestra las máscaras blanca y negra contenidas en cada canal de color (R, G, B, A de arriba a abajo). Las imágenes a la derecha muestran a qué parte de la silla apunta la máscara; las partes blancas de la silla corresponden a la sección blanca de la máscara.
A continuación se detalla qué tipo de información se almacena dentro de cada canal de la textura de máscara de la silla.
-
Canal rojo: Información de oclusión ambiental. En el material, esto se utiliza para ayudar a agregar sombras de contacto sutiles donde hay dos superficies muy juntas.
-
Canal verde: Máscara metálica. En el material, esto se utiliza para definir qué partes se supone que son metálicas. También se usa para ayudar a definir de qué color debe ser el metal. !

-
Canal azul: Máscara no metálica. En el material, esto se utiliza para definir qué partes no son metálicas. Esta máscara también ayuda a definir el color de las partes no metálicas.
-
Canal alfa: Máscara de todo el objeto. Actualmente, el material no lo utiliza.
Si ponemos todo junto, la silla se parece a lo siguiente en un nivel de Unreal:
Consejos y trucos sobre las máscaras
Las máscaras de texturas son una herramienta muy eficaz, en especial, cuando se combinan con otras herramientas en Unreal Engine. En la siguiente sección, se presentan algunos consejos y trucos para aprovechar al máximo las máscaras de texturas en tu trabajo.
Máscaras de texturas y material por separado
El uso conjunto de máscaras de texturas e instancias de material es una excelente forma de agregar una cantidad casi interminable de variedad de opciones a cualquier recurso. Por ejemplo, puedes usar una máscara de textura para definir qué áreas deben tener ciertas propiedades, como color, y después utilizar distintas instancias de material para personalizar estas propiedades en el editor de instancias. Lee más sobre Instanciación de material aquí.
Cuando las máscaras de material se usan junto con la instanciación de material, puedes permitir que los artistas cambien el color y otros valores del material con rapidez y facilidad. Este enfoque produce recursos altamente personalizables, como SM_Chair en la imagen de arriba.
Máscaras y artefactos de canal
Debido a una anomalía con DirectX, el canal verde de una textura a menudo ofrecerá la mejor compresión. Si alguna de las máscaras se ve afectada de forma significativa por los artefactos de compresión, primero intenta colocar la información en el canal verde de la imagen para ver si eso ayuda. Si eso no soluciona el problema, prueba utilizar el canal alfa para almacenar la máscara.
Ten cuidado cuando uses el canal alfa de una textura para almacenar información de la máscara. Agregar un canal alfa a una textura aumentará considerablemente la superficie de memoria de esa textura, y si haces esto de manera suficiente, podrías perder lo que ahorraste si empaquetas distintas máscaras en los canales RGB de la textura.
sRGB y texturas de máscara
Al empaquetar varias texturas de máscara en una única textura, debes desmarcar sRGB en el editor de texturas, ya que no se debe aplicar corrección gamma en las máscaras.
Si deshabilitas sRGB para una textura que se muestreó anteriormente en un material, el tipo de muestra no se actualiza de forma automática en los nodos del muestrario de texturas 2D existentes. Es necesario que te asegures de ajustar el tipo de nodo en todos los nodos del muestrario de texturas 2D existentes. Si no cambias el tipo de muestrario, el material no se podrá compilar y se mostrará el siguiente mensaje en el registro de estadísticas.
Para corregir este error, todo lo que tienes que hacer es cambiar el tipo de muestrario del valor predeterminado Color a Color lineal, y la advertencia desaparecerá. Como práctica recomendada, te sugerimos volver a compilar el material para garantizar que los cambios se hayan realizado correctamente. Una vez completada la operación, la advertencia desaparece.
Conclusión
La máscara de textura es un concepto muy efectivo: una vez que lo perfeccionas, podrás crear una cantidad casi infinita de variación con muy poco contenido de origen. Recuerda que solo tienes cuatro canales disponibles en cualquier archivo de imagen para usar en máscaras de texturas, así que usa cada canal de forma astuta. No olvides deshabilitar sRGB en las texturas de máscara, dado que puede ayudarte bastante a aumentar la nitidez de la máscara.