Substrate es el enfoque de Unreal Engine para la creación de materiales que sustituye el conjunto fijo de modelos de sombreado y modos de mezcla, como Iluminado por defecto y Recubrimiento transparente, por un marco más expresivo y modular.
Substrate elimina algunas abstracciones del sistema de materiales que no son de Substrate (o heredados) y las reemplaza con propiedades medidas de materia. Esto crea un espacio de parámetros más amplio desde el que trabajar y permite mezclar con más precisión tipos de superficie discretos, como el metal, el cristal y el plástico. Substrate también agiliza el proceso de estratificación de materiales, lo que facilita la representación de superficies como líquido sobre metal o recubrimiento transparente sobre la dispersión de la subsuperficie.
Los materiales de Substrate se conceptualizan como «bloques de materia». Estos bloques son una representación de la función de distribución de dispersión bidireccional (BSDF) basada en principios, parametrizada por cantidades físicas con unidades bien definidas. Los materiales se expresan como un grafo de bloques en los que se realizan operaciones (como mezclar o aplicar capas). Gracias a su representación basada en principios, los materiales de Substrate se pueden simplificar según la capacidad de una plataforma para cambiar la calidad visual por el rendimiento.
Nuevos proyectos
Substrate está habilitado de forma predeterminada para cualquier proyecto recién creado. Los proyectos existentes que se actualicen a UE 5.7 y versiones posteriores seguirán usando la ruta sin Substrate de forma predeterminada, a menos que los ajustes del proyecto indiquen explícitamente la compatibilidad con Substrate.
Para estos proyectos existentes, puedes activar el Substrate en Configuración del proyecto > Renderizado, habilitar los materiales de Substrate y reiniciar tu proyecto para que los cambios surtan efecto.
En los proyectos nuevos que tengan habilitado Substrate de forma predeterminada, se usará el formato de GBuffer combinable para priorizar la velocidad sobre la fidelidad visual. Este formato se puede cambiar en los ajustes de renderizado del proyecto.
Algunos proyectos de plantillas, como el de automoción o el de arquitectura, usan el GBuffer adaptativo de forma predeterminada para favorecer la fidelidad visual sobre del rendimiento.
Para obtener más información sobre cómo ajustar el formato de GBuffer para tu proyecto, consulta la sección Formato de GBuffer en esta página.
Conversión del editor de materiales
Los materiales existentes que no sean Substrate funcionarán de inmediato, pero no se convertirán automáticamente en nodos de Substrate. En el caso de materiales nuevos o existentes que no sean de Substrate, seguirán usando la parametrización del nodo raíz que no sea de Substrate y se convertirán a Substrate en tiempo de compilación. Esto simplifica la migración del proyecto, evita tener que modificar o volver a guardar los recursos y ayuda a reducir los costes de preparación.
Para convertir un material en Substrate, haz clic derecho en el nodo raíz y selecciona Convertir a Substrate. Esto crea automáticamente un bloque y lo conecta al material frontal del nodo raíz, además de conectar las entradas del nodo raíz que no sea de Substrate al bloque.
Sigue estas directrices cuando habilites Substrate en un proyecto existente o al migrar a Unreal Engine 5.7 o versiones posteriores:
Abrir un material que no sea de Substrate en un proyecto con Substrate activado ya no altera el material. Sigue siendo compatible con proyectos que no sean de Substrate.
Los materiales convertidos explícitamente no son compatibles con proyectos que no sean de Substrate. La conversión es permanente y no se puede revertir a un material que no sea de Substrate.
Los materiales de Substrate se renderizan en negro si Substrate está deshabilitado para el proyecto. Esto incluye cualquier material de Substrate heredado que se haya creado a partir de materiales convertidos. Puedes reconfigurar manualmente cualquier material de Substrate convertido a un material heredado, pero esto no eliminará los nodos de Substrate que ahora están en el grafo de material.
Formato de GBuffer para fidelidad visual
Substrate admite dos formatos de GBuffer diferentes para almacenar datos de materiales: el GBuffer combinable y el GBuffer adaptativo. Estos formatos conllevan distintos compromisos en cuanto a velocidad, memoria y fidelidad visual.
GBuffer combinable
Este formato se basa en un consumo de memoria fijo y una velocidad predecible. Su uso principal es para proyectos de 60 Hz. Viene con conjuntos de funciones limitados y es similar a la ruta sin Substrate.
El rendimiento está a la par con la ruta sin Substrate.
Apunta a proyectos orientados al rendimiento (60 Hz).
Garantiza la coherencia visual en todas las plataformas.
Sin sobrecarga de cook.
No fuerza la habilitación de la técnica de pegatina DBuffer.
GBuffer adaptativo
Este formato tiene como objetivo la fidelidad visual y aprovecha todo el potencial de Substrate, lo que permite enriquecer la complejidad del material.
El coste de rendimiento es mayor y depende de la complejidad del material visible en pantalla.
Tiene como objetivo la fidelidad visual, lo que permite comportamientos de sombreado más complejos.
La fidelidad visual alta dependerá de la plataforma.
El tiempo de cook aumenta en torno a un 15 % en comparación con el formato combinable. Los materiales con un comportamiento de sombreado complejo también aumentarán el tiempo de cook.
Fuerza la habilitación de la técnica de pegatina DBuffer.
Hay controles adicionales disponibles para Recuento de cierre y Bytes por píxel en la configuración del proyecto y en la variable de consola.
Este formato solo es compatible con las consolas de la generación actual Xbox Series X/S, PlayStation 5 y PlayStation 5 Pro, Windows PC (SM6), MacOS (SM6) y Linux (SM6). En otras plataformas (incluidas las plataformas SM5), los materiales están simplificados y las plataformas se ejecutan con el formato de GBuffer combinable.
Para problemas conocidos al usar GBuffer adaptativo, consulta la sección Limitaciones y problemas conocidos de esta página.
DBuffer
El formato de GBuffer combinable seguirá siendo compatible tanto con la pegatina combinable como con la pegatina DBuffer. La pegatina DBuffer está habilitada de forma predeterminada, pero puedes desactivarla en la configuración del proyecto.
El formato de GBuffer adaptativo solo es compatible con la pegatina DBuffer. Si el proyecto no usa la pegatina DBuffer, el sistema de renderizado lo habilitará automáticamente para las plataformas compatibles con el formato de GBuffer adaptativo.
Al usar pegatinas DBuffer, Substrate admite la lectura normal del material durante la evaluación de DBuffer como ruta experimental, que puede activarse con r.Substrate.DBufferPass. Esto permite que el material DBuffer use la normal del material sin reproyección temporal ni reconstrucción de la normal basada en la profundidad.
Configuración del proyecto y variables de consola opcionales
Substrate incluye la siguiente configuración del proyecto y variables de consola opcionales:
| Configuración del proyecto | Descripción |
|---|---|
Formato de GBuffer de Substrate (proyecto) | Selecciona el formato de GBuffer utilizado para el proyecto:
|
Cierre de Substrate por píxel (proyecto) | Define el número máximo de cierres que se pueden evaluar por píxel. Si un material contiene más cierres que esto, se simplificará iterativamente hasta que se ajuste al presupuesto del proyecto. Además, cada plataforma tiene su propio límite superior de recuento de cierres, que puede anularse con los siguientes ajustes:
|
Anulación del cierre por píxel de Substrate | Selecciona cómo se define el número máximo de cierres evaluados por píxel para cada plataforma.
|
Reflejo rugoso del material opaco de Substrate (experimental) | Si esta opción está habilitada, las superficies rugosas que recubren otros materiales pueden desenfocar las capas inferiores de una forma físicamente plausible. Esta función es experimental. |
Refracción rugosa del material traslúcido de Substrate | Si esta opción está habilitada, las superficies traslúcidas pueden generar refracciones rugosas en función de la rugosidad. Activar esto hace que el pase de distorsión sea más costoso. |
Sombreadores de visualización avanzada de Substrate (solo Editor/Win64/DX12) | Habilita sombreadores avanzados de visualización de depuración de materiales de Substrate. Los sombreadores de pasada base pueden generar este tipo de datos avanzados. Por ahora solo está disponible para editores compilados para Win64 y que funcionen con la API gráfica DX12. |
Soporte de la capa de material de habilitación de Substrate (experimental) | Habilita las capas de materiales y la interfaz de usuario de Substrate. Nota: Esta compatibilidad es unidireccional; los materiales de capa heredados se actualizan automáticamente y únicamente se pueden revertir manualmente después de volver a guardar los recursos. |
| Variables de la consola | |
| Proporciona una forma de especificar los bytes por píxel de almacenamiento de un material de Substrate antes de que se simplifique automáticamente. El valor predeterminado de esta variable es de 80 bytes por píxel. Puedes aumentarlo para materiales complejos con mayores requisitos de almacenamiento. Los valores más altos usan más memoria y pueden afectar al ancho de banda de la memoria y a otras características de rendimiento. La relación de esta variable con el rendimiento depende en gran medida tanto del contenido como de la plataforma. Si es necesario, puedes especificar este valor para cada plataforma en el archivo de configuración platform.ini. |
| Proporciona una forma de fijar el número de cierres evaluados por píxel. Si un material tiene más cierres que este valor, el material se simplificará automáticamente para respetar el recuento de cierres. |
| Si esta opción está habilitada, se obliga a Substrate a convertir todos los materiales al GBuffer heredado usando un solo modelo de sombreador por píxel. Esto puede usarse en plataformas de gama baja para obtener un mejor rendimiento en algunos proyectos que lo necesiten. |
Relación de Substrate con las capas de material
Las capas de material tradicionales en Unreal Engine (tanto las basadas en grafos como en la GUI de capas personalizadas) se basan en el concepto de mezcla de parámetros. Cada capa define un grafo de patrones de parámetros que se mezclan y se introducen en el modelo de sombreado final.
No hay nada que impida que los parámetros de capas de material se incluyan en un modelo de sombreado definido por Substrate. Sin embargo, tendrías que configurar esta lógica manualmente usando la salida de un nodo Material Attribute en el material padre. Una limitación de este enfoque es que el sistema de atributos de materiales tiene una lista fija de parámetros, pero es posible que no haya suficientes espacios para alimentar una configuración de varios bloques con Substrate, lo que podría requerir el uso de pines de forma arbitraria y sin relación con su verdadero significado.
Substrate puede usar de forma nativa la mezcla de parámetros, tal y como se describe más adelante en esta página, pero no hay forma de acceder a esa funcionalidad desde la interfaz de capas de material. Unificar las capas de material y de Substrate es un área de gran interés para futuros desarrollos.
Es importante tener en cuenta que los atributos de material y las capas de material no controlan la estratificación real de la materia: es posible simular un recubrimiento transparente y no es posible tener una capa superior con transmitancia coloreada encima de otra. Más bien, solo permiten fusionar dos materiales sobre una superficie, es decir, mezclarlos horizontalmente, no permitiendo la superposición de un bloque de materia con otro.
Cómo trabajar con materiales de Substrate
Los materiales de Substrate se crean de forma similar a los materiales heredados. Esta sección cubre los elementos clave que componen los materiales de Substrate, incluidos sus nodos, modos de mezcla y detalles sobre los tipos de materiales que puedes crear.
Nodo raíz del material de Substrate
Al igual que con los materiales antiguos, los bloques de Substrate y otros nodos de Substrate, como operadores y bloques de construcción, se introducen en el nodo de raíz del material a través del material frontal.
Todos los grafos de material de Substrate deben estar conectados a la entrada Material frontal en el nodo raíz. Esta entrada es el punto de conexión de todos los grafos de Substrate.
Además, al igual que con los materiales heredados, usarás el panel Detalles cuando selecciones el nodo raíz del material para establecer el modo de mezcla y otras propiedades que definen el aspecto del material. El dominio del material y el modelo de sombreado se deducen automáticamente del grafo.
Modos de mezcla de Substrate
Substrate usa su propio conjunto de modos de fusión para definir cómo se mezcla el color del material con el fondo. Los modos de mezcla de materiales heredados tienen limitaciones en cuanto a cómo pueden mezclarse entre sí, lo que limita los tipos de materiales que pueden crear. Substrate ofrece una selección más amplia de modos de mezcla que pueden mezclarse para crear todo tipo de materiales. Esto es especialmente importante para conseguir un sombreado de superficie traslúcido físicamente correcto.
Substrate incluye los siguientes modos de mezcla:
| Modo de mezcla | Descripción |
|---|---|
Opaco | Define una superficie que la luz no puede atravesar ni penetrar. Una superficie opaca con una cobertura de 1. Es lo mismo que el antiguo modo de mezcla opaca. |
Enmascarado | Se usa para materiales que necesitan controlar selectivamente la visibilidad de forma binaria (activar/desactivar). Una superficie opaca con una cobertura de 1 o 0. Es lo mismo que el antiguo modo de mezcla enmascarado. |
Traslúcido - Transmitancia gris | Un material traslúcido con superficie y cobertura de color, pero con una transmitancia reducida a escala de grises. Esto es más rápido, ya que evita el renderizado adicional de la traslucidez posterior a la profundidad de campo en un pase de modulación. Este es el modo de mezcla de reserva para plataformas que no son compatibles con la traslucidez de color de hardware (lo que se denomina mezcla de colores de origen dual). Es similar al antiguo modo de mezcla traslúcido. |
Aditivo | Añade el color del material al color del fondo, donde Color final = Color fuente + Color destino. |
Solo transmitancia coloreada | Solo se usa la transmitancia del material. Las interacciones de la superficie se reducen a 0. Es lo mismo que el antiguo modo de mezcla Multiplicar. |
AlphaComposite (alfa premultiplicado) | Este modo de mezcla proporciona un mayor control sobre la contribución de color de un material mezclado de forma aditiva sobre la escena y la cantidad de cobertura que reduce la visibilidad de la escena que hay detrás (la cobertura del material puede anularse usando la entrada Opacidad del nodo raíz). Funciona igual que el antiguo modo de mezcla AlphaComposite (alfa premultiplicado). |
AlphaHoldout | Este modo de mezcla retiene el alfa, lo que permite perforar objetos para revelar los objetos que hay detrás. Funciona igual que el antiguo modo de mezcla AlphaHoldout. |
Traslúcido - Transmitancia coloreada | Un material traslúcido repleto de funciones con superficie de color, cobertura y transmitancia coloreada. Esto es más costoso cuando se usa un modo traslúcido separado después de la profundidad de campo, ya que tendrás que renderizar el componente de transmitancia en un búfer separado de forma similar al modelo de sombreado heredado ThinTranslucent. |
Substrate hace que trabajar con traslucidez sea más sencillo que con los materiales tradicionales. Los modos de mezcla traslúcidos se definen mejor por su intención. Un aspecto que no ha cambiado entre los dos es que cualquier modo de mezcla traslúcido también debe establecer un modo de iluminación para definir cómo se calcula la iluminación para tu superficie. Esto es importante para conseguir el aspecto adecuado en materiales traslúcidos.
La gran mayoría de materiales traslúcidos que vayas a crear usarán el Volumen de traslucidez de la superficie o el Forward Shading de superficie.
Puedes elegir entre los siguientes modos de iluminación:
| Modos de iluminación | Descripción |
|---|---|
Volumétrica no direccional | La iluminación se calculará para un volumen, sin direccionalidad. Utiliza esta opción en efectos de partículas como el humo o el polvo. Se trata del método de iluminación por píxel menos costoso. Sin embargo, no tiene en cuenta la normal del material. |
Volumétrica direccional | Se calcula la iluminación en un volumen con direccionalidad, teniendo en cuenta la normal al material. Ten en cuenta que el espacio de tangentes de partículas predeterminado mira hacia la cámara, así que es necesario Generar partículas esféricas para obtener un espacio de tangentes más útil. |
Volumétrica PerVertex no direccional | Es como la volumétrica no direccional, pero la iluminación solo se evalúa en los vértices, de modo que el sombreador de píxeles tiene un coste notablemente menor. La iluminación todavía procede de una textura de volumen, así que su intervalo está limitado. Las luces direccionales se proyectan sin sombras en la distancia. |
Volumétrica PerVertex direccional | Es como la volumétrica direccional, pero la iluminación solo se evalúa en los vértices, de modo que el sombreador de píxeles tiene un coste notablemente menor. La iluminación todavía procede de una textura de volumen, así que su intervalo está limitado. Las luces direccionales se proyectan sin sombras en la distancia. |
Volumen de traslucidez de la superficie | Calcula la iluminación para una superficie. La luz se acumula en un volumen, de modo que el resultado es borroso y tiene una distancia limitada, pero el coste por píxel es muy reducido. Usa esta función sobre superficies traslúcidas como vidrio y agua. Solo es compatible con la iluminación difusa. |
ForwardShading de superficie | Calcula la iluminación para una superficie. Usa esta función sobre superficies traslúcidas como vidrio y agua. Esta opción se implementa con Forward Shading, de modo que es compatible con los brillos especulares de las luces locales; sin embargo, no admite muchas funciones que solo son diferidas. Este es el método de iluminación con traslucidez más costoso, ya que se calcula la aportación de cada luz en cada píxel. |
Para ver algunos ejemplos de ajustes y uso de la traslucidez en un material de Substrate, consulta la sección Traslucidez de esta página.
Bloque de Substrate
El bloque de Substrate es el bloque de creación elemental a partir del cual se ensambla un material de Substrate. Está diseñado para ser el conjunto mínimo necesario de parámetros con los que se puede conseguir la gran mayoría de aspectos materiales. Como tal, es la base de un tipo de creación de apariencias mucho más expresiva.
Un bloque es una representación basada en principios de un bloque de materia compuesto por una interfaz y un medio.
Un bloque de Substrate está compuesto de la interfaz (1) y el medio (2).
La interfaz es el límite donde la luz interactúa con la superficie del material. Las propiedades de la interfaz vienen definidas principalmente por los valores de rugosidad, normal, albedo difuso, F0 y F90 que se le asignan.
El medio es el volumen de materia por debajo de la interfaz donde la luz se dispersa, transmite y absorbe. Las propiedades del medio vienen definidas principalmente por el recorrido libre medio (o MFP), así como por las entradas de albedo difuso.
El bloque de Substrate es un reemplazo modular para el nodo raíz del material monolítico en materiales que no son de Substrate. Se compone de múltiples atributos de superficie, como Difuso, Especular, Rugosidad, Emisivo, Tela, Anisotropía y muchos más. Todos los nodos BSDF de Substrate contienen propiedades que son relevantes para tu salida con nombre para el tipo de material que producen, como ojos, pelo, o un simple recubrimiento transparente, etc.
Los materiales tradicionales dependían de su modo de mezcla para presentar las entradas que se pueden usar. Substrate usa sus diferentes bloques BSDF para definir el tipo de material. Y como ya no están vinculados directamente a los modos de mezcla, se pueden superponer y mezclar para producir distintos tipos de materiales.
El nodo principal Substrate Slab BSDF usado incluye las siguientes entradas:
| Entradas de bloque de Substrate | Definición |
|---|---|
Albedo difuso | Define el porcentaje de luz reflejada como difusa por una superficie. Es similar al color base local del medio. El valor predeterminado es 0.18. El albedo difuso también representa el porcentaje de luz que es dispersada por el medio participante cuando se usa la representación de la subsuperficie de volumen simple. |
F0 | Define el color y el brillo del resplandor especular donde la superficie es perpendicular a la cámara. Para materiales dieléctricos (plásticos y otros no metales), este valor suele estar en el intervalo de 0 a 0.08. En el caso de materiales metálicos, puede llegar hasta 1. Las piedras preciosas se encuentran en un intervalo de hasta alrededor de 0.16. |
F90 | Define el color del brillo especular cuando la normal de la superficie está a 90 grados de la cámara. Es decir, en ángulos rasantes con respecto a la vista de la cámara. Solo se perciben el tono y la saturación, ya que el brillo se fija en 1.0. Esto se desvanece a negro a medida que F0 cae por debajo de 0.02. |
Rugosidad | Controla la rugosidad del material. La rugosidad de la superficie puede oscilar entre 0 y 1. Con 0 (suave), la rugosidad es un reflejo especular. En 1 (totalmente rugosa), el rugosidad es completamente mate o difusa. Cuando se utiliza la anisotropía, el valor de rugosidad se utiliza a lo largo del eje tangente. |
Anisotropía | Controla la dirección de la anisotropía del material (-1: las luces se alinean con la bitangente, 1: las luces se alinean con la tangente). |
Normal | Selecciona la normal de la superficie como entrada. La normal se considera tangente o espacio global según las propiedades del espacio en el nodo raíz del material. Esta entrada define la normal de sombreado por píxel. |
Tangente | Toma una tangente de superficie como entrada. La normal se considera tangente o espacio global según las propiedades del espacio en el nodo raíz del material. Esta entrada define la tangente de sombreado por píxel. |
SSS MFP | Recorrido libre medio de dispersión subsuperficial (MFP). Esto controla la densidad percibida del material e influye en la absorción y dispersión de la luz por el material. Más concretamente, define la distancia media en centímetros a la que un fotón interactúa con una partícula de materia. Esta distancia se controla por canal de color. El MFP interactúa directamente con la transmitancia y la cantidad de luz dispersada dentro de un bloque:
Esta entrada solo se usa cuando no hay ningún recurso de perfil subsuperficial asignado al nodo raíz del material. |
Escala SSS MFP | Esta entrada escala el radio del recorrido libre medio de dispersión subsuperficial del perfil subsuperficial a un valor entre 0 y 1. |
Anisotropía de fase SSS | Los valores positivos alargan la función de fase a lo largo de la dirección de la luz, provocando una dispersión hacia delante. Los valores negativos alargan la función hacia atrás a lo largo de la dirección de la luz, provocando una dispersión hacia atrás. |
Color emisivo | Controla el color emisivo de las superficies de los materiales. |
Rugosidad secundaria | Controla la rugosidad de un lóbulo especular secundario. Con 0 (suave), la rugosidad es un reflejo especular. En 1 (totalmente rugosa), el rugosidad es completamente mate o difusa. Esta entrada no influye en la rugosidad difusa. |
Peso de rugosidad secundaria | El factor de mezcla entre el lóbulo especular principal y el secundario. El primer especular que utiliza la rugosidad tiene un peso de (1 - SecondRoughnessWeight). Con un valor igual a 0, solo se renderiza el lóbulo principal. Un valor de 0.5 renderiza una mezcla al 50 % de ambas rugosidades y un valor de 1.0 renderiza solo el lóbulo secundario. |
Rugosidad difusa | Controla la rugosidad de la capa de pelusa. Una pelusa con rugosidad de 0 es lisa (más brillante) y una de 1 es totalmente rugosa (mate). |
Cantidad de pelusa | Cuando es mayor que 0, añade una capa similar a una pelusa en la interfaz, causando retrorreflectividad del color. Esto controla la cantidad de pelusa que se aplica sobre una capa de superficie. Suele usarse para crear materiales de tela. |
Color de pelusa | Define el color de la capa de pelusa. |
Densidad de destello | La representación logarítmica de la densidad de las microfacetas en la superficie de un material. Requiere que se establezca |
UV de destello | Controla la posición y la escala de los destellos en la superficie de un material. Requiere que se establezca |
El comportamiento de la subsuperficie del bloque viene definido por la propiedad Tipo de subsuperficie del bloque. Define el modelo de dispersión usado para el bloque determinado. Ofrece un control explícito para lograr el comportamiento heredado existente o lograr aspectos diferentes.
Los tipos subsuperficiales disponibles son:
Envoltura: usa un modelo de iluminación envolvente para emular la dispersión de la luz. Es equivalente al modelo heredado de sombreado subsuperficial.
Envoltura de dos caras: usa un modelo de iluminación envolvente en ambas caras de la superficie para emular la dispersión de la luz. Es equivalente al modelo de sombreado heredado Follaje de dos caras.
Difusión: usa el modelo de difusión (espacio en pantalla o trazado de rayos) para actualizar la dispersión de la luz. Cuando se proporciona un perfil SSS, es equivalente al modelo de sombreado heredado del perfil subsuperficial. En caso contrario, el MFP se puede controlar directamente en el bloque.
Volumen simple: usa una mezcla del modelo de Beer-Lambert para la parte de la transmitancia y un modelo ajustado para la parte de la dispersión.
En el caso de los bloques en capas verticales, solo es válido el tipo de subsuperficie Volumen simple. Lista de tipos subsuperficiales compatibles por tipo de capa:
| Capa inferior | Capas superiores |
|---|---|
Nada Volumen simple Envolver Envoltura de dos caras Difusión | Ninguno Volumen simple |
En función de la plataforma y la ruta de sombreado, es posible que el tipo de subsuperficie de difusión no esté disponible. En tales casos, el sistema recurre a un modelo sencillo de difusión sin dispersión. La difusión solo es compatible con la ruta diferida y la ruta de trazado de rutas y en las siguientes plataformas: Xbox One, Xbox Series S, Xbox Series X, PlayStation 4 y 5, PC DX11, PC DX12, Linux Vulkan y macOS. Las plataformas de gama baja, como los móviles, no son compatibles con los modelos de difusión. En la parte inferior de cada nodo de bloque, una etiqueta indica qué modelo de dispersión se usará en función de la topología. Esta etiqueta puede ser distinta de la especificada por la propiedad Tipo de subsuperficie si este tipo de dispersión no es compatible con la topología.
Parametrización de materiales de Substrate
Substrate usa una parametrización F0/Albedo difuso en comparación con la ruta sin Substrate, que usaba Color base/Especular/Metalizado. Esta parametrización ofrece más flexibilidad sin dejar de garantizar la conservación de energía. Sin embargo, elegir el valor correcto para F0 puede no ser intuitivo al principio.
Como norma general, puedes dividir los materiales en dos grupos:
Materiales dieléctricos: son materiales con un metalizado de 0 y, por lo general, tienen un valor de F0 de entre 0.02 y 0.06 en el espacio lineal. Las piedras preciosas pueden tener un valor de F0 de hasta 0.18 en el espacio lineal.
Materiales conductores: son materiales con un metalizado de 1 y, en el espacio lineal, suelen tener un valor de F0 que va desde 0.5 hasta 1.
Entre estos rangos se están los materiales semiconductores, que rara vez se encuentran en el mundo real.
Diagrama extraído de Adobe Substance.
A continuación, se muestra una lista de valores F0 para materiales comunes:
Esta lista es una reproducción de la publicación Real-Time Rendering Third Edition, de Tomas Akenine-Moller, Eric Haines y Naty Hoffman.
| Material | F0 lineal | F0 sRGB | Color |
|---|---|---|---|
Agua | 0.02 | 0.15 | |
Plástico/Vidrio (bajo) | 0.03 | 0.21 | |
Plástico (alto) | 0.05 | 0.24 | |
Vidrio (alto)/Rubí | 0.08 | 0.31 | |
Diamante | 0.17 | 0.45 | |
Hierro | 0.56, 0.57, 0.58 | 0.77, 0.78, 0.78 | |
Cobre | 0.95, 0.64, 0.54 | 0.98, 0.82, 0.76 | |
Oro | 1.00, 0.71, 0.29 | 1.00, 0.86, 0.57 | |
Aluminio | 0.91, 0.92, 0.92 | 0.96, 0.96, 0.97 | |
Plata | 0.95, 0.93, 0.88 | 0.98, 0.97, 0.95 |
Simplificación de material
La simplificación de material se produce cuando un material no coincide con uno de los siguientes límites:
Para el formato de GBuffer combinable, si un material tiene más que un cierre.
Para el formato de GBuffer adaptativo, si un material tiene más cierres por píxel que los ajustes del proyecto o de la plataforma, o si la cantidad de bytes por píxel supera los ajustes del proyecto.
Con estos parámetros en mente, el material se simplifica fusionando los bloques con la mezcla de parámetros hasta que se cumplan los requisitos. Los motivos de simplificación y los detalles son visibles en el panel Substrate (Ventana > Substrate).
En el caso de proyectos o plataformas que usen el formato de GBuffer combinable, el material final se ve obligado a usar una sola función por píxel, lo que corresponde a un modelo de sombreado heredado. Estas funciones son (en orden de prioridad):
Pelusa
Dispersión subsuperficial (con o sin perfil)
Nebulosidad
Si se activan varias funciones a la vez para un píxel determinado, solo se usará la de mayor prioridad. Ten en cuenta que la anisotropía puede activarse independientemente del resto de funciones.
En el material de ejemplo de abajo, el material de Substrate se salía del presupuesto y se ha simplificado en consecuencia al observar el panel de estadísticas de Substrate en el editor de materiales.
Substrate es compatible con varias funciones visuales que se pueden activar para cada bloque (o automáticamente al usar el nodo de expresión SubstrateShadingModel). Estos son los modelos de sombreado:
F90
Pelusa
Efectos SSS (perfil SSS, encapsulado, volumen simple)
Nebulosidad
Anisotropía
Perfil especular
Destellos
Cuando utilizas el formato de GBuffer combinable, algunas funciones no son compatibles. Esto incluye:
F90
SSS de difusión con MFP por píxel
Nebulosidad
Destellos
En este caso, la función no aparecerá en el material. Hay que tener en cuenta que la LUT especular es un efecto compatible, pero aproximado, que solo depende de la vista.
A continuación se muestra una comparación visual de estas funciones entre los dos formatos de GBuffer:
Por motivos de rendimiento, durante la evaluación de la iluminación estas funciones se asignan a conjuntos de complejidad, lo que se corresponde con un coste de evaluación cada vez mayor:
Simple: material iluminado por defecto (difuso coloreado y especular, rugosidad)
Único: color F90, pelusa, efectos SSS (perfil, encapsulado y volumen simple usando MFP), recubrimiento transparente
Complejo: anisotropía, perfil especular, ojo y pelo
Especial complejo: destellos
Nodos de material de Substrate
Puedes usar los siguientes tipos de nodos para crear un material de Substrate:
| Tipo de nodo | Descripción |
|---|---|
Estos nodos representan la mayoría de tipos de superficies, desde materiales simples hasta superficies más complejas, como el pelo, los ojos o el agua. | |
Estos nodos mezclan y superponen múltiples BSDF de bloque de Substrate para crear superficies complejas y variadas. | |
Estos nodos trasladan tipos de materiales comunes para usarlos con Substrate, como al crear una capa revestida o el modelo de sombreado de materiales heredado por defecto de Unreal Engine. | |
Estos nodos definen un dominio de material para un material de Substrate y son directamente análogos a sus homónimos heredados del dominio del material. | |
Estos nodos se usan para realizar conversiones dentro del material, como asignar la transmitancia al recorrido libre medio para un bloque de Substrate. |
Nodos BSDF de Substrate
Los nodos (BSDF) (Función de distribución de dispersión bidireccional, por sus siglas en inglés) de Substrate se usan para representar la mayoría de los tipos de superficie. Controlan el aspecto visual de los materiales que creas y establecen automáticamente su dominio y modelo de sombreado en consecuencia. El objetivo es evitar que estos aspectos se establezcan manualmente en el nodo raíz del material a través del panel Detalles.
Substrate incluye los siguientes nodos BSDF:
Slab BSDF es el nodo principal para la creación en Substrate y se puede superponer con otros bloques. El resto de nodos BSDF son para usos especializados y deben usarse solos sin mezclarlos con otros nodos BSDF.
| Nodo BSDF de Substrate | Descripción |
|---|---|
Substrate Slab BSDF | La representación basada en principios de un bloque de materia que agrega varios componentes: difuso, especular, neblina, pelusa de tela y anisotropía. Puede renderizar efectos como la subsuperficie opaca o la dispersión traslúcida y la dispersión subsuperficial con transmitancia traslúcida. |
Substrate Eye BSDF | Nodo BSDF dedicado a renderizar materiales oculares con Substrate. Esto incluye entradas específicas para la córnea y el iris. |
Substrate Hair BSDF | Nodo BSDF dedicado a renderizar materiales capilares con Substrate. |
Substrate Simple Clear Coat | Permite renderizar de forma sencilla y rápida un material con un recubrimiento superior transparente. Este nodo usa la BSDF de bloque de Substrate en segundo plano, pero simplifica el proceso de trabajo para el renderizado de recubrimiento transparente. Está optimizado para renderizar materiales heredados con recubrimiento transparente. |
Substrate SingleLayerWater BSDF | Una BSDF dedicada al renderizado de un material de agua de una sola capa que se usa principalmente con el sistema de agua. |
Substrate Unlit BSDF | Una BSDF que se usa para renderizar elementos no iluminados con una luminancia emisiva coloreada. Este nodo de Substrate reemplaza la opacidad de la escala de grises heredada con la transmitancia coloreada. Si necesitas mezclar un bloque no iluminado, usa un bloque de Substrate normal que tenga solo la entrada de color emisivo. Puedes usar el operador de ponderación de cobertura. |
Substrate Volumetric-Fog-Cloud BSDF | Una BSDF usada para representar un medio participante. Este nodo se utiliza para renderizar nubes volumétricas y volúmenes heterogéneos. |
Nodos de operador de Substrate
Los nodos de operador de Substrate mezclan o superponen varios bloques de Substrate para crear superficies complejas y variadas. Si el bloque de Substrate representa una pieza de materia, los operadores ofrecen formas de combinar esas piezas.
Puedes elegir entre los siguientes operadores de Substrate:
Los operadores de Substrate no funcionan con todas las BSDF de Substrate. Solo los nodos Substrate Slab BSDF y Substrate Simple Clear Coat pueden usar estos nodos de operador.
| Nodo de operador de Substrate | Descripción |
|---|---|
Substrate Coverage Weight | Este operador toma la entrada de un bloque y controla la cantidad de cobertura que tiene, donde el peso es la cantidad de cobertura. Al reducir el peso, se reduce la cobertura de materia del bloque, lo que significa que verás a través de la materia que hay debajo. El peso es similar a la entrada de opacidad en el nodo raíz del material heredado. Por ejemplo, puede usarse para hacer que las superficies sean traslúcidas cuando se usa un modo de mezcla traslúcido o para reducir la visibilidad de una capa de recubrimiento superior transparente. |
Substrate Horizontal Blend | Este operador recibe entrada de dos bloques: uno de fondo y otro de primer plano. La entrada mixta controla cuánto se mezclan estos dos bloques mediante una interpolación lineal. Esto puede usarse para una transición suave entre bloques sobre una superficie. |
Substrate Vertical Layer | Este operador recibe entrada de dos bloques: una capa superior y otra inferior. El bloque superior se coloca por encima del inferior. El aspecto de la capa inferior depende de las propiedades de la capa superior. Usa la entrada Grosor superior para controlar el grosor de la capa superior sobre la inferior. Este operador es idóneo para crear pinturas para coches, barnices para madera y efectos de humedad sobre una superficie. |
Substrate Add | Este operador toma la entrada de dos bloques y las añade. El material creado no es físicamente plausible porque genera más energía de salida desde la superficie que energía de entrada. Este nodo se debe evitar siempre que sea posible. |
Selección de Substrate | Este operador toma la entrada de dos rutas de materiales de Substrate y selecciona una. Ambos trazados tienen habilitada la mezcla de parámetros para que, al final, solo quede un material del bloque. Se puede usar para seleccionar bloques de forma estocástica con y sin perfiles subsuperficiales por instancia usando ruido azul. Es interesante para el rendimiento, ya que aplica un solo bloqueo como salida, por lo que se evaluará un solo cierre por píxel durante los pases de iluminación. |
Los nodos de operador incluyen una opción para mezclar sus bloques de entrada en uno solo al activar la mezcla de parámetros. Como los operadores de Substrate pueden crear apariencias de materiales complejos mezclando y superponiendo bloques en capas, su coste durante el tiempo de ejecución (principalmente debido a la evaluación de la iluminación) puede afectar considerablemente al rendimiento. La mezcla de parámetros es una optimización que intercambia la precisión visual y una costosa evaluación de la iluminación por rendimiento en tiempo de ejecución y una evaluación de la iluminación menos costosa.
Para obtener más información sobre la optimización de la mezcla de parámetros, consulta la sección Mezcla de parámetros de esta página.
Nodo Substrate Coverage Weight
El nodo de operador Substrate Coverage Weight controla la relación entre dos bloques en una operación de capas verticales. La entrada Peso controla la cobertura de este material cuando se superpone con un operador Substrate Vertical Layer (como en el ejemplo de abajo). También puedes usar el operador para conseguir superficies traslúcidas al usar alfa como cobertura o alfa como opacidad, de forma similar a como el modo de mezcla traslúcido usa la opacidad.
El grafo de arriba usa el nodo de operador Substrate Coverage Weight, donde Peso determina la cantidad de cobertura que se aplica sobre el bloque inferior. Un peso de 1 es totalmente opaco y bloquea el patrón de textura verde. 0.5 es un 50 % transparente, mezcla los colores de los dos materiales y muestra el patrón de textura. 0 es totalmente transparente y solo muestra el patrón de textura verde.
Nodo Substrate Horizontal Layer
El nodo de operador Substrate Horizontal Layer mezcla dos bloques. Uno representa el fondo y la otro el primer plano. La entrada Mezcla controla su proporción de mezcla mediante interpolación lineal.
La entrada Fondo es totalmente visible cuando es 0, y Primer plano es totalmente visible cuando es 1. Cuando la relación de mezcla es de 0.5, los bloques se mezclan y la mezcla se evalúa píxel a píxel. La entrada Mezcla puede usar texturas para controlar las proporciones de la mezcla, como en el ejemplo de abajo.
Nodo Substrate Vertical Layer
El operador Substrate Vertical Layer coloca las capas Bloque superior y Bloque inferior. Este nodo tiene en cuenta el grosor de la capa superior para aplicar la transmitancia y la dispersión físicamente correctas, lo que es similar a una operación de recubrimiento en la que la capa superior cubre a la capa inferior. El aspecto del bloque inferior depende de las propiedades del bloque superior. Si la BSDF que se pasa a la entrada Superior es totalmente opaca, el bloque inferior no se ve en absoluto.
Las capas verticales son particularmente útiles en situaciones que requieren un recubrimiento superior transparente o semitransparente sobre una capa inferior opaca. Por ejemplo, la pintura de coche, las superficies de madera barnizada o la humedad en una superficie, como un charco de agua.
Substrate Add
El nodo de operador Substrate Add combina dos bloques y genera su resultado. Este operador no se considera físicamente plausible porque puede producir un material en el que la energía que sale de la superficie supere a la energía que entra. Es útil cuando la dirección de arte es más importante que ser físicamente verosímil. Sin embargo, si lo que quieres es mantener superficies físicamente precisas, debes evitar este operador.
Nodos Substrate Building Block
Los nodos Substrate Building Block son un conjunto de funciones de materiales que proporcionan traslaciones para algunos casos de uso habituales. Como se trata de funciones de materiales, puedes abrirlas e inspeccionarlas directamente.
Puedes elegir entre los siguientes bloques de creación de Substrate:
| Nodo Substrate Building Block | Descripción |
|---|---|
Substrate Coated Layer | Una función de material que crea un material revestido hecho de dos bloques superpuestos. Expone parámetros fáciles de usar para controlar la interfaz del recubrimiento y la absorción. |
Substrate Standard Surface Opaque | Una función de material que crea un material de Substrate parecido a un supersombreador con una parametrización fácil de usar para superficies opacas. La parametrización utiliza nociones y vocabulario estándar del sector. |
Substrate Standard Surface Translucent | Una función de material que crea un material de Substrate parecido a un supersombreador con una parametrización fácil de usar para superficies traslúcidas. La parametrización utiliza nociones y vocabulario estándar del sector. |
Substrate UE4 Default Shading | Una función de material que replica el modelo de sombreado por defecto con Substrate para la parametrización difusa, metálica y especular usada en materiales que no son de Substrate. |
Substrate UE5 Unlit Shading | Una función de material que recrea el modelo de sombreado No iluminado de UE4 con Substrate. |
Nodos Substrate Extras
Los nodos Substrate Extras especifican el tipo de material y la función que cumple, como ajustar el material de Substrate que se usará como pegatina o función de iluminación. Estos nodos son directamente análogos a los materiales que no son de Substrate que se les asignaron como parte de su dominio del material.
Puedes elegir entre los siguientes nodos Substrate Extras:
Estos nodos son monolíticos y deben usarse de forma aislada. No son compatibles con los operadores de Substrate.
Como buena práctica, recomendamos colocar estos nodos al final del grafo de material, justo antes de conectarlos a la entrada Material frontal.
| Nodo Substrate Extras | Descripción |
|---|---|
Substrate Convert To Decal | Se puede usar cualquier grafo de material como pegatina. Este nodo especifica que el material se convertirá y se usará solo como material de pegatina. |
Substrate Light Function | Este nodo especifica el material que se usará solo como una función de luz. Debe usarse de forma aislada. |
Substrate Post Process | Este nodo especifica que el material se usará solo como un material de posprocesamiento. Debe usarse de forma aislada. |
Substrate UI | Este nodo especifica que el material se usará solo como elemento de la interfaz de usuario, como los que se han diseñado para usarse con UMG UI Designer. Debe usarse de forma aislada. |
Por ejemplo, al usar el nodo Substrate Convert To Decal, cualquier material de Substrate puede usarse como material de pegatina aplicado a las pegatinas de malla y a los actores de pegatina en la escena.
Los nodos Extras establecen automáticamente el dominio del material cuando se conectan a la entrada de material Frontal del nodo raíz del material. Algunos nodos Extras requieren que se cambie el modo de mezcla para que sea compatible con la salida.
Al usar el nodo Substrate Convert To Decal, debes establecer el modo de mezcla en Traslúcido - Transmitancia gris, Transmitancia coloreada, Traslúcido - Transmitancia de color o AlphaComposite (alfa premultiplicado). De lo contrario, se mostrará un error en el panel de Estadísticas del editor de materiales.
Nodos Substrate Helper
Los nodos Substrate Helper son un conjunto de nodos y funciones de materiales para realizar alguna conversión o conseguir algo que sí podrían hacer los materiales heredados.
| Nodo Substrate Helper | Descripción |
|---|---|
Substrate Flip Flop | Controla la reflectividad de la superficie en función del ángulo de incidencia de la vista. Permite la interpolación de un color para la normal (F0) a un color para el ángulo rasante (F90) en función del ángulo de visión y controla la velocidad de interpolación con el parámetro de disminución. |
Substrate Haziness-To-Secondary-Roughness | Calcula una segunda rugosidad del lóbulo especular a partir de la rugosidad y la nebulosidad de la superficie base. Esta parametrización garantiza que la neblina tenga sentido físicamente y sea más fácil de crear perceptualmente. |
Substrate IOR-To-F0 | Convierte un IOR dieléctrico en un valor F0. |
Substrate Metalness-To-DiffuseColorF0 | Convierte una parametrización de metalicidad (Color base/Especular/Metálico) en una parametrización de albedo difuso/F0. |
Substrate Rotation-To-Tangent | Convierte un ángulo de rotación en un vector tangente. |
Substrate Thin-Film | Calcula los parámetros especulares del material resultante F0 y F90 según los parámetros de película fina. |
Substrate Transmittance-To-MeanFreePath | Convierte un color de transmitancia correspondiente a un bloque de los medios participantes vistos perpendicularmente a su superficie en un recorrido libre medio. Este nodo se mapea directamente a la entrada del SSS MFP del BSDF de bloque. |
Substrate View-Dependent-Coverage | Adapta la cobertura en función del ángulo de incidencia de la vista. Este nodo es útil para mezclar una capa cuyo grosor sea lo suficientemente grande como para implicar un efecto dependiente de la vista. Por ejemplo, los granos de polvo grandes tendrían una mayor oclusión en un ángulo rasante que en un ángulo de incidencia. |
Notas adicionales sobre los nodos de Substrate
Materiales de pegatina de Substrate
Actualmente, las pegatinas de Substrate usan las mismas características que el modo de mezcla antiguo de las pegatinas.
Las próximas versiones de las pegatinas de Substrate buscarán ofrecer un conjunto de funciones más robusto, similar a otras funciones ya disponibles con Substrate, como crear capas de bloques traslúcidos para cosas como agua, sangre y babas. Por ejemplo, tener capas que puedan erosionarse según el grosor, como los arañazos de la pintura de coche, los escalones del suelo o las marcas de neumáticos.
Nodo Substrate Shading Models
Abrir cualquier material creado con anterioridad una vez activado Substrate en tu proyecto convierte automáticamente el material para usar sus bloques. Todas las entradas existentes se envían a un nodo Substrate Shading Models.
Evita añadir o usar manualmente este nodo al crear nuevos materiales de Substrate.
Panel Estadísticas de Substrate
El panel Estadísticas de Substrate está disponible en el editor de materiales, debajo del grafo de material.
El panel de Substrate muestra estadísticas sobre el material, la topología, sus funciones y la simplificación.
Mezcla de parámetros con operadores
Usar varias BSDF (funciones de distribución de dispersión bidireccional) por píxel ralentiza el proceso de renderizado de forma proporcional a su recuento en el grafo de material. Evaluar la iluminación de dos BSDF es el doble de lento que uno solo. Esto se aplica tanto a las superficies opacas como a las traslúcidas.
Los nodos de operador incluyen una casilla de verificación Usar mezcla de parámetros que intenta optimizar el rendimiento y el espacio de memoria del material a la vez que mantiene la apariencia de todas las operaciones de mezcla y capas en el grafo. Solo el nodo de operador situado más a la derecha, antes del nodo raíz del material, debe tener el ajuste activado. El resto de nodos del grafo aplican automáticamente la mezcla de parámetros.
La mezcla de parámetros es una buena opción de reserva cuando el rendimiento de varios bloques en un material es un problema. Si esta opción está habilitada, dos bloques se fusionan en uno solo que únicamente necesita una evaluación de iluminación. Esta fusión usa mucha menos memoria que dos bloques individuales.
Los materiales de ejemplo que aparecen a continuación se han extraído de Ejemplos de contenido - Nivel de Substrate con la opción Usar mezcla de parámetros activada y desactivada.
Este material (M_Substrate_ShaderBall_IceRocks) usa dos BSDF. El izquierdo no tiene mezcla y el derecho usa la mezcla de parámetros.
Se trata de un material más complejo (M_Substrate_ShaderBall_AnisoOverSSS) que mezcla cuatro bloques usando dos operadores de capa vertical y un único operador de peso de cobertura. El material tiene un coste de memoria de 108 bytes por píxel. Con la opción Usar mezcla de parámetros activada, la mezcla en todos los operadores se reduce a 28 bytes por píxel. El material de la izquierda no tiene mezcla y el de la derecha usa la mezcla de parámetros.
Además de la mezcla de parámetros en los nodos de operador, puedes usar uno de los siguientes procesos de trabajo para conseguir resultados similares:
Mezcla manualmente en el grafo Albedo difuso, F0, F90, Rugosidad y otros atributos. Pasa todos los atributos a un solo bloque conectado a la entrada Material frontal. Este enfoque puede funcionar bien para casos aislados, pero puede resultar inmanejable para una gran biblioteca de materiales complejos.
Usa el proceso de trabajo de materiales por capas basado en grafos. Dado que emplea funciones de materiales para reutilizar el trabajo, esta opción se puede escalar mejor que la primera.
En las plataformas de gama baja, como los móviles, el compilador habilita automáticamente la mezcla de parámetros en aras del rendimiento. En las plataformas intermedias, la mezcla de parámetros se introduce progresivamente en las capas inferiores de un material para mantenerse dentro de los límites de memoria y rendimiento objetivo.
Metalicidad y respuesta especular
La parametrización que usa Substrate difiere de la del modelo de sombreado DefaultLit en los materiales que no son de Substrate (o heredados): ya no hay una entrada Metálico. Esta parametrización intenta acabar con los valores abstractos (como el metálico y el especular) y pasa a usar propiedades físicas con unidades del mundo real.
Las propiedades reflectantes y la respuesta especular de los materiales de Substrate se definen con tres atributos: Albedo difuso, F0 y F90. Substrate aplica el ahorro de energía automáticamente, asegurando que la interfaz especular y el medio no añadan energía. Por tanto, cuanto mayor sea F0, menos visible será la contribución difusa.
La metalicidad se emula con el nodo Helper Substrate Metalness-To-DiffuseAlbedo-F0. Toma valores Color base, Especular y Metálico como entradas y los convierte en valores que mapean a Albedo difuso y F0 en el bloque de Substrate.
Es posible conseguir una amplia variedad de respuestas especulares y difusas de materiales complejos a la luz con las entradas Color de borde o F90. Por ejemplo, una esfera roja con reflejos especulares perpendiculares a la tangente de cian a amarillo.
Los nodos Helper Substrate FlipFlop son útiles para lograr una coloración especular basada en normales. Controla el color especular de F0 y F90 en función de NoV con una transición de disminución ajustable.
Refracción rugosa
Substrate admite la refracción rugosa a través de objetos traslúcidos y materiales opacos en capas con una capa superior traslúcida. El desenfoque del fondo de la escena, así como la distancia al objeto refractado, se calcula a partir de la rugosidad del material principal cuando usas la distorsión o la refracción, así como la distancia al objeto refractado.
Refracción rugosa traslúcida
Para crear un material traslúcido con una refracción rugosa, establece las siguientes propiedades en el panel Detalles.
Modo de modo de mezcla: Traslúcido - Transmitancia coloreada, Traslúcido - Transmitancia gris o Solo transmitancia coloreada.
Método de refracción: Índice de refracción (IOR), Desfase de la normal de píxel o Desfase 2D.
Pasa valores a Refracción, Rugosidad y SSS MFP. El grafo siguiente produce un resultado de cristal esmerilado simplista cuando la rugosidad es mayor que 0. Un valor alto de SSS MFP se usa para crear un material totalmente transparente, mientras que el IOR de 1.514 se aproxima al del cristal.
En los ejemplos de abajo, a medida que aumenta el valor de la rugosidad (0, 0.2 y 0.6 de izquierda a derecha), los objetos detrás del cristal se vuelven más borrosos.
El desenfoque producido por la refracción rugosa usa una aproximación para tener en cuenta la profundidad detrás de los elementos traslúcidos de la escena.
Refracción rugosa opaca
Las capas de recubrimiento de del Substrate pueden desenfocar las capas que hay debajo en función de la rugosidad y el grosor de la capa de recubrimiento superior. Este tipo de refracción es más costoso para el rendimiento y debe estar activa para el proyecto en Configuración del proyecto en la categoría Motor > Renderizado. Marca la casilla de Refracción rugosa del material opaco de Substrate para habilitar esta función.
El siguiente grafo muestra un ejemplo usando la refracción rugosa de un material opaco con un material en capas verticales y un recubrimiento transparente sobre un tablero de ajedrez opaco.
Los parámetros Rugosidad y Grosor determinan la intensidad del desenfoque que se aplica a la capa de material inferior. Al aumentar cualquiera de los dos valores, aumenta el grado de desenfoque de la refracción.
Puedes verlo en los ejemplos de abajo, donde la capa superior del recubrimiento transparente superior de la izquierda tiene una rugosidad y un grosor de 0.1. El ejemplo de la derecha tiene una rugosidad de 0.8 y un grosor de 6, lo que hace que la capa inferior quede desenfocada.
Grosor de capas de Substrate
El grosor de la capa inferior está fijado implícitamente en 0.01 centímetros.
Para superficies opacas (superficies que impiden ver a través de ellas), este grosor no es relevante.
Para superficies traslúcidas (superficies que permiten ver a través de ellas), puedes usar el nodo Transmittance to MFP, donde se expresa la transmitancia deseada para un grosor dado.
Para superficies finas (superficies que tienen cierto grosor pero son demasiado finas para modelarse con geometría), puedes activar la opción Es superficie fina del material. El grosor de la capa inferior se especifica en el nodo raíz.
Anulación de instancias de material de Substrate
Es posible anular ciertas propiedades de materiales en una instancia de material (modelo de sombreado, perfiles especulares, etc.). Estas anulaciones tienen algunas limitaciones:
La anulación del modelo de sombreado solo está disponible si el material contiene únicamente nodos de SubstrateShadingModel. Si el material contiene bloques, la opción de anulación no estará disponible.
La anulación del perfil especular solo está disponible si un bloque contiene un perfil especular. Si se proporciona una anulación, esta anulará los perfiles especulares de todos los bloques (si los hay).
Dispersión subsuperficial y medios participantes
Un bloque de Substrate contiene medios participantes y puede usarse para simular varios aspectos volumétricos.
Por ejemplo, si renderizas solo un material opaco, cuando un bloque está en la parte inferior de la topología del material, se tiene en cuenta para la dispersión subsuperficial. Hay dos cosas a tener en cuenta:
Si se asigna un perfil subsuperficial a un bloque en el panel Detalles del material, el perfil se usa por píxel. Recuerda que los perfiles subsuperficiales no son interpolables.
Si no se ha asignado ningún perfil subsuperficial, la dispersión se determina a partir de las propiedades Albedo difuso y SSS MFP del bloque. Estas propiedades son interpolables.
El MFP (o recorrido libre medio) de la dispersión subsuperficial es la distancia (en centímetros) que atraviesan distintas longitudes de onda de luz a través de un medio antes de encontrar una colisión. El siguiente ejemplo muestra un albedo difuso (de color blanco) y un SSS MFP (de color rojo) con una escala de 0 a 1, de izquierda a derecha.
Cualquier bloque que no esté en la parte inferior de un material opaco o que se use en uno traslúcido se tendrá en cuenta para una representación volumétrica, que también se basa en los atributos Albedo difuso y SSS MFP. El atributo Albedo difuso representa el color base del medio y tiene en cuenta la dispersión única y múltiple.
El atributo SSS MFP es una forma de controlar la transmitancia del medio para una vista perpendicular a una superficie. Representa lo visible que es la superficie inferior. El atributo Color difuso representa la cantidad de dispersión de la luz, respetando también la distancia del MFP.
Ejemplos de un material con un color de transmitancia que va del negro al azul de izquierda a derecha, y un albedo difuso que va del negro al blanco de abajo arriba.
Superponer verticalmente un bloque sobre otro es similar a una operación de recubrimiento. La visibilidad del bloque inferior depende de la transmitancia del bloque superior. Es posible reducir la cobertura del bloque superior (como en el borde de un charco de agua sobre una superficie) para que desaparezca progresivamente. Puedes conseguirlo usando un nodo de operador de Coverage Weight, que es algo parecido a la mezcla alfa.
Ejemplos de un material con un intervalo de transmitancia que va del negro al azul de izquierda a derecha y un intervalo de cobertura que va de 0 a 1 de abajo arriba.
Para conseguir una transmitancia o un color de dispersión específicos, debes usar el nodo Helper Substrate Transmittance-To-MeanFreePath. El MFP se deriva para que Color de transmitancia coincida con la incidencia normal, es decir, cuando la superficie se ve perpendicularmente, a lo largo de la normal.
El siguiente ejemplo muestra una superficie azul que se dispersa sobre un material opaco de color rosa en el que SSS MFP se deriva de Color de transmitancia.
Recomendación de creación:
El recorrido libre medio (MFP) representa el mismo comportamiento de la luz para materiales traslúcidos u opacos con dispersión subsuperficial: el recorrido medio dentro de un medio antes de que la luz interactúe con la materia, ya sea absorbida o dispersada. Pero puede ser interesante crearlo de forma distinta para diferentes casos de uso.
Para superficies traslúcidas (transparentes), no se recomienda controlar directamente el MFP al intentar conseguir un color de transmitancia concreto, ya que el MFP no es un color, sino una medida del transporte de luz. En su lugar, se recomienda usar el nodo Transmittance-To-MeanFreePath.
En el caso de superficies con dispersión de Subsurface (ópticamente gruesa, opaca), el MFP se puede crear directamente. En este caso, representa aproximadamente la distancia en centímetros a la que se dispersará la luz para cada uno de sus componentes.
Cobertura y transmitancia
La cobertura define la presencia de material y puede considerarse como una máscara que define dónde y cuánto está presente el material.
0 significa que no hay cobertura: la capa no es visible.
1 significa cobertura total: la capa cubre la superficie por completo.
Los materiales se pueden mezclar ajustando su cobertura. En Substrate, la cobertura se controla con el nodo Coverage Weight.
La transmitancia define cómo interactúa la luz con el material: cuánta luz lo atraviesa.
0 significa que no se transmite luz: el material es totalmente opaco.
1 significa que la luz se transmite por completo: el material no absorbe luz y puedes ver a través de él.
En Substrate, la entrada MeanFreePath del bloque controla la transmitancia. El recorrido libre medio (MFP) define la distancia media a la que un rayo de luz interactúa con la materia.
Si el valor de MFP es 0, los rayos de luz siempre inciden en la materia y no la atraviesan. Esto es equivalente a una transmitancia de 0.
En un MFP infinito, un rayo de luz nunca incide en la materia y, por lo tanto, la atraviesa. Esto equivale a una transmitancia de 1.
Para facilitar la tarea, se proporciona un nodo Transmittance-To-MFP que traslada un color de transmitancia concreto conseguido a una profundidad concreta en un recorrido libre medio.
La cobertura solo tendrá un impacto de «escala de grises» en la apariencia del material (se verá menos o más del material). Por otro lado, la transmitancia puede cambiar el color de la luz transmitida en función de su valor en el MFP. Ciertos colores se absorberán mientras que otros se transmitirán, creando una transmisión coloreada. Para ello, el modo de mezcla debe establecerse en Traslúcido - Transmitancia coloreada. Por motivos de rendimiento, podrías querer recurrir a la transmisión de grises con Traslúcido - Transmitancia gris.
Traslucidez y modos de mezcla
Substrate ofrece opciones más robustas para el sombreado de superficie traslúcido de lo que es posible con los materiales tradicionales que no son Substrate. La lista de modos de mezcla de Substrate ahora tiene más sentido al considerar que una superficie está compuesta de materia (un bloque de Substrate).
Para crear un material translúcido:
Elige un modo de mezcla que admita translucidez.
Traslúcido - Transmitancia coloreada
Traslúcido - Transmitancia gris
Solo transmitancia coloreada
Con el nodo raíz del material seleccionado, usa el panel Detalles para seleccionar un modo de iluminación. Elige entre:
Forward Shading de superficie
Volumen de traslucidez de la superficie: esta opción admite reflejos en la superficie.
Volumétrica no direccional: es más económico, pero no refleja la luz.
A continuación se muestra un ejemplo de configuración de un material traslúcido de Substrate. Su modo de mezcla está establecido en Traslúcido - Transmitancia coloreada y usa el modo de iluminación Forward Shading de superficie. Usa un solo bloque que pasa a la entrada Material frontal del nodo raíz del material para producir un material traslúcido que parece opaco.
Usando el nodo de operador Substrate Coverage Weight entre la entrada del boque y el material frontal, se controla la transmitancia del material. Usa la entrada Peso del nodo Substrate Coverage Weight para controlar la transparencia del material.
Puedes usar un valor constante de 0 a 1 para controlar la opacidad de todo el material (como arriba) o usar una textura (como abajo) para controlar partes del material.
Puedes ir un paso más allá para crear un bloque de materia que parezca cristal coloreado especificando el MFP del medio participante. Esto se configura con el nodo Helper Transmittance-To-MeanFreePath, como en el ejemplo de abajo, usando un color de transmitancia naranja conectado a SSS MFP para teñir de naranja el material solo en las regiones donde transmite luz. El color de transmitancia especificado es el color objetivo, que se alcanza con la entrada de grosor indicada (el valor predeterminado es 0.01 centímetros).
Notas adicionales sobre la translucidez de Substrate
Los materiales traslúcidos no son compatibles con la dispersión subsuperficial de espacio de pantalla, aunque el bloque se considere un volumen del medio participante.
Rendimiento de Substrate
Descripción general de los costes de rendimiento:
Al usar un solo nodo SubstrateShadingModel o las entradas heredadas, el coste total debería ser similar al del modelo heredado. La pasada base, pasada de iluminación y otras deberían costar más o menos lo mismo.
Al usar un solo bloque con varias funciones, como usar varias funciones a la vez, funciones avanzadas como los reflejos o cuando se usan varios bloques dentro de un material, el coste de fotogramas empieza a aumentar.
Cuando se usan varios bloques sin una mezcla de parámetros, el segunda bloque será más caro y los siguientes aumentarán el coste casi de forma lineal.
Substrate usa una pasada de clasificación de materiales después de la pasada base para ayudar a que la pasada de iluminación funcione de forma más eficiente. Esto añade una pequeña sobrecarga fija después de la pasada base, pero ayuda a reducir el coste de iluminación en general. Puedes usar el modo de vista de depuración para entender el coste:
El recuento de materiales muestra el número de cierres ejecutados por píxel y visualiza lo que es potencialmente más costoso.
La clasificación de materiales muestra la complejidad de la iluminación en píxeles o teselas que se ejecutará.
Modos de visualización de depuración de Substrate
Al usar Substrate, es útil ver cómo se están comportando tus materiales y cuáles se beneficiarían de más atención. Los modos de visualización de depuración de Substrate se encuentran en la lista desplegable Modos de visualización, en la categoría Substrate.
Substrate incluye los siguientes modos de visualización para la depuración:
Haz clic en las imágenes de la tabla para ampliarlas.
| Debug Visualización | Nombre de visualización de depuración | Descripción |
|---|---|---|
Propiedades de materiales | Visualiza las propiedades de Substrate al pasar el cursor del ratón por encima. Pasa el ratón sobre los píxeles que quieras inspeccionar y verás el material empaquetado final que se usa para la iluminación, como propiedades, peso de color, funciones activadas del material, bytes usados y mucho más. | |
Recuento de materiales | Visualiza el recuento de materiales de Substrate por píxel y coloréalos según el número de nodos BSDF que estén usando. | |
Recuento de bytes de material | Visualiza la huella del material de Substrate por píxel. Los materiales están codificados por colores según el número de bytes que usan. También puedes pasar el cursor sobre un material para ver los bytes por píxel del material. | |
Información de Substrate | Este modo resume información sobre el uso de Substrate en el proyecto, incluida información sobre el uso máximo de memoria, el número máximo de bytes por píxel (que es útil para ajustar umbrales de simplificación) y las funciones de Substrate habilitadas. | |
| Modos de visualización avanzada de Substrate | ||
Propiedades avanzadas de los materiales | Aporta información sobre los distintos bloques de Substrate que componen el material que está bajo el cursor del ratón. Cada bloque se presenta por separado en pantalla. Este modo de visualización debe estar activado en la Configuración del proyecto, en la categoría Motor > Renderizado, con la casilla de verificación Sombreadores de visualización avanzada de Substrate marcada. | |
Clasificación del material | Este modo muestra la complejidad del material por tesela y devuelve un resultado codificado por colores:
| |
Clasificación de refracción rugosa | Este modo muestra materiales que usan la propiedad de refracción rugosa opaca. Este modo también distingue entre materiales de Substrate que tienen activada o desactivada la dispersión subsuperficial. Las teselas que se muestran en algunos de estos modos de visualización se usan para ejecutar pasadas de posiluminación optimizadas más adelante. Pueden ser útiles para optimizar tus materiales de Substrate al reducir el número de bloques usados y de funciones activas, así como para usar la mezcla de parámetros en los operadores. Si un material está compuesto por varios materiales mezclados y colocados en capas, pero solo un bloque es visible (debido al enmascaramiento dinámico o al bajo valor de transmitancia) para un pixel dado, los bloques no visibles no se muestran (o se optimizan) en la visualización. |
Limitaciones y problemas conocidos
Substrate es una función beta, por lo que recomendamos no usarla en ningún trabajo de producción.
Las pruebas y el soporte de la plataforma aún están incompletos. A medida que pase a estados listos para producción, se llevarán a cabo más pruebas.
Las funciones y la experiencia de usuario están sujetas a cambios, por lo que es posible que los recursos existentes se comporten de forma distinta o se invaliden por completo.
Tiene soporte beta para Path Tracer.
Algunas plataformas y rutas de renderizado, como DirectX 11 (DX11) y Mac, presentan problemas y es posible que no funcionen del todo.
Al usar GBuffer adaptativo:
El tiempo de cook (tiempo de compilación del sombreador) aumentará en comparación con el uso de GBuffer combinable, incluso con materiales sencillos. Esto se debe a que GBuffer adaptativo requiere más procesamiento y tiene pasos de codificación y descodificación más complejos.
El rendimiento del tiempo de ejecución sufrirá una regresión en comparación con la regresión de GBuffer combinable exactamente para el mismo proyecto. Esto se debe principalmente a los pasos de codificación y decodificación y a una evaluación en tiempo de ejecución más compleja.
Recursos adicionales
The State of Unreal - Transmisión en directo — Marca de tiempo: 02:29:42
El proyecto de muestra Ejemplos de contenido incluye un nivel llamado «SubstrateMaterials» donde puedes explorar distintos ejemplos y demostraciones sobre cómo funcionan los materiales de Substrate.
Para usar Substrate con el proyecto de ejemplos de contenido debes activar Substrate para el proyecto. Solo se ha validado este mapa para su uso con Substrate activado. Si vas a usar una única instancia del proyecto de ejemplos de contenido, te recomendamos que actives Substrate únicamente para este nivel y que lo desactives cada vez que uses el resto del proyecto.