Este documento es un resumen general del flujo de trabajo original de materiales con capa, que usa funciones de materiales para crear mezclas de capas. Para obtener información sobre la más reciente función de capas de material en el editor de instancia de material, lee esto.
Los materiales con capa proporcionan un medio para crear un solo material que tiene una serie de submateriales (o capas) que puedes poner a lo largo de la superficie de tus objetos usando operaciones por pixel como máscaras. Son perfectos para manejar mezclas complejas entre tipos únicos de superficies. En la imagen de los cohetes de abajo, el cohete que está más hacia la derecha está usando una capa aparte para las partes de cromo, aluminio y cobre. Están mezcladas sobre el material pixel por pixel.
Los materiales con capas existen como una extensión de las Funciones de materiales. Las funciones de materiales son redes de nodos autocontenidos que llevan a cabo una operación específica, como una ecuación matemática compleja. Luego puedes reutilizar estas funciones cuando quieras en cualquier número de materiales. Usando los nodos Hacer atributos de material y Romper atributos de material, puedes definir una conjunto completo de atributos de material completamente dentro de una función de material. Después, puedes llamar a estas funciones de materiales en un material base y combinar entre ellas usando las funciones de mezcla de capa de material.
La imagen de arriba muestra un simple material de cromo definido completamente dentro de una función de material usando el nodo Hacer atributos de material. Puedes usar esta función como una capa en tu material base y combinarla con otras funciones de materiales (capas).
Es importante tener en cuenta que, ya que las funciones de materiales no se pueden aplicar directamente a una superficie, debes insertar cada capa de función de materiales a un material base estándar, que luego se puede aplicar a mallas estáticas. Puedes usar funciones de materiales para crear las capas que desees y mezclarlas como te parezca.
En un nivel alto, el flujo de trabajo luce así:
- Crea una nueva función de material y edita el gráfico del nodo hasta que quede perfecto. Esta función actuará como una capa cuando la llames en tu material base.
- Conecta la red de tu nodo con un nuevo nodo Hacer atributos de material y conéctalo a la salida de la función.
- Guarda la función de materiales.
- Repite este proceso para cualquier otra capa de función de materiales que desees crear.
- Crea un material nuevo y ábrelo en el editor de materiales.
- Arrastra tus funciones de materiales desde el explorador de contenido hacia el material nuevo para usarlas como capas.
- Mezcla varias funciones de materiales usando las funciones Mezcla de capas de material.
Tu objeto final ahora tiene distintos materiales mezclados a lo largo de su superficie.
Beneficios clave
Los materiales con capas te permiten crear lo que de otra forma sería un material bastante complejo. También te permiten mantener las cosas más manejables si en el futuro deseas hacer modificaciones.
Por ejemplo, es posible crear el efecto de materiales con capas usando un gráfico de material convencional (sin capas o funciones). Sim embargo, esto exigiría redes complejas para mezclar entre diferentes texturas y valores para cada entrada de material. Ya que la mayoría de los materiales usan múltiples entradas, la complejidad de este material aumentaría significativamente.
Considera la complejidad de la red de abajo, que no usa capas de material y mezcla un efecto de cromo y cobre, como se ve en el cohete de arriba.
Un gráfico de material tradicional sin capas.
Haz clic en la imagen para ampliarla.
Con un material con capas, cada tipo distinto de material está contenido dentro de su propio nodo. Esto hace la mezcla mucho más sencilla y le facilita enormemente las cosas al artista al momento de editar o hacer debug. Con los nodos Hacer atributos de material y Romper atributos de material, puedes conectar cada una de las capas de función de materiales directamente sin la preocupación de tener que conectar cada propiedad individual.
La red de abajo alcanza el mismo resultado que la de arriba, pero los materiales de cromo y cobre se modularizan en sus propias funciones de materiales.
Este es el mismo material usando las funciones de materiales como capas.
Haz clic en la imagen para ampliarla.
Otro beneficio de usar el enfoque de los materiales con capas es que, como utilizan funciones de materiales, cada capa es reutilizable. Esto te permite establecer una librearía de prototipos de materiales, o materiales que definen un tipo básico de superficie del mundo real. Por ejemplo, puedes crear capas que representen superficies genéricas como aluminio, acero, cuero, plástico, goma, etc. Luego puedes usar el material con capas para mezclarlas. Esto es muy útil si quieres crear un objeto detallado, como un personaje, sin tener que crear un conjunto enorme de materiales para aplicarlos de manera separada a la superficie.
Tipos de mezcla
Dentro de la lista de funciones de materiales en la paleta del editor de materiales hay una lista de distintas funciones de mezcla de capas de materiales. Estas funciones están para ayudarte a mezclar materiales sin la necesidad de recrear gráficos de nodos complejos cada vez. Diferentes tipos permiten clases de mezclas especializadas, como alguna con la capacidad de sobrescribir características específicas del material.
| Funciones de mezcla de capas de materiales | |
|---|---|
| MatLayerBlend_AO | Mezcla un mapa de oclusión ambiental (AO) sobre la superficie para eliminar los reflejos. |
| MatLayerBlend_BaseColorOverride | Permite remplazar el color base. |
| MatLayerBlend_BreakBaseColor | Genera el color base a partir de una capa de material entrante. |
| MatLayerBlend_BreakNormal | Genera el normal a partir de una capa de material entrante. |
| MatLayerBlend_Decal | Mezcla una hoja de calcomanía sobre el material usando el segundo canal de UV. |
| MatLayerBlend_Decal_UV3 | Mezcla una hoja de calcomanía sobre la capa de material usando el tercer canal de UV. |
| MatLayerBlend_Emissive | Mezcla una textura emisiva sobre la capa de material. |
| MatLayerBlend_GlobalNormal | Mezcla una textura de normal sobre la capa de material. |
| MatLayerBlend_LightmassReplace | Remplaza el color base en Lightmass, lo que permite hacer cambios en los resultados de la iluminación indirecta. |
| MatLayerBlend_ModulateRoughness | Multiplica la rugosidad de la capa de material por una textura entrante. Sirve para dar un aspecto "grasiento". |
| MatLayerBlend_NormalBlend | Mezcla una textura de normal sobre la superficie, pero mediante una máscara de textura, lo que permite controlar dónde aparecerá el normal. |
| MatLayerBlend_NormalFlatten | Disminuye el efecto del mapa de normal. |
| MatLayerBlend_RoughnessOverride | Remplaza la textura de rugosidad de una capa de material. |
| MatLayerBlend_Simple | Ofrece una solución simple de mezcla de interpolación lineal (Lerp) para 2 capas de material. No mezcla los normales; en su lugar, retiene el normal del material base. |
| MatLayerBlend_Stain | Mezcla el material superior sobre el material base como una mancha, lo que significa que solo se usan los valores del color base y la rugosidad del material superior. |
| MatLayerBlend_Standard | Mezcla todos los atributos de dos capas de material. |
| MatLayerBlend_Tint | Permite teñir una capa de material ingresando un color de tinte y una máscara para controlar la ubicación del tinte. Sirve para hacer cambios parciales de color. |
| MatLayerBlend_TintAllChannels | Similar a la función anterior, pero también afecta al valor especular. Se usa en ocasiones muy especiales; por lo general, no la necesitarás. |
| MatLayerBlend_TopNormal | Mezcla todos los atributos de ambos materiales, pero solo usa el normal del material superior. |
Cómo instanciar materiales con capas
Dado que los materiales con capas son básicamente funciones de materiales, es necesario planificar con más atención al momento de pasarles parámetros para instanciarlos. Para hacer un mejor uso de los parámetros Escalar y Vector, puedes crear una expresión de entrada de función como parte de una capa de material. Luego, puedes conectar un parámetro con esta entrada desde el material superior. Consulta el resumen sobre las funciones de materiales para obtener más información.
El flujo es parecido al siguiente:
- Parámetro de material (parámetro de escalar, parámetro de vector, etc.)
- Capa de material (función)
- Expresión de entrada de función
- Alguna red para definir la capa de material
- Salida de la función
- Material final
Algunos consejos útiles:
- Al pasar tus expresiones de material a una función para crear la capa, remplaza todos los parámetros con los nodos de entrada de función designados adecuadamente.
- Cuando traigas tu nueva función de materiales a un material, conecta los nodos de parámetro nuevos con las entradas.
- Ahora puedes instanciar el material final, y tus parámetros transmitirán los aspectos adecuados de tus capas.
- Asegúrate de suministrar valores predeterminados para tus entradas de función. Esto acelera el flujo de trabajo para aquellos que no necesiten hacer cambios.
Advertencias
Aunque los materiales con capas son útiles para manejar configuraciones con múltiples materiales, debes tener cuidado al usarlos. Pueden ser muy pesados en términos de rendimiento, particularmente si los materiales usados en las funciones de capas son complejos.
Ten en cuenta que todas tus capas se renderizan de manera simultánea y luego se mezclan. Por ejemplo, si tienes cuatro capas en un material, por cada pixel de tu objeto el motor debe probar para ver cuál de las cuatro está mezclada y luego rechazar cualquiera que no esté en uso. Este cálculo adicional hace que el material sea más intenso en cuanto al rendimiento.
Tu primer impulso puede ser usar materiales con capas cada vez que quieras tener múltiples tipos de superficie sobre un objeto. Por ejemplo, en un automóvil, podrías querer una capa distinta para la pintura, otra para el acero, para la goma, para el vidrio y así. En su lugar, es más eficiente separar muchas de estas capas en el nivel geométrico. Esto crea más elementos de material en tus objetos, lo que aumenta las llamadas de dibujo, pero, en general, es mucho más eficiente. En resumen, si puedes aplicar múltiples materiales en lugar de usar un material con capas, hazlo. Si necesitas un control por pixel sobre dónde se ponen los materiales, entonces usa las funciones de materiales con capas o las [capas de materiales]](designing-visuals-rendering-and-graphics/materials/layered-materials/material-layers).
Aunque condensar varios materiales individuales en uno solo reducirá las llamadas de dibujo, el material con capas resultante es, por lo general, muy pesado para poder usarlo en plataformas móviles.