El sistema de materiales de Unreal Engine ofrece un editor de materiales basado en nodos que permite conectar texturas, operaciones matemáticas, parámetros y expresiones para crear el aspecto de una superficie. El sistema de materiales optimiza y renderiza los materiales en tiempo real.
Para un usuario de Maya, este proceso de trabajo sería muy similar a cómo se construyen los materiales en Hypershade, pero con algunas diferencias clave.
Los materiales de Unreal Engine se construyen utilizando:
Un editor de materiales basado en nodos que está optimizado para las previsualizaciones y los procesos de trabajo en tiempo real.
La renderización basada en la física (PBR) pone de relieve el realismo a través de entradas de propiedad definidas como color base, metálico, rugosidad, especular y mapas normales.
Feedback en tiempo real con cambios en los materiales en el visor de previsualización con iluminación y reflejos en tiempo real.
Procesos de trabajo basados en parámetros con instancias de material para realizar ajustes en los materiales mediante anulaciones, sin necesidad de recompilar el material padre.
Atributos que definen un material
Los atributos definitorios de un material para la forma en que se renderiza y reacciona a la iluminación y las superficies en Unreal Engine vienen determinados por sus propiedades, entradas de material y lógica del grafo de materiales.
Propiedades y entradas de materiales
En el panel Detalles del Editor de materiales podrás configurar los atributos que definen un material. Según el tipo de material que estés fabricando, deberás tener en cuenta tres propiedades principales. Estas propiedades definen las entradas en el nodo de material principal que usarás para configurar el aspecto de tu material en el grafo de materiales.
El dominio del material define para qué se puede usar el material en tu proyecto. Por ejemplo, una superficie en 3D, una interfaz de usuario, el posprocesamiento, las funciones de iluminación o las pegatinas.
El modo de mezcla define cómo se mezcla el material con los píxeles de color de fondo que lo rodean. Por ejemplo, puede ser opaco, traslúcido o enmascarado, entre otros tipos de opciones de mezcla.
El modelo de sombreado define cómo interactúa el material con la luz y determina su aspecto visual y el comportamiento de iluminación de las superficies. Por ejemplo, los modelos de sombreado de tela y pelo usan distintas entradas de materiales para conseguir realismo en sus superficies en comparación con el modelo de sombreado de iluminación por defecto. Algunos modelos de sombreado añaden más complejidad y coste de rendimiento a sus materiales.
Con estas propiedades de material establecidas, puedes construir un material usando las entradas disponibles en el nodo de material principal en el grafo de materiales. La lista de entradas está directamente atribuida al dominio, modo de mezcla y modelo de sombreado que se haya establecido para el material que está desarrollando. Para la mayoría de los materiales creados en Unreal Engine, usarás lo siguiente:
A continuación se muestra un ejemplo de las diferentes entradas en el nodo de material principal cuando se cambia solo el modo de mezcla para usar diferentes salidas.
Dominio del material: superficie Modo de mezcla: opaco Modelo de sombreado: iluminado por defecto | Dominio del material: superficie Modo de mezcla: traslúcido Modelo de sombreado: iluminado por defecto | Dominio del material: superficie Modo de mezcla: enmascarado Modelo de sombreado: iluminado por defecto |
A continuación se indican algunos nombres de entrada comunes que se usan con los materiales Hypershade de Maya y sus equivalencias en Unreal Engine. Esto también incluye el tipo típico de entrada fuente para cada una de estas entradas en Unreal Engine a la hora de definir la lógica en el grafo de materiales.
| Entradas de material Hypershade de Maya | Entradas de material de Unreal Engine | Tipo de fuente habitual | Descripción de entrada de material |
|---|---|---|---|
Color | Color base | Textura o color | El color difuso principal de una superficie. |
Reflectividad | Metálico | Escalar o textura | Define si la apariencia de la superficie es metálica (1) o no metálica (0). |
Rugosidad | Rugosidad | Escalar o textura | Controla la suavidad de la superficie de lisa (0) a rugosa (1). |
Reflectividad | Especular | Escalar o textura | Controla la intensidad de reflexión de una superficie no metálica de no reflectante (0) a reflectante (1). |
Relieve / Normal | Normal | Textura de mapa normal | Aplica detalles a la superficie mediante mapas de texturas. |
Emisión / Color de emisión / Incandescencia | Color emisivo | Color o textura | Controla la intensidad de la autoiluminación de una superficie. |
Transparencia / Traslucidez | Opacidad | Escalar o textura | Controla el grado de traslucidez de la superficie, desde totalmente transparente (0) a opaca (1). |
Color ambiental | Oclusión ambiental | Textura | Controla la intensidad de las sombras indirectas. |
Para obtener más información y ejemplos sobre cómo utilizar estas propiedades de los materiales y sus entradas en los materiales, consulta los siguientes temas:
Grafo de material
El grafo de material es el editor basado en nodos donde conectarás texturas, expresiones, operaciones matemáticas y valores para definir el aspecto de una superficie. Los materiales pueden ser tan simples o complejos como necesites para definir una superficie.
Los tipos de nodo más habituales son los siguientes:
Texture Sample
Este nodo usa recursos de textura, como mapas de color y mapas normales.
Constants
Se trata de números de valor único útiles para controlar propiedades escalares, como valores de entrada en un nodo de interpolación lineal, o para introducir directamente en las entradas del nodo principal del material para Metálico, Rugosidad u Opacidad.
Nodos de matemáticas
Se trata de operaciones matemáticas de suma, multiplicación, resta, división, interpolación lineal (Lerp), potencia, anclaje, etc.
Nodos de utilidad
Se trata de nodos que ayudan a construir la lógica con otros nodos del grafo. Entre ellas se incluyen expresiones para Fresnel, vector de cámara, posición en el mundo, coordenadas de textura, etc.
Para obtener más información sobre el uso de la lógica en el grafo de materiales y las funciones generales, consulta los siguientes temas:
Notas adicionales para materiales y texturas
A continuación encontrarás una introducción general a temas relacionados con el desarrollo de materiales en Unreal Engine. Para obtener una descripción general más detallada de estos conceptos y aplicaciones, consulta las páginas de documentación correspondientes.
Materiales frente a instancias de material
El sistema de materiales de Unreal Engine está diseñado teniendo en cuenta la personalización y la parametrización para la renderización y la iluminación en tiempo real. Una forma de optimizar el trabajo con materiales es usar la instancia de material como medio para personalizar los parámetros sin afectar al material original del que deriva.
Así, si un material es el recurso primario que define el aspecto de la superficie de un objeto y cómo interactúa con la iluminación, una instancia de material usará atributos y parámetros del material padre o material base para anular estos valores y crear variedad y personalización. Esto también puede resultar más eficiente desde el punto de vista de los costes que utilizar materiales individuales para todos los objetos.
Puedes desglosar las características de los materiales y las instancias de materiales de las siguientes maneras:
| Características del material | Características de la instancia de material |
|---|---|
Se crea utilizando un editor basado en nodos. | Usa un editor controlado por parámetros expuestos que pueden anularse desde el material base. |
Contiene todas las posibles entradas de funciones de un material, como color, metálico, rugosidad, opacidad, etc. | Solo proporciona acceso a los parámetros expuestos del material base que se pueden anular. |
Los cambios en el material requieren que se vuelva a compilar antes de poder previsualizar los cambios. | Proporciona feedback en tiempo real para cambiar parámetros sin necesidad de recompilar el material. |
El grafo de material puede tener cualquier nivel de complejidad para cumplir con sus requisitos visuales. | El acceso solo a los parámetros expuestos mejora el rendimiento y la eficacia del proceso de trabajo. |
El cambio de este material afecta a todos los objetos que lo utilizan. | El cambio de esta instancia de material solo afecta a los objetos que lo utilizan, lo que los hace ideales para crear múltiples superficies de aspecto similar que parten del mismo padre base con funciones similares. |
El mejor momento para pensar en usar una instancia de material junto con un material es cuando solo necesitas personalizar detalles y ajustar parámetros, como el color de los materiales, sus texturas, el escalado, etc. Deberías crear nuevos materiales base cuando necesites definir un nuevo comportamiento visual y estilo (como opaco frente a traslúcido) que requiera configurar una nueva lógica en el grafo de materiales.
Por lo general, los materiales requieren un tiempo de configuración inicial más largo y su rendimiento es menor que si se usa una instancia de material para materiales con propiedades y atributos similares.
Para obtener más información sobre cómo usar materiales con instancias de material en tu proyecto, consulta los siguientes temas:
Texturas
Al igual que en Maya, las texturas son mapas de imagen que se aplican a los atributos de entrada del material que se está creando, como el color base, la normal, la rugosidad, para definir los detalles de la superficie. En Unreal Engine, se da más importancia a los conceptos de renderización basados en la física y al feedback en tiempo real a la hora de desarrollar los materiales.
Cuando importas texturas, puedes abrirlas en el Editor de recursos de texturas, donde podrás ver información sobre ellas, configurar sus ajustes y realizar algunos ajustes.
Para optimizar las texturas y trabajar de forma más eficiente con ellas en Unreal Engine:
Crea y ajusta texturas con herramientas de terceros antes de importarlas.
Usa técnicas de empaquetado de canales para combinar múltiples texturas en escala de grises para entradas de material como rugosidad, metálico y oclusión ambiental, en texturas RGB únicas. Esto puede optimizar el rendimiento al hacer referencia a una sola textura en lugar de a varias texturas distintas.
El motor usa automáticamente la compresión de texturas para las texturas, pero entender cómo aprovechar esto puede mejorar la fidelidad visual y el rendimiento.
Ten en cuenta el tamaño de las texturas. Para conseguir un rendimiento en tiempo real, lo ideal es utilizar dimensiones de potencia de dos (128, 512, 1024, etc.) para las texturas. Las texturas que no son potencias de dos no utilizan el sistema de transmisión de texturas del motor, lo que puede provocar artefactos visuales en las distancias.
Para obtener más información sobre el uso de texturas en Unreal Engine, consulta los siguientes temas:
Marco de materiales de Substrate
El marco de materiales de Substrate de Unreal Engine es un enfoque para la creación de materiales que sustituye el conjunto fijo de modelos de sombreado y modos de mezcla por un marco más expresivo y modular. La creación de material es la misma que con el sistema de materiales estándar, sin embargo, ya no estarás obligado a tener materiales individuales que usen un solo modelo de sombreado y un solo modo de mezcla. Puedes mezclarlos fácilmente en este proceso de trabajo para crear materiales únicos con una mayor complejidad.
Para obtener más información sobre cómo usar Substrate en tus proyectos y procesos de creación de materiales, consulta Presentación de materiales de Substrate.
Renderización basada en la física con materiales
Unreal Engine usa la renderización basada en la física (PBR) para el sombreado y la renderización, que simula con precisión el comportamiento de la luz al interactuar con las superficies. De este modo, se consiguen interacciones de luz físicamente plausibles para crear efectos visuales realistas y, lo que es más importante, predecibles en distintas condiciones de iluminación, como la luz solar directa frente a la iluminación interior, o incluso las superficies fotorrealistas frente a los efectos estilizados, desde los pintados a mano hasta los sombreados de celdas.
Los principios clave a tener en cuenta a la hora de trabajar con materiales de PBR en Unreal Engine son los siguientes:
Interacciones de iluminación realistas en las que las superficies responden de forma precisa y predecible a distintas configuraciones de iluminación, ya sea natural (exterior) o artificial (interior).
Uniformidad de los materiales para que su aspecto sea el adecuado en distintas escenas e iluminaciones.
Un proceso de trabajo simplificado mediante el cual los artistas definen los materiales por sus propiedades físicas en lugar de por valores arbitrarios, lo que puede reducir las conjeturas de los ajustes de iluminación y sombreado en un entorno en tiempo real con feedback instantáneo en la escena.
Para obtener más información, consulta Materiales basados en el mundo físico.
Siguiente página
Iluminación y renderizado en Unreal Engine para usuarios de Maya
Una introducción a las funciones de iluminación y renderizado de Unreal Engine para usuarios de Maya.