Substrate é a abordagem da Unreal Engine 5 para a criação de materiais que substitui o suíte fixo de modelos de sombreamento e modos de mesclagem, como a Iluminação padrão e o Revestimento Transparente, com um framework mais expressivo e modular.
Certas abstrações do sistema de materiais não Substrate (ou legado) são eliminadas pelo Substrate , que as substitui por propriedades medidas de matéria. Isso cria um espaço de parâmetros mais amplo para trabalhar e possibilita uma mesclagem mais precisa entre tipos de superfície discretos, como metal, vidro e plástico. O Substrate também simplifica o processo de sobreposição de materiais, facilitando a representação de superfícies como líquido sobre metal ou um verniz sobre um material com dispersão subsuperficial.
Os materiais no Substrate são conceituados como "slabs de matéria". Esses slabs são uma representação de BSDF (função de distribuição bidirecional de espalhamento) com base em princípios físicos, parametrizada por grandezas físicas com unidades bem definidas. Os materiais são expressos como um gráfico de slabs nos quais as operações são realizadas (como mistura e sobreposição). Por causa da sua representação com base em princípios físicos, os Materiais Substrate podem ser simplificados de acordo com a capacidade da plataforma de forma a sacrificar a qualidade visual em prol do desempenho.
Como habilitar o Substrate
Para habilitar Materiais Substrate no seu projeto:
Abra Configurações do Projeto e acesse Engine > Renderização.
Na seção Substrate, habilite Materiais Substrate (Experimental).
Siga os prompts e as mensagens para Reiniciar o projeto.
Recomendamos usar o DirectX 12 (DX12) no Windows. O Substrate funciona com o DirectX 11 (DX11), mas apresenta vários problemas e requer mais testes. Para obter mais informações, consulte a seção Limitações e problemas conhecidos nesta página.
Configurações de projeto e variáveis de console opcionais
O Substrate inclui as seguintes configurações de projeto e variáveis de console opcionais:
| Propriedade | Descrição |
|---|---|
| Configurações de projeto | |
Reflexo opaco de material opaco do Substrate | Quando habilitada, as superfícies opacas que revestem outros materiais podem desfocar as camadas inferiores de uma maneira fisicamente plausível. Essa funcionalidade é experimental. |
Shaders de visualização avançada do Substrate | Habilitar essa opção gera shaders necessários para os modos de visualização de depuração avançada. Esses shaders podem afetar o desempenho e somente devem ser habilitados se você precisar depurar a topologia do material Substrate. Para obter mais informações, confira Modos de visualização de depuração do Substrate. |
| Variáveis de console | |
| Fornece um meio de especificar o armazenamento em bytes por pixel de um material Substrate antes que ele seja automaticamente simplificado. Essa variável está definida como 80 bytes por pixel por padrão. É possível aumentá-la para materiais complexos com maiores requisitos de armazenamento. Valores mais altos usam mais memória, podendo afetar a largura de banda da memória e outras características de desempenho. A relação dessa variável com o desempenho depende muito do conteúdo e da plataforma. Se necessário, você pode especificar esse valor para cada plataforma no arquivo de configuração platform.ini. |
Como converter materiais legados
Materiais Substrate não podem ser revertidos a Materiais não Substrate. As conversões são permanentes depois de abertas e salvas. Recomendamos que você salve uma cópia de backup do projeto antes de habilitar o Substrate.
Os materiais existentes são convertidos automaticamente em um Material Substrate ao serem abertos para edição em um projeto habilitado para Substrate. Eles são convertidos em uma rede de sombreamento ao estilo do Substrate usando o nó Modelos de Sombreamento Substrate.
O exemplo acima mostra um material "legado" que foi aberto com o Substrate habilitado para o projeto, bem como o gráfico de material resultante com nós agora conectados ao nó Modelos de Sombreamento do Substrate.
Siga estas orientações ao habilitar o Substrate em um projeto existente:
Ao abrir um material não-Substrate existente em um projeto com Substrate habilitado, ele é convertido automaticamente em um material Substrate "legado" quando você salva o material. A conversão é permanente e não pode ser revertida para um material não Substrate.
Os materiais Substrate renderizarão em preto se o Substrate estiver desabilitado para o projeto. Isso inclui materiais Substrate legados que foram criados a partir de materiais convertidos. Você pode reconectar manualmente qualquer material Substrate convertido em um material com estilo legado, mas isso não removerá os nós Substrate que agora estão no gráfico de material.
Relação do Substrate com camadas de material
A Sobreposição de material tradicional na Unreal Engine (tanto com base em gráficos quanto na GUI de camadas personalizadas) se baseia no conceito de mesclagem de parâmetros. Cada camada define um gráfico de padrões de parâmetros que são mesclados e inseridos no modelo de sombreamento final.
Nada impede que parâmetros orientados por camadas de material sejam inseridos em um modelo de sombreamento definido pelo Substrate. No entanto, você precisaria definir essa lógica manualmente usando a saída de um nó de Atributo de Material no material pai. Uma limitação dessa abordagem é que o sistema de Atributos de Material tem uma lista fixa de parâmetros, mas pode não haver espaços suficientes para inserção em uma configuração de vários slabs com o Substrate, o que pode exigir o uso de pins de maneira arbitrária e não relacionada ao seu significado real.
O Substrate pode usar a mesclagem de parâmetros de forma nativa, conforme descrito mais adiante nesta página, mas não há uma maneira de acessar essa funcionalidade pela interface de Camadas de Material. A unificação do Substrate e de Camadas de Material é uma área de grande interesse para desenvolvimento futuro.
Como trabalhar com materiais Substrate
Os materiais Substrate são criados de forma semelhante aos materiais legados. Esta seção aborda os elementos-chave que compõem os materiais Substrate, incluindo seus nós, modos de mesclagem e detalhes sobre os tipos de materiais que você pode criar.
Nó Raiz de Material Substrate
Como os materiais legados, o nó Raiz de Material é onde os slabs Substrate e outros nós Substrate, como operadores e blocos de construção, são inseridos.
Além disso, como nos materiais legados, você usará o painel Detalhes quando o nó Raiz de Material estiver selecionado para definir o Modo de Mesclagem e outras propriedades que definem a aparência do material.
Todos os gráficos de material Substrate devem estar conectados à entrada Material Frontal no nó raiz do material. Esta entrada é o ponto final de todos os gráficos Substrate.
Modos de mesclagem do Substrate
O Substrate usa um conjunto próprio de Modos de Mesclagem para definir como a cor do material é mesclada com o plano de fundo. Os modos de mesclagem de materiais legados têm limitações na forma como podem se mesclar uns com os outros, limitando os tipos de materiais que podem ser criados. O Substrate oferece uma seleção mais ampla de modos de mesclagem que podem ser combinados para criar todos os tipos de materiais. Isso é especialmente importante para obter o sombreamento correto de superfícies translúcidas.
O Substrate inclui os seguintes modos de mesclagem:
| Modo de mesclagem | Descrição |
|---|---|
Opaco | Define uma superfície através da qual a luz não passa nem penetra. Uma superfície opaca com cobertura de 1. É igual ao Modo de mesclagem Opaco legado. |
Com máscara | Usado para materiais que precisam controlar seletivamente a visibilidade de forma binária (ativada/desativada). Uma superfície opaca com cobertura de 1 ou 0. É igual ao Modo de mesclagem Com máscara legado. |
TranslucentGreyTransmittance | Um material translúcido com superfície e cobertura coloridas, mas com transmitância reduzida à escala de cinza. Isso é mais rápido, pois evita a renderização extra da translucidez pós-profundidade de campo em uma etapa de modulação. Esse é o modo de mesclagem de reserva para plataformas não compatíveis com translucidez colorida por hardware (chamada de mesclagem de cores de dupla origem). É semelhante ao Modo de mesclagem Translúcido legado. |
Aditivo | Adiciona a cor do material à cor do plano de fundo, em que Cor final = Cor de origem + Cor de destino. |
ColoredTranslucencyOnly | Apenas a transmitância do material é usada. As interações de superfície são reduzidas a 0. É igual ao Modo de mesclagem Multiplicar legado. |
AlphaComposite (alfa pré-multiplicado) | Esse modo de mesclagem oferece um controle mais preciso sobre quais partes de um material são mescladas de forma aditiva e quais partes são mescladas de forma translúcida usando a entrada de opacidade. Funciona da mesma forma que o modo de mesclagem Composição alfa legada (Alfa pré-multiplicado). |
AlphaHoldout | Este modo de mesclagem mantém o alfa, permitindo criar um buraco nos objetos para revelar os objetos atrás deles. Funciona da mesma forma que o modo de mesclagem AlphaHoldout legado. |
TranslucentColoredTransmittance | Um material translúcido completo com superfície, cobertura e transmitância coloridas. É mais caro quando se usa translucidez separada ao aplicar pós-profundidade de campo, pois será necessário renderizar o componente de transmitância em um buffer separado, de forma semelhante ao modelo de sombreamento ThinTranslucent legado. |
O Substrate torna o trabalho com translucidez mais simples do que os materiais tradicionais. Os modos de mesclagem translúcidos são melhor definidos por sua intenção. Um aspecto que permanece inalterado entre os dois é que qualquer modo de mesclagem translúcido também deve definir um Modo de Iluminação para definir como a iluminação é calculada para sua superfície. Isso é importante para obter a aparência correta de materiais translúcidos.
A grande maioria dos materiais translúcidos que você criar usará Volume de Translucidez de Superfície ou Sombreamento Direto de Superfície.
Os seguintes modos de iluminação estão disponíveis para você escolher:
| Modos de iluminação | Descrição |
|---|---|
Não Direcional Volumétrico | A iluminação é calculada para um volume sem direcionalidade. Use isso em efeitos de partículas como fumaça e poeira. Esse é o método de iluminação por pixel mais barato. No entanto, a normal do material não é levada em consideração. |
Direcional Volumétrico | A iluminação é calculada para um volume com direcionalidade, de modo que a normal do material seja levada em consideração. Observe que como o espaço de tangente de partículas padrão está voltado para a câmera, você deve habilitar Gerar Partículas Esféricas para obter um espaço de tangente mais útil. |
Não Direcional por Vértice Volumétrico | Igual a Não Direcional Volumétrico, mas a iluminação é avaliada apenas nos vértices, de modo que o custo do shader de pixels é significativamente menor. Observe que a iluminação ainda vem de uma textura de volume e, portanto, seu alcance é limitado. Luzes direcionais tornam-se sem sombra à distância. |
Direcional por Vértice Volumétrico | Igual a Direcional Volumétrico, mas a iluminação é avaliada apenas nos vértices, de modo que o custo do shader de pixels é significativamente menor. Observe que a iluminação ainda vem de uma textura de volume e, portanto, seu alcance é limitado. Luzes direcionais tornam-se sem sombra à distância. |
Volume de Translucidez da Superfície | A iluminação é calculada para uma superfície. Como a luz é acumulada em um volume, o resultado fica desfocado e tem uma distância limitada, mas o custo por pixel é muito baixo. Use isso em superfícies translúcidas como vidro e água. Apenas há suporte para iluminação difusa. |
Sombreamento Direto de Superfície | A iluminação é calculada para uma superfície. Use isso em superfícies translúcidas como vidro e água. Implementado com sombreamento direto para que os destaques especulares das luzes locais sejam suportados. No entanto, muitas funcionalidades somente diferidas não são. Este é o método de iluminação de translucidez mais caro, já que a contribuição de cada luz é calculada por pixel. |
Para obter alguns exemplos sobre como configurar e usar a translucidez em um material Substrate, confira a seção Translucidez desta página.
Slab Substrate
O Slab Substrate é o bloco de construção elementar usado para montar um material Substrate. Ele foi projetado para ser o conjunto de parâmetros mínimo necessário com o qual a grande maioria das aparências de materiais pode ser obtida. Como tal, é a base de um tipo de criação de aparência muito mais expressivo.
Um slab é uma representação com base em princípios físicos de um bloco de matéria que é formado por uma interface e um meio.
Composição de um slab Substrate : a interface (1) e o meio (2).
A interface é o limite onde a luz interage com a superfície do material. As propriedades da interface são definidas principalmente pelos valores de Rugosidade, Normal, Albedo Difuso, F0 e F90 informados.
O meio é o volume de matéria abaixo da interface onde a luz é espalhada, transmitida e absorvida. As propriedades do meio são definidas principalmente pelas entradas de Caminho Livre Médio (ou MFP).
O Slab Substrate é um substituto modular do nó Raiz de Material monolítico em materiais não Substrate. Ele é formado por vários atributos de superfície , como Difuso, Especular, Rugosidade, Emissivo, Tecido e Anisotropia, entre outros. Todos os nós BSDF do Substrate contêm propriedades relevantes à saída nomeada de acordo com o tipo de material que produzem, como olho, cabelo, verniz simples e assim por diante.
Os materiais tradicionais dependiam de seus respectivos modos de mesclagem para apresentar entradas que pudessem ser usadas. O Substrate usa diferentes slabs BSDF para definir o tipo de material. E, como eles não estão mais vinculados diretamente aos modos de mesclagem, podem ser sobrepostos e combinados para produzir vários tipos de materiais.
O nó principal Slab Substrate BSDF usado inclui as seguintes entradas:
| Entradas do Slab Substrate | Definição |
|---|---|
Albedo Difuso | Define a porcentagem de luz refletida como difusa a partir de uma superfície. É semelhante à cor base local do meio. O valor padrão é 0,18. |
F0 | Define a cor e o brilho do reflexo especular quando a superfície está perpendicular à câmera. Para materiais dielétricos (plásticos e outros não metais), esse valor geralmente está no intervalo de 0 a 0,08. Para materiais metálicos, o intervalo pode chegar a 1. Pedras preciosas estão em um intervalo aproximado de até 0,16. |
F90 | Define a cor do realce especular onde a normal da superfície está a 90 graus da câmera. Em outras palavras, em ângulos rasos em relação à vista da câmera. Apenas o matiz e a saturação são percebidos, pois o brilho está fixo em 1,0. Isso desaparece para o preto quando F0 cai abaixo de 0,02. |
Rugosidade | Controla o grau de rugosidade do material. A rugosidade da superfície de 0 a 1. Em 0 (suave), a rugosidade é um reflexo de espelho. Em 1 (totalmente áspera), a rugosidade fica completamente fosca ou difusa. Quando a anisotropia é usada, o valor de rugosidade é usado ao longo do eixo tangente. |
Anisotropia | Controla a direção da anisotropia do material (-1: o realce está alinhado com a bitangente, 1: o realce está alinhado com a tangente). |
Normal | Usa a normal da superfície como entrada. A normal é considerada tangente ou espaço do mundo de acordo com as propriedades do espaço no nó raiz de material. Essa entrada define a normal de sombreamento por pixel. |
Tangente | Usa uma tangente de superfície como entrada. A normal é considerada tangente ou espaço do mundo de acordo com as propriedades do espaço no nó Raiz de Material. Essa entrada define a tangente de sombreamento por pixel. |
MFP de SSS | Caminho Livre Médio (MFP) da dispersão subsuperficial. Controla a densidade do material e influencia a absorção e dispersão de luz pelo material. Mais precisamente, define a distância média na qual um fóton interage com uma partícula de matéria. Essa distância é controlada por canal de cor. Essa entrada é usada somente quando não há um ativo de Perfil de Subsuperfície atribuído ao nó Raiz de Material. |
Escala de MFP SSS | Essa entrada escala o raio livre médio de caminho de dispersão de subsuperfície do perfil de subsuperfície para um valor entre 0 e 1. Essa entrada é usada somente quando não há um ativo de Perfil de Subsuperfície atribuído ao nó Raiz de Material. |
Anisotropia de fase SSS | Valores positivos alongam a função de fase ao longo da direção da luz, causando dispersão para a frente. Valores negativos alongam a função em sentido invertido na direção da luz, causando retrodispersão. |
Cor emissiva | Controla a cor emissiva sobre superfícies de material. |
Segunda rugosidade | Controla a rugosidade de um lóbulo especular secundário. Em 0 (suave), a rugosidade é um reflexo de espelho. Em 1 (totalmente áspera), a rugosidade fica completamente fosca ou difusa. Essa entrada não afeta a rugosidade difusa. |
Peso da segunda rugosidade | O fator de combinação entre os lóbulos especular primário e secundário. O primeiro especular que usa Rugosidade tem um peso de (1 - SecondRoughnessWeight). Valores iguais a 0 renderizam apenas o lóbulo primário. 0,5 renderiza uma combinação de 50% das duas rugosidades, enquanto 1,0 renderiza apenas o lóbulo secundário. |
Rugosidade da penugem | Controla a rugosidade da camada de penugem. A penugem com uma rugosidade de 0 é suave (mais brilhante) e com 1, é totalmente áspera (fosca). Se nenhum valor estiver conectado a essa entrada, a entrada "rugosidade" será usada. |
Quantidade de penugem | Adiciona uma camada semelhante a penugem na interface, causando retrorrefletividade das cores. Controla a quantidade de penugem aplicada sobre uma camada de superfície. Costuma ser usada para criar materiais de tecido. |
Cor da penugem | Define a cor da camada de penugem. |
Densidade de cintilação | A representação logarítmica da densidade de microfacetas na superfície de um material. Exige que a variável |
UVs de cintilação | Controla a posição e a escala das cintilações na superfície de um material. Exige que a variável |
Nós de Material Substrate
Você pode usar os seguintes tipos de nó para criar um material do Substrate:
| Tipo de nó | Descrição |
|---|---|
Esses nós representam a maioria dos tipos de superfícies, desde materiais simples até materiais mais complexos, como cabelo, olhos e água. | |
Esses nós combinam e sobrepõem várias BSDFs de Slabs Substrate para criar superfícies complexas e variadas. | |
Esses nós convertem tipos de materiais comuns para uso com o Substrate , por exemplo, na criação de uma camada revestida ou no modelo de sombreamento de material legado padrão da Unreal Engine. | |
Esses nós definem um Domínio de Material para um Material Substrate e são diretamente equivalentes aos homônimos legados de Domínio de Material. | |
Esses nós são usados para fazer algumas conversões no material, como o mapeamento de transmitância para o Caminho livre médio de um Slab Substrate. |
Nós de BSDF Substrate
Os nós de BSDF (Função de Distribuição de Dispersão Bidirecional) Substrate são usados para representar a maioria dos tipos de superfície. Eles controlam a aparência visual dos materiais que você cria e definem automaticamente o domínio e o modelo de sombreamento de acordo. O objetivo é evitar que esses aspectos sejam definidos manualmente no nó Raiz de Material por meio do painel Detalhes.
O Substrate inclui as seguintes BSDFs:
A BSDF do Slab é o nó principal para criação no Substrate e pode ser sobreposta com outros slabs. As outras BSDFs são para casos de uso especializados e devem ser usadas separadamente sem se misturarem com outras BSDFs.
| Nó de BSDF Substrate | Descrição |
|---|---|
BSDF de Slab Substrate | A representação com base em princípios físicos de um bloco de matéria que agrega vários componentes: difuso, especular, nebulosidade, penugem de tecido e anisotropia. Ela pode renderizar efeitos como dispersão de subsuperfície opaco ou translúcida e dispersão de subsuperfície translúcida . |
Substrate - BSDF de Olho | Uma BDFS dedicada à renderização de materiais de olho com o Substrate. Isso inclui entradas específicas para a córnea e a íris. |
Substrate - BSDF de Cabelo | Uma BDFS dedicada à renderização de materiais de cabelo com o Substrate. |
Substrate - Verniz simples | Fornece uma maneira simples e rápida de renderizar um material com um revestimento superior transparente. Esse nó usa o BSDF do Slab Substrate no segundo plano, mas simplifica o fluxo de trabalho para a renderização do verniz. É otimizado para renderizar materiais de Verniz legados. |
Substrate - BSDF de Água com Camada Única | Uma BSDF dedicada à renderização de um material de Água com Camada Única usado principalmente com o sistema de Água. |
Substrate - BSDF Não Iluminável | Uma BSDF usada para renderizar elementos Não Ilumináveis com uma luminância emissiva colorida. Esse nó Substrate substitui a opacidade em escala de cinza legada por transmitância colorida. Se você precisar mesclar um Slab Não Iluminável, use um Slab Substrate normal com apenas a entrada Cor Emissiva. |
Substrate - BSDF de Nuvem de Neblina Volumétrica | Uma BSDF usada para representar uma meio participante. Este nó é usado para renderizar Neblina Volumétrica e Nuvens Volumétricas. |
Nós de Operadores Substrate
Os nós de Operadores Substrate combinam ou sobrepõem vários Slabs Substrate para criar superfícies complexas e variadas. Se o Slab Substrate representar uma parte de matéria, os Operadores apresentarão maneiras de combinar essas partes.
Os seguintes Operadores Substrate estão disponíveis para escolha:
Operadores Substrate não funcionam com todas as BSDFs Substrate. Somente o BSDF de Slab Substrate e o Verniz Simples Substrate podem usar esses nós Operadores.
| Nó de Operador Substrate | Descrição |
|---|---|
Substrate - Peso de Cobertura | Esse operador recebe uma entrada de um Slab e controla a quantidade de cobertura que ele tem, em que Peso é a quantidade de cobertura. A redução do peso reduz a cobertura de matéria do slab, o que significa que você verá através dela por baixo. Este nó deve ser usado em conjunto com o operador Substrate - Camada Vertical para ter matéria opaca sobre outra, como camadas de poeira e sujeira, onde você deseja controlar quanto elas cobrem a superfície abaixo. |
Substrate - Mesclagem Horizontal | Esse operador recebe entrada de dois Slabs: um Plano de Fundo e um Primeiro Plano. A entrada Mistura controla quanto esses dois Slabs se misturam usando interpolação linear. |
Substrate - Camada Vertical | Esse operador recebe entrada de dois Slabs: uma camada Superior e outra Inferior. O Slab inferior é revestido pelo Slab superior, e a aparência da camada inferior é influenciada pelas propriedades da camada superior. Use a entrada Espessura Superior para controlar a espessura da camada superior em relação à inferior. Esse operador é ideal para criar pinturas automotivas, vernizes de madeira e umidade em uma superfície. |
Substrate - Adicionar | Esse operador usa a entrada de dois Slabs e as adiciona. O material criado não é fisicamente plausível porque gera mais energia saindo da superfície do que entrando. Esse nó deve ser evitado sempre que possível. |
Os nós de Operadores incluem uma opção para mesclar o segundo plano e o primeiro plano em um único material ao ativar Usar Mesclagem de Parâmetros. Como os Operadores Substrate podem criar aparências complexas de material ao misturar e sobrepor slabs, seu consumo em tempo de execução (principalmente devido à avaliação da iluminação) pode prejudicar o desempenho. A mesclagem de parâmetros é uma otimização que substitui a avaliação cara da iluminação por desempenho em tempo de execução e avaliação mais econômica da iluminação.
Para obter mais informações sobre essa otimização de mesclagem de parâmetros, confira a seção Mesclagem de Parâmetros desta página.
Substrate - Peso de Cobertura
O Operador Substrate - Peso de Cobertura controla a proporção de dois slabs em uma operação de sobreposição vertical. A entrada Peso orienta a cobertura desse material ao sobrepor camadas com um Operador Substrate - Camada Vertical (como no exemplo abaixo). Você também pode usar o operador para obter superfícies translúcida ao usar alfa como cobertura ou alfa como opacidade, semelhante a como o Modo de Mesclagem Translúcido usa a opacidade.
O gráfico acima usa o Operador Substrate - Peso de Cobertura, em que Peso determina a quantidade de cobertura aplicada ao slab inferior. Um peso de 1 é totalmente opaco, bloqueando o padrão de textura verde. 0,5 é 50% transparente, misturando as cores dos dois materiais e mostrando o padrão de textura. 0 é totalmente transparente e mostra apenas o padrão de textura verde.
Como a entrada Peso usa um valor Float3, você também pode usar uma textura para orientar a quantidade de cobertura aplicada ao slab ao sobrepor os materiais em camadas.
Substrate - Camada Horizontal
O Operador Substrate - Camada Horizontal mistura dois slabs, um representando o plano de fundo e outro o primeiro plano. A entrada Mistura controla a proporção da mistura usando interpolação linear.
A entrada Plano de Fundo fica totalmente visível quando é 0 e a entrada Primeiro Plano fica totalmente visível quando é 1. Quando a proporção de mixagem é de 0,5, os slabs são mesclados, e a mixagem é avaliada por pixel. A entrada Mistura pode usar texturas para controlar as proporções de mistura, como no exemplo a seguir.
Substrate - Camada Vertical
O operador Substrate - Camada Vertical recebe um slab em suas entradas Superior e Inferior e as sobrepõe. Esse nó considera a espessura da camada superior para aplicar transmitância e dispersão fisicamente corretas, o que é semelhante a uma operação de revestimento, com a camada superior cobrindo a camada inferior. A aparência do slab Inferior depende das propriedades do slab Superior. Se a BSDF transmitida na entrada Superior for totalmente opaca, o slab inferior não será visto.
A sobreposição vertical é particularmente útil em situações que exigem uma camada superior transparente ou semitransparente sobre uma camada inferior opaca. Exemplos incluem pintura de automóveis, superfícies de madeira envernizadas ou umidade em uma superfície, como poças d'água.
Substrate - Adicionar
O Operador Substrate - Adicionar combina dois slabs e gera o resultado. Esse operador não é considerado fisicamente plausível, pois pode produzir um material em que a energia que sai da superfície excede a energia que entra. Ele é útil quando a direção da arte é mais importante do que ser fisicamente plausível. No entanto, para manter superfícies fisicamente precisas, esse operador deve ser evitado.
Nós de Blocos de Construção Substrate
Os nós de Blocos de Construção Substrate são um conjunto de Funções de Material que fornecem conversões para alguns casos de uso comuns. Como são funções de material, você pode abri-los e inspecioná-los diretamente.
Os seguintes Blocos de Construção Substrate estão disponíveis para você escolher:
| Nó de Bloco de Construção do Substrate | Descrição |
|---|---|
Substrate - Camada Revestida | Uma função de material que cria um material revestido formado por dois slabs sobrepostos em camadas. Ela expõe parâmetros fáceis de usar para controlar a interface e a absorção do revestimento. |
Substrate - Superfície Padrão Opaca | Uma função de material que cria um material Substrate do tipo uber-shader com uma parametrização fácil de usar para superfícies opacas. A parametrização usa noções e vocabulário padrão do setor. |
Substrate - Superfície Padrão Translúcida | Uma função de material que cria um material Substrate do tipo uber-shader com uma parametrização fácil de usar para superfícies translúcidas. A parametrização usa noções e vocabulário padrão do setor. |
Substrate - Sombreamento Padrão da UE4 | Uma função de material que replica o modelo de sombreamento padrão com o Substrate para parametrização difusa, metálica e especular usada em materiais não Substrate. |
Substrate - Sombreamento Não Iluminável da UE5 | Uma função de material que recria o modelo de sombreamento Não Iluminável da UE5 com o Substrate. |
Nós de Extras Substrate
Os nós de Extras Substrate especificam o tipo de material e a função que ele serve, como configurar o material Substrate para ser usado como um decalque ou uma função de luz. Esses nós são diretamente análogos a materiais não Substrate que foram atribuídos a eles como parte de seu Domínio de Material.
Os seguintes Extras Substrate estão disponíveis para você escolher:
Esses nós são monolíticos e devem ser usados isoladamente. Eles não são compatíveis com Operadores Substrate.
Como um bom hábito, recomendamos colocar esses nós no fim do gráfico de material, logo antes de conectá-los à entrada Material Frontal.
| Nó de Extras Substrate | Descrição |
|---|---|
Substrate - Converter em Decalque | Qualquer gráfico de material pode ser usado como decalque. Esse nó especifica que o material será convertido e usado apenas como material de Decalque. |
Substrate - Função de Iluminação | Esse nó especifica que o material será usado apenas como uma Função de Luz. Ele deve ser usado isoladamente. |
Substrate - Pós-processamento | Esse nó especifica que o material será usado apenas como Material de Pós-processamento. Ele deve ser usado isoladamente. |
Substrate - IU | Esse nó especifica que o material será usado apenas como um elemento de interface do usuário, como os materiais projetados para uso com o UMG UI Designer. Ele deve ser usado isoladamente. |
Por exemplo, ao usar o nó Substrate - Converter em Decalque, qualquer material Substrate pode ser usado como um material de decalque aplicado a Decalques de Malha e Atores de Decalque na cena.
Nós extras definem automaticamente o Domínio do Material quando conectados à entrada Material Frontal do nó Raiz de Material. Alguns nós de Extras exigem que Modo de Mesclagem seja alterado para suportar a saída.
Ao usar o nó Substrate - Converter em Decalque, você deve definir o Modo de Mesclagem como Translúcido - Transmitância de Cinza, Transmitância Colorida, Translúcido - Transmitância Colorida ou AlphaComposite (alfa Pré-multiplicado). Caso contrário, será exibido um erro no painel Estatísticas do Editor de Material.
Nós auxiliares Substrate
Os nós Auxiliares Substrate são um conjunto de nós e funções de material para realizar uma certa conversão ou realizar algo que os materiais legados podiam fazer.
| Nó Auxiliar Substrate | Descrição |
|---|---|
Substrate - Flip Flop | Controla refletividade da superfície com base no ângulo de incidência de visão. Ele permite interpolar uma cor de frente normal (F0) para uma cor em ângulo raso (F90), com base no ângulo de visão, controlando a velocidade dessa interpolação por meio do parâmetro de enfraquecimento. |
Substrate - Nebulosidade para Rugosidade Secundária | Calcula a rugosidade do segundo lóbulo especular a partir da rugosidade e da nebulosidade da superfície base. Essa parametrização garante que a nebulosidade faça sentido fisicamente e seja perceptivamente mais fácil de criar. |
Substrate - IR para F0 | Converte um IR dielétrico em um valor F0. |
Substrate - Metalidade para Cor Difusa F0 | Converte uma parametrização de metalidade (Cor Bases / Especular / Metálico) em uma parametrização de Albedo Difuso / F0. |
Substrate - Rotação para Tangente | Converte um ângulo de rotação em um vetor tangente. |
Substrate - Película Fina | Calcula F0 e F90 de parâmetros especulares de material resultantes de acordo com as propriedades da superfície de entrada, assim como os parâmetros de película fina. |
Substrate - Transmitância para Caminho Livre Médio | Converte uma cor de transmitância que corresponde a um slab do meio participante visto perpendicularmente à sua superfície. Esse nó é mapeado diretamente à entrada de BSDF do Slab. |
Substrate - Cobertura Dependente da Visão | Adapta a cobertura com base no ângulo de incidência de visão. Esse nó é útil para misturar uma camada cuja espessura é grande o suficiente para gerar um efeito dependente da visão. Por exemplo, grãos grandes de poeira apresentam maior oclusão em um ângulo raso do que em um ângulo incidente. |
Observações adicionais sobre nós Substrate
Materiais de Decalque Substrate
Os Decalques Substrate usam atualmente as mesmas funcionalidades que o caminho de modo de mesclagem dos Decalques legados.
Versões futuras dos Decalques Substrate buscarão oferecer um conjunto mais robusto de funcionalidades, semelhante a outras funcionalidades já disponíveis no Substrate, como Slabs Translúcidos de Camada para água, sangue e gosma. Por exemplo, ter camadas que podem sofrer erosão de acordo com a espessura, como arranhões na pintura de um automóvel, degraus no chão e marcas de pneus.
Nó Modelo de Sombreamento Substrate
Abrir qualquer material criado anteriormente após habilitar o Substrate para o seu projeto converte automaticamente esse material para usar seus slabs. Todas as entradas existentes são alimentadas em um nó Modelo de Sombreamento Substrate.
Evite adicionar ou usar esse nó de forma manual ao criar materiais Substrate.
Painel de estatísticas do Substrate
O painel de estatísticas do Substrate está disponível no Editor de Material, abaixo do Gráfico de Material.
O painel Substrate exibe estatísticas sobre o material, a simplificação e a topologia.
Mesclagem de Parâmetros com Operadores
O uso de várias BSDFs (Funções de Distribuição de Dispersão Bidirecional) por pixel desacelera o processo de renderização em proporção direta à sua contagem no gráfico de material. É duas vezes mais lento avaliar a iluminação de duas BSDFs do que de uma única. Isso vale para superfícies opacas e translúcidas.
Os nós de Operadores incluem uma caixa de seleção Usar Mesclagem de Parâmetros, que tenta otimizar o desempenho e o consumo de memória do material enquanto mantém a aparência de todas as operações de mistura e camadas no gráfico. Apenas o nó de Operador mais à direita antes do nó Raiz de Material deve ter a configuração habilitada. Todos os outros nós no gráfico aplicam a mesclagem de parâmetros automaticamente.
A mesclagem de parâmetros é uma boa opção reserva quando o desempenho de vários Slabs em um material for motivo de preocupação. Quando habilitada, dois Slabs são mesclados em um único Slab, que só precisa de uma única avaliação de iluminação. Essa mesclagem usa muito menos memória do que dois slabs individuais.
Os materiais de exemplo a seguir foram retirados de Exemplos de Conteúdo de Nível do Substrate e com a opção Usar Mesclagem de Parâmetros habilitada.
Esse material (M_Substrate_ShaderBall_IceRocks) usa duas BSDFs. A esquerda está sem mesclagem, e a direita está usando mesclagem de parâmetros.
Este é um material mais complexo (M_Substrate_ShaderBall_AnisoOverSSS) que mescla quatro slabs usando dois Operadores de Camada Vertical e um único Operador de Peso de Cobertura. O material tem um custo de memória de 108 bytes por pixel. Com a opção Usar Mesclagem de Parâmetros habilitada, a mesclagem em todos os operadores é reduzida a 28 bytes por pixel. O material da esquerda está sem mesclagem, e o da direita usa mesclagem de parâmetros.
Além da Mesclagem de Parâmetros em nós de Operadores, você pode usar um dos seguintes fluxos de trabalho para obter resultados semelhantes:
Mesclar manualmente no gráfico os atributos Albedo Difuso, F0, F90 e Rugosidade, entre outros. Passar todos os atributos para um único Slab conectado à entrada Material Frontal. Essa abordagem funciona bem em casos isolados, mas pode se tornar difícil para uma biblioteca grande de materiais complexos.
Use o fluxo de trabalho de Materiais em Camadas baseado em gráfico. Como ele emprega funções de material para reutilizar o trabalho, pode escalar melhor do que a primeira opção.
Em plataformas mais simples, como as de dispositivos móveis, o compilador habilita automaticamente a mesclagem de parâmetros em prol do desempenho. Em plataformas intermediárias, a mesclagem de parâmetros é introduzida de forma progressiva nas camadas inferiores de um material, de modo a permanecer dentro das restrições de desempenho e memória alvo.
Metalidade e Resposta Especular
A parametrização usada pelo Substrate é diferente do Modelo de Sombreamento Iluminável Padrão em materiais não Substrate (ou legados): não há mais uma entrada Metálica. Essa parametrização tenta eliminar valores abstratos (como metálicos e especulares) e se move em direção a propriedades físicas com unidades do mundo real.
As propriedades reflexivas e a resposta especular dos materiais Substrate são definidas com três atributos: Albedo Difuso, F0 e F90. O Substrate aplica a conservação de energia de forma automática, garantindo que a interface especular e o meio não adicionem energia. Portanto, quanto maior for o F0, menos visível será a contribuição difusa.
A metalicidade é emulada usando o nó Auxiliar Substrate - Metalidade para Albedo Difuso-F0. Ele usa valores de Cor Base, Especulares e Metálicos como entradas e os converte em valores que são mapeados para Albedo Difuso e F0 no Slab Substrate.
É possível obter uma grande variedade de respostas especulares e difusas de materiais complexos à luz usando as entradas Cor da Borda ou F90. Por exemplo, uma esfera vermelha com reflexos especulares perpendiculares a tangentes que vão de ciano a amarelo.
Os nós Auxiliares Substrate - Flip Flop são úteis para obter colorização especular baseada em normais. Ele controla a cor especular de F0 e F90 como uma função de NoV com transição de enfraquecimento ajustável.
Refração Áspera
O Substrate é compatível com refração áspera por meio de objetos translúcidos e materiais opacos em camadas com uma camada superior translúcida. O desfoque do segundo plano da cena, bem como a distância até o objeto refratado, é calculado a partir da rugosidade do material primário quando você usa distorção/refração.
Refração Áspera Translúcida
Para criar um material translúcido com refração áspera, defina as seguintes propriedades no painel Detalhes.
Modo de Mesclagem: Translúcido - Transmitância Colorida, Translúcido - Transmitância de Cinza ou Apenas Transmitância Colorida.
Método de Refração: Índice de Refração (IR), Deslocamento de Normal de Pixel ou Deslocamento 2D.
Passa valores para Refração, Rugosidade e MFP SSS. O gráfico a seguir produz um resultado de vidro fosco simples quando a rugosidade é maior que 0. Um valor alto de MFP SSS é usado para criar um material totalmente transparente, enquanto o IR de 1,514 se aproxima da transparência de um vidro.
Nos exemplos a seguir, os objetos atrás do vidro ficam mais desfocados à medida que o valor de Rugosidade aumenta (0, 0,2 e 0,6, da esquerda para a direita).
O desfoque derivado da refração áspera usa uma aproximação para considerar a profundidade por detrás dos elementos translúcidos na cena.
Refração Áspera Opaca
As camadas de revestimento Substrate podem desfocar as camadas abaixo delas com base na rugosidade e na espessura da camada de revestimento superior. Esse tipo de refração pesa mais no desempenho e deve ser habilitado para o projeto em Configurações do Projeto, na categoria Engine > Renderização. Marque a caixa para Substrate - Refração áspera de material opaco para habilitar essa funcionalidade.
O gráfico a seguir mostra um exemplo de refração áspera de material opaco usando um material sobreposto verticalmente com revestimento transparente sobre um tabuleiro de damas opaco.
Os parâmetros Rugosidade e Espessura determinam a força do desfoque aplicado à camada inferior do material. Aumentar um dos valor aumenta o desfoque da refração.
Você pode ver isso nos exemplos abaixo, em que a camada superior de verniz transparente à esquerda tem uma rugosidade e espessura de 0,1. O exemplo à direita tem uma rugosidade de 0,8 e uma espessura de 6, fazendo com que a camada inferior se torne desfocada.
Dispersão Subsuperficial e Meio Participante
Um Slab Substrate contém mídias participantes e pode ser usado para simular várias aparências volumétricas.
Por exemplo, se você renderizar apenas um material opaco, quando um slab estiver na parte inferior da topologia do material, ele será levado em consideração para dispersão subsuperficial. Duas coisas devem ser consideradas:
Se um Perfil de Subsuperfície for atribuído a um Slab no painel Detalhes do Material, esse perfil será usado por pixel. Lembre-se de que não é possível mesclar Perfis de Subsuperfície.
Se não houver um Perfil de Subsuperfície atribuído, a dispersão será determinada pelas propriedades Albedo Difuso e MPF SSS do Slab. Essas propriedades podem ser mescladas.
O MFP (ou Caminho Livre Médio) da Dispersão Subsuperficial é a distância (em centímetros) que diferentes comprimentos de onda de luz penetrarão através de um meio antes de encontrarem uma colisão. O exemplo a seguir mostra um Albedo Difuso (branco colorido) e um MFP SSS (vermelho colorido) dimensionados de 0 a 1, da esquerda para a direita.
Qualquer slab que não esteja na parte inferior de um material opaco ou usado em um translúcido é levado em consideração para uma representação volumétrica, que também se baseia nos atributos Albedo Difuso e MFP SSS. O Albedo Difuso representa a cor base do meio, representando dispersão única e múltipla.
O atributo MFP SSS é uma maneira de controlar a transmitância do meio para uma visão perpendicular a uma superfície, representando o grau de visibilidade da superfície abaixo.
Exemplos de um material com cor de transmitância que varia de preto a azul, da esquerda para a direita, e Albedo Difuso, que varia de preto a branco, de baixo para cima.
A sobreposição vertical de um Slab é semelhante a uma operação de revestimento. A visibilidade do Slab inferior depende da transmitância do Slab superior. É possível reduzir a cobertura do Slab superior (como na margem de uma poça d'água em uma superfície) para fazê-la desaparecer gradualmente. Você pode fazer isso usando um nó de Operador Peso de Cobertura, que é semelhante à mesclagem de alfa.
Exemplos de um material com uma transmitância que varia de preto a azul, da esquerda para a direita, e uma cobertura que varia de 0 a 1, de baixo para cima.
Para obter uma cor de transmitância ou de dispersão específica, use o nó Auxiliar Substrate - Transmitância para Caminho Livre Médio. O MFP é derivado para a Cor de Transmitância a fim de corresponder à incidência sobre a normal, quando a superfície é visualizada perpendicularmente ao longo da normal.
O exemplo a seguir mostra uma dispersão subsuperficial azul em um material opaco rosa, em que o MFP SSS é derivado da Cor de Transmitância.
Não é recomendado controlar diretamente o MFP ao tentar obter uma cor de transmitância específica, pois o MFP não é uma cor, e sim uma medida de transporte da luz. A relação entre MFP e cor de dispersão de subsuperfície não é intuitiva nem linear da perspectiva de um artista.
Translucidez e Modos de Mesclagem
O Substrate oferece opções mais robustas para o sombreamento de superfícies translúcidas do que é possível com materiais tradicionais não Substrate. A lista de Modos de Mesclagem do Substrate agora faz mais sentido quando se considera que uma superfície é feita de matéria (um Slab Substrate).
Para criar um Material Translúcido:
Escolha um Modo de Mesclagem compatível com translucidez.
Opaco
Com máscara
Translúcido - Transmitância Colorida
Translúcido - Transmitância de Cinza
Apenas Transmitância Colorida
AlphaHoldout
Com o nó Raiz de Material selecionado, use o painel Detalhes para selecionar um Modo de Iluminação. Escolha entre:
Sombreamento Direto de Superfície
Volume de Translucidez da Superfície: essa opção permite reflexos na superfície.
Não Direcional Volumétrico: é mais barata de usar, mas não reflete luz.
O exemplo abaixo mostra a configuração de um material Substrate translúcido. Seu Modo de Mesclagem está definido como Translúcido - Transmitância Colorida e usa o Modo de Iluminação Sombreamento Progressivo de Superfície. Ele usa um único Slab passado ao pin Material Frontal do nó Raiz de Material para produzir um material translúcida que parece opaco.
O uso Operador Substrate - Peso de Cobertura entre o Slab e a entrada Material Frontal controla a transmitância do material. Use a entrada Peso no nó Substrate - Peso de Cobertura para controlar o nível de transparência do material.
Você pode usar um valor constante de 0 a 1 para controlar a opacidade do material inteiro (como acima) ou usar uma textura (como abaixo) para controlar partes do material.
Você pode ir além e criar um bloco de matéria que se pareça com vidro colorido especificando o MFP do meio participante. Isso é configurado usando o nó Auxiliar Transmitância para Caminho Livre Médio, como no exemplo a seguir, usando uma Cor de Transmitância laranja conectada ao MFP SSS para pintar o material de laranja apenas nas regiões onde ele transmite luz. A Cor de Transmitância especificada é a cor "alvo", que é atingida na entrada de espessura fornecida (o padrão é 0,01 cm).
Observações adicionais sobre translucidez no Substrate
Materiais translúcidos não são compatíveis com a Dispersão Subsuperficial do Espaço de Tela, embora o Slab seja considerado um volume ou um meio participante.
Modos de Visualização de Depuração do Substrate
Ao usar o Substrate, é útil ver o desempenho dos materiais e quais poderiam se beneficiar com uma atenção especial. Os modos de visualização de depuração do Substrate estão na lista suspensa Modos de Visualização, na categoria Substrate.
O Substrate inclui os seguintes modos de visualização para depuração:
Clique nas imagens da tabela para ampliá-las.
| Visualização de Depuração | Nome da Visualização de Depuração | Descrição |
|---|---|---|
Propriedades do Material | Visualize as propriedades do Substrate sob o cursor do mouse. Passe o mouse sobre o pixel que você deseja inspecionar, e você verá o fechamento final do material empacotado usado para iluminação, como propriedades, peso colorido, funcionalidades habilitadas do material, bytes usados e mais. | |
Contagem de Materiais | Visualize a contagem de materiais Substrate por pixel e pinte-os de acordo com o número de nós Slab BSDF usados. | |
Contagem de Bytes de Material | Visualize a área ocupada pelo material Substrate por pixel. Os materiais são codificados por cores de acordo com o número de bytes que estão usando. Você também pode passar o mouse sobre um material para ver os bytes por pixel desse material. | |
Informações do Substrate | Esse modo resume informações sobre o uso do Substrate no projeto, incluindo informações sobre uso máximo de memória, máximo de bytes por pixel (que é útil para definir limites de simplificação) e funcionalidades habilitadas do Substrate. | |
| Modos de Visualização Avançados do Substrate | ||
Propriedades Avançadas do Material | Indica informações sobre os diferentes Slabs Substrate que compõem o Material atualmente na posição sob o cursor do mouse. Cada slab é apresentado separadamente na tela. Esse modo de visualização deve ser habilitado em Configurações do Projeto, na categoria Engine > Renderização, com a caixa de seleção Shaders de visualização avançada do Substrate. | |
Classificação do Material | Esse modo mostra a complexidade do material por ladrilho e retorna um resultado codificado por cores:
| |
Classificação de Refração Áspera | Esse modo exibe materiais que usam a propriedade Refração Áspera Opaca. Esse modo também diferencia entre materiais Substrate com dispersão subsuperficial habilitada ou desabilitada. Os ladrilhos mostrados em alguns desses modos de visualização são usados para executar etapas otimizadas de pós-iluminação posteriormente. Eles podem ser úteis para otimizar os materiais Substrate, reduzindo o número de slabs usados e funcionalidades habilitadas, e para usar a mesclagem de parâmetros em Operadores. Se um material for feito de vários materiais misturados e sobrepostos em camadas, mas apenas um Slab estiver visível (devido ao mascaramento dinâmico ou ao baixo valor de transmitância) para um determinado pixel, os Slabs não visíveis não serão mostrados (ou otimizados) da visualização. |
Limitações e Problemas Conhecidos
O Substrate é experimental e, portanto, recomendamos não usá-lo para trabalhos de produção.
O suporte e os testes da plataforma estão incompletos no momento. À medida que avança para o Beta e depois para o estado de produção, haverá mais cobertura de testes.
As funcionalidades e a experiência do usuário estão sujeitas a alterações, podendo fazer com que os ativos existentes funcionem de maneira diferente ou sejam totalmente invalidados.
A mobilidade é suportada com o sombreamento direto móvel.
Compatibilidade experimental com o Path Tracer.
Algumas plataformas e caminhos de renderização, como o DirectX 11 (DX11) e o Mac, apresentam problemas e podem não funcionar totalmente.
Recursos adicionais
A Transmissão ao Vivo The State of Unreal — Timestamp: 02:29:42
O projeto de amostra Exemplos de Conteúdo inclui um Nível chamado "SubstrateMaterials", onde você pode explorar diferentes exemplos e demonstrações de como os Materiais Substrate funcionam.
Para usar o Substrate com o projeto Exemplos de Conteúdo, você precisa habilitar o Substrate para o projeto. Apenas este mapa foi validado para uso com o Substrate habilitado. Se você estiver usando apenas uma única instância do projeto Exemplos de Conteúdo , recomendamos habilitar o Substrate apenas para esse nível e desabilitá-lo sempre que estiver usando o restante do projeto.