O Substrate é a abordagem da Unreal Engine para a criação de materiais que substitui o suíte fixo de modelos de sombras e modos de mesclagem, como Iluminável Padrão e Verniz, 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.
Novos projetos
O Substrate é habilitado por padrão para qualquer projeto recém-criado. Os projetos existentes que estiverem sendo atualizados para a UE 5.7 e versões posteriores continuarão usando o caminho não Substrate por padrão, a menos que suas configurações do projeto optem explicitamente pelo suporte ao Substrate.
Para esses projetos existentes, você pode ativar o Substrate em Configurações de Projeto > Renderização, habilitar os Materiais do Substrate e reiniciar o projeto para que as alterações entrem em vigor.
Para novos projetos com o Substrate habilitado por padrão, o formato GBuffer mesclável é usado para priorizar a velocidade sobre a fidelidade visual. Esse formato pode ser alterado nas configurações de renderização do projeto.
Alguns projetos de modelo, como Automotivo e Arquitetônico, usam o GBuffer adaptativo por padrão para favorecer a fidelidade visual sobre o desempenho.
Para obter mais informações sobre como configurar o formato do GBuffer para o seu projeto, confira a seção Formato do GBuffer desta página.
Conversão do Editor de Material
Materiais existentes que não sejam do Substrate funcionarão imediatamente, mas não serão convertidos automaticamente em nós do Substrate. Para materiais existentes que não sejam do Substrate, ou materiais recém-criados, eles continuarão usando a parametrização do nó raiz não Substrate e serão convertidos para Substrate no tempo de compilação. Isso simplifica a migração do projeto, evita a necessidade de modificar ou salvar o ativo novamente e ajuda nos custos de preparação.
Para converter um material para o Substrate, clique com o botão direito no nó raiz e selecione Converter para Substrate. Isso cria um slab automaticamente e o conecta ao Material frontal do nó raiz, conectando as entradas do nó raiz não Substrate ao slab.
Siga estas orientações ao habilitar o Substrate em um projeto existente ou ao migrar para o Unreal Engine 5.7 ou versões posteriores:
Abrir um material existente que não seja do Substrate em um projeto habilitado para o Substrate não altera mais esse material. Ele permanece compatível com projetos não Substrate.
Materiais convertidos explicitamente não são compatíveis com projetos não Substrate. 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.
Formato do GBuffer para fidelidade visual
O Substrate é compatível com dois formatos de GBuffer diferentes para armazenar dados de material: GBuffer mesclável e GBuffer adaptativo. Esses formatos têm diferentes vantagens e desvantagens em relação a velocidade, memória e fidelidade visual.
GBuffer mesclável
Esse formato tem como princípios básicos um consumo de memória fixo e uma velocidade previsível. Seu uso principal é em projetos de 60 Hz. Ele vem com conjuntos limitados de funcionalidades e é semelhante ao caminho não Substrate.
O desempenho é equivalente ao caminho que não é do Substrate.
Visa um projeto orientado ao desempenho (60 Hz).
Garante a consistência visual em todas as plataformas.
Sem sobrecarga de preparação.
Ele não força a habilitação da técnica de decalque do DBuffer.
GBuffer adaptativo
Esse formato visa a fidelidade visual e aproveita todo o potencial do Substrate, permitindo uma complexidade de material enriquecida.
O custo de desempenho é maior e depende da complexidade do material visível na tela.
Visa a fidelidade visual, permitindo comportamentos de sombreamento mais complexos.
A alta fidelidade visual dependerá da plataforma.
O tempo de preparação aumenta em cerca de 15% em comparação com o formato mesclável. Materiais com comportamento de sombreamento complexo também aumentarão o tempo de preparação.
Força a habilitação da técnica de decalque do DBuffer.
Controles adicionais para Contagem de fechamento e Bytes por pixel estão disponíveis nas Configurações de Projeto e na variável de console.
Esse formato só é compatível com os consoles da geração atual: Xbox Series X/S, PlayStation 5 e PlayStation 5 Pro, Windows PC (SM6), MacOS (SM6) e Linux (SM6). Em outras plataformas (incluindo plataformas SM5), os materiais são simplificados e as plataformas rodam com o formato de GBuffer mesclável.
Para problemas conhecidos ao usar o GBuffer adaptativo, consulte a seção Limitações e problemas conhecidos nesta página.
DBuffer
O formato de GBuffer mesclável continuará sendo compatível com decalque mesclável e decalque de DBuffer. O decalque de DBuffer está habilitado por padrão, mas você pode desativá-lo nas configurações do projeto.
O formato de GBuffer adaptativo só é compatível com o decalque de DBuffer. Se o projeto não usar o decalque de DBuffer, o sistema de renderização o habilitará automaticamente para plataformas compatíveis com o formato de GBuffer adaptativo.
Ao usar decalques de DBuffer, o Substrate permite a leitura normal do material durante a avaliação do DBuffer como um caminho experimental, que pode ser habilitado com r.Substrate.DBufferPass. Isso permite que o material do DBuffer use a normal do material sem reprojeção temporal ou reconstrução normal baseada em profundidade.
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:
| Configurações de projeto | Descrição |
|---|---|
Formato de GBuffer do Substrate (projeto) | Selecione o formato de GBuffer usado para o projeto:
|
Fechamento do Substrate por pixel (projeto) | Define o número máximo de fechamentos que podem ser avaliados por pixel. Se um material contiver mais fechamentos do que isso, ele será simplificado iterativamente até se ajustar ao orçamento do projeto. Além disso, cada plataforma tem seu próprio limite de contagens de fechamento, que pode ser substituído por estas configurações:
|
Substituição de fechamento por pixel do Substrate | Selecione como o número máximo de fechamentos avaliados por pixel é definido para cada plataforma:
|
Reflexo do material opaco do Substrate (experimental) | Quando habilitada, as superfícies opacas que revestem outros materiais podem desfocar as camadas inferiores de uma maneira fisicamente plausível. Essa funcionalidade é experimental. |
Refração áspera de material translúcida do Substrate | Quando habilitada, as superfícies translúcida podem gerar refrações ásperas em função da rugosidade. Se você habilitar essa opção, a etapa de distorção ficará mais cara. |
Shaders de visualização avançada do Substrate (somente Editor/Win64/DX12) | Habilite os shaders avançados de visualização de depuração de material Substrate. Shaders de etapa de base podem gerar esses dados avançados. Disponível no momento apenas para editores desenvolvidos para Win64 e executando a API gráfica DX12. |
Habilitar suporte para camadas de materiais do Substrate (experimental) | Habilite a sobreposição de material e a interface de usuário Substrate. Observação: essa ação é irreversível. Os materiais de camadas legados serão atualizados automaticamente e poderão ser revertidos apenas de forma manual depois que os ativos forem salvos outra vez. |
| 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. |
| Fornece um meio de fixar o número de fechamento avaliado por pixel. Se um material tiver mais fechamentos do que esse valor, o material será simplificado automaticamente para respeitar a contagem de fechamentos. |
| Habilitar essa variável força o Substrate a converter todos os materiais no GBuffer legado usando um único modelo de sombreamento por pixel. Pode ser usada em plataformas mais antigas para resultar em melhor desempenho para alguns projetos que precisam disso. |
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.
É importante observar que o Atributo de Material e as Camadas de Material não realizam a sobreposição real de matéria: é possível simular um verniz, mas não ter uma camada superior com transmitância colorida sobre outra. Em vez disso, eles habilitam apenas a mesclagem, ou mistura horizontal, de dois materiais em uma superfície, e não a sobreposição de um bloco de matéria sobre outro.
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 por meio da entrada Material Frontal.
Todos os gráficos de material Substrate devem estar conectados à entrada Material Frontal no nó raiz. Esta entrada é o ponto final de todos os gráficos Substrate.
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. O domínio do material e o modelo de sombreamento são deduzidos automaticamente do gráfico.
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. |
Translúcido - Transmitância de cinza | 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. |
Apenas Transmitância Colorida | 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 a contribuição de Cor de um material mesclado de forma aditiva na cena e sobre a quantidade de cobertura que reduz a visibilidade do que está atrás (a cobertura do material pode ser substituída usando a entrada Opacidade do nó-raiz). 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. |
Translúcido - Transmitância Colorida | 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 pelo Caminho Livre Médio (ou MFP), bem como pelas entradas de Albedo Difuso.
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. O Albedo Difuso também representa a porcentagem de luz que é dispersa pelo meio participante quando a representação simples da subsuperfície do volume é usada. |
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 percebida do material e influencia a absorção e dispersão de luz pelo material. Mais precisamente, define a distância média em centímetros na qual um fóton interage com uma partícula de matéria. Essa distância é controlada por canal de cor. O MFP interage diretamente com a transmitância e a quantidade de luz dispersa em um slab:
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. |
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). |
Quantidade de penugem | Quando maior que 0, 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 |
O comportamento de subsuperfície do Slab é definido pela propriedade Tipo de Subsuperfície no Slab. Define o modelo de dispersão usado para o Slab específico. Oferece um controle explícito para obter o comportamento legado existente ou visuais diferentes.
Os Tipos de sub-superfície disponíveis são:
Encapsulamento: use um modelo de iluminação de encapsulamento para emular a dispersão da luz. É equivalente ao modelo de sombreamento Subsuperfície legado.
Encapsulamento bilateral: use um modelo de iluminação de encapsulamento em ambos os lados da superfície para emular a dispersão da luz. É equivalente ao modelo de sombreamento Folhagem bilateral legado.
Difusão: usa o modelo de difusão (espaço de tela ou com traçado de raios) para atualizar a dispersão da luz. Quando um perfil de SSS é fornecido, é equivalente ao modelo de sombreamento Perfil de subsuperfície legado. De outra forma, o MFP pode ser controlado diretamente no slab.
Volume simples: usa uma combinação do modelo de Beer-Lambert para a parte de transmitância e um modelo ajustado para a parte de dispersão.
Para slabs com camadas verticais, apenas o tipo de subsuperfície de Volume simples é válido. Lista de suporte a tipos de subsuperfície por tipo de camada:
| Camada inferior | Camadas superiores |
|---|---|
Nenhum Volume simples Encapsulamento Encapsulamento bilateral Difusão | Sem Volume simples |
Dependendo da plataforma e do caminho de sombreamento , o tipo de subsuperfície de difusão pode não estar disponível. Nesses casos, o sistema recorre a um modelo simples difuso sem dispersão. A difusão é compatível apenas em caminhos diferidos e caminhos de rastreamento de caminho e nas seguintes plataformas: Xbox One, Xbox Series S, Xbox Series X, PlayStation 4 e 5, PC DX11, PC DX12, Linux Vulkan e Mac OS. Plataformas mais simples, como as de dispositivos móveis, não são compatíveis com modelos de difusão. Na parte inferior de cada nó Slab, uma tag indica qual modelo de dispersão será usado com base na topologia. Se o tipo de dispersão não for compatível com a topologia, essa tag poderá ser diferente da especificada pela propriedade Tipo de subsuperfície.
Parametrização de materiais do Substrate
O Substrate usa uma parametrização F0/Albedo Difuso em comparação com o caminho não Substrate, que usava Cor Base/Especular/Metalicidade. Essa parametrização oferece mais flexibilidade e garante a preservação de energia. No entanto, escolher o valor certo para F0 pode não ser intuitivo a princípio.
Como diretriz simples, você pode separar os materiais em dois grupos:
Materiais dielétricos: são materiais com uma metalicidade de 0 e geralmente têm um valor F0 entre 0,02 e 0,06 no espaço linear. As pedras preciosas podem ter um valor F0 de até 0,18 no espaço linear.
Materiais condutores: são materiais com metalicidade de 1 e geralmente têm um valor F0 entre 0,5 e 1 no espaço linear.
Entre essas faixas, estão os materiais semicondutores, que raramente são encontrados no mundo real.
Diagrama extraído do Adobe Substances.
Veja abaixo uma lista de valores de F0 para materiais comuns:
Esta lista foi reproduzida de "Real-Time Rendering Third Edition" por Tomas Akenine-Moller, Eric Haines e Naty Hoffman.
| Material | F0 Linear | F0 sRGB | Cor |
|---|---|---|---|
Água | 0,02 | 0,15 | |
Plástico/Vidro (baixo) | 0,03 | 0,21 | |
Plástico (alto) | 0,05 | 0,24 | |
Vidro (alto)/Rubi | 0,08 | 0,31 | |
Diamante | 0,17 | 0,45 | |
Ferro | 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 | |
Ouro | 1,00; 0,71; 0,29 | 1,00; 0,86; 0,57 | |
Alumínio | 0,91; 0,92; 0,92 | 0,96; 0,96; 0,97 | |
Prata | 0,95; 0,93; 0,88 | 0,98; 0,97; 0,95 |
Simplificação de material
A simplificação de material ocorre quando um dos seguintes limites não corresponde a um material:
Para o formato de GBuffer mesclável, se um material tiver mais que um fechamento.
Para o formato de GBuffer adaptativo, se um material tiver mais fechamentos por pixel do que as configurações do projeto/plataforma ou se o número de bytes por pixel estiver além das configurações do projeto.
Com esses parâmetros em mente, o material é simplificado ao combinar slabs com parâmetros até que os requisitos sejam atendidos. Os motivos e detalhes da simplificação estão visíveis no painel do Substrate (Janela > Substrate).
Para projetos/plataformas que usam o formato de GBuffer mesclável, o material final é forçado a usar uma única funcionalidade por pixel, correspondendo a um modelo de sombreamento legado. Essas funcionalidades são (por ordem de prioridade):
Penugem
Dispersão de subsuperfície (com ou sem um perfil)
Nebulosidade
Se várias funcionalidades estiverem habilitadas ao mesmo tempo para um determinado pixel, apenas a de maior prioridade será usada. Observe que a anisotropia pode ser habilitada independentemente das outras funcionalidades.
No material de exemplo a seguir, o material do Substrate estava fora do orçamento e foi simplificado de acordo com o painel de estatísticas do Substrate no Editor de Material.
O Substrate é compatível com vários recursos visuais que podem ser habilitados para cada slab (ou automaticamente ao usar o nó de expressão SubstrateShadingModel). Esses modelos de sombreamento incluem:
F90
Penugem
Efeitos de espalhamento subsuperficial (SSS): Perfil de SSS, Envolvido, Volume simples
Nebulosidade
Anisotropia
Perfil especular
Cintilações
Ao usar o formato de GBuffer mesclável, alguns recursos não são compatíveis. Eles incluem:
F90
SSS por difusão com MFP por pixel
Nebulosidade
Cintilações
Nesse caso, o recurso não estará presente visualmente no material. Observe que o LUT especular é compatível, mas é aproximado como um efeito dependente da visão.
Veja abaixo uma comparação visual dos recursos entre os dois formatos do GBuffer:
Durante a avaliação de iluminação, por motivos de desempenho, os seguintes recursos são mapeados em conjuntos de complexidade, que correspondem a custos de avaliação cada vez maiores:
Simples: padrão de material iluminável (colorido difuso e especular, rugosidade).
Único: Cor F90, Penugem, Efeitos de SSS (perfil de SSS, envolvido e volume simples usando MFP), revestimento transparente.
Complexo: Anisotropia, Perfil especular, Olho e Cabelo.
Complexo especial: Cintilações.
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. É possível usar o operador de Peso de Cobertura. |
Substrate - BSDF de Nuvem de Neblina Volumétrica | Uma BSDF usada para representar uma meio participante. Esse nó é usado para renderizar Nuvens Volumétricas e Volumes Heterogêneos. |
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. O peso é semelhante à entrada Opacidade no nó-raiz do material legado. Por exemplo, ele pode ser usado para tornar superfícies translúcidas ao usar um modo de mesclagem translúcido ou para reduzir a visibilidade de uma camada superior de verniz. |
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. Pode ser usado para uma transição suave entre slabs em uma superfície. |
Substrate - Camada Vertical | Esse operador recebe entrada de dois Slabs: uma camada Superior e outra Inferior. O slab Superior é colocado acima do slab Inferior, 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. |
Seleção do Substrate | Esse operador recebe entradas de dois caminhos de materiais do Substrate e seleciona uma delas. Ambos os caminhos têm a mesclagem de parâmetros habilitada para que, ao final, permaneça apenas um material de slab. Pode ser usado para selecionar estocasticamente slabs com e sem perfis de subsuperfície, por exemplo, usando Blue Noise. Isso é interessante em termos de desempenho, pois reforça um único slab como saída. Portanto, um único fechamento por pixel será avaliado durante as etapas de iluminação. |
Os nós de operadores incluem uma opção para mesclar parâmetros dos slabs de entrada em um único slab 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 precisão visual e 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.
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 sobrepõe o Slab Superior e o Slab Inferior. 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 passada 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 os parâmetros especulares de material resultantes F0 e F90 de acordo com os parâmetros de película fina. |
Substrate - Transmitância para Caminho Livre Médio | Converte uma cor de transmitância correspondente a um Slab do meio participante visto perpendicularmente à sua superfície em um Caminho Livre Médio. Esse nó é mapeado diretamente à entrada MPF SSS 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 do Substrate exibe estatísticas sobre o material, a topologia, suas funcionalidades e simplificação.
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 plano de fundo 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, bem como a distância até o objeto refratado.
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.
Espessura da Camada Substrate
A espessura da camada inferior está implicitamente fixa em 0,01 cm.
Para Superfícies opacas (superfícies através das quais não se pode ver), essa espessura não é relevante.
Para Superfícies translúcidas (superfícies através das quais se pode ver), você pode usar o nó Transmitância para MFP, em que a transmitância desejada é expressa para uma determinada espessura.
Para Superfícies finas (superfícies com espessura, mas finas demais para serem modeladas com geometria), a opção É Superfície Fina pode ser habilitada no material. A espessura da camada inferior é especificada no nó raiz.
Substituir Instância do Material Substrate
É possível substituir certas propriedades do material em uma instância de material (modelo de sombreamento, perfis especulares etc.). Essas substituições apresentam algumas limitações:
A substituição do Modelo de Sombreamento apenas estará disponível se o material contiver apenas nós Modelo de Sombreamento Substrate. Se o material contiver Slabs, a opção de substituição não estará disponível.
A substituição de Perfil Especular está disponível apenas quando um slab contém um perfil especular. Se uma substituição for fornecida, ela substituirá os perfis especulares de todos os slabs (se houver algum).
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. A Cor Difusa representa a quantidade de dispersão de luz, também respeitando a distância do MFP.
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.
Recomendação de Criação:
o Caminho Livre Médio (MFP) representa o mesmo comportamento da luz para materiais translúcidos ou opacos com dispersão subsuperficial: o caminho médio dentro de um meio antes que a luz interaja com a matéria: seja absorvida ou dispersa. Porém, pode ser interessante criá-lo de maneiras diferentes para casos de uso diferentes.
Para superfícies translúcidas (opticamente finas, transparentes), 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. Recomendamos usar o nó Transmitância para Caminho Livre Médio.
Para superfícies com Dispersão subsuperficial (opticamente espessas, opacas), o MFP pode ser criado diretamente. Nesse caso, ele representa aproximadamente a distância em centímetros em que a luz será dispersa para cada um de seus componentes.
Cobertura x Transmitância
Cobertura define a presença do material e pode ser considerada uma "máscara" que define onde e quanto esse material está presente.
0 significa sem cobertura: a camada não é visível.
1 significa cobertura total: a camada cobre toda a superfície.
Para mesclar materiais, ajuste sua cobertura. No Substrate, a cobertura é controlada com o nó Peso de Cobertura.
Transmitância define como a luz interage com o material: quanta luz passa através dele.
0 significa que nenhuma luz é transmitida: o material é totalmente opaco.
1 significa que a luz é totalmente transmitida: o material não absorveu luz e é possível ver através dele.
No Substrate, a transmitância é controlada pela entrada Caminho Livre Médio no Slab. O Caminho Livre Médio (MFP) define a distância média na qual um raio de luz interage com a matéria.
Um MFP de 0 significa que um raio de luz sempre atinge o material e não o atravessa. Isso é equivalente a uma transmitância de 0.
Um MFP de meios infinitos, um raio de luz nunca atinge o material e, portanto, a atravessa. Isso é equivalente a uma transmitância de 1.
Para facilitar, um nó Transmitância para MFP é fornecido, convertendo uma cor de transmitância específica obtida em uma profundidade específica em um caminho livre médio.
A Cobertura terá apenas um impacto de "escala de cinza" na aparência do material (menos ou mais do material será visível). Por outro lado, a Transmitância pode mudar a cor da luz transmitida com base no valor do MFP. Certas cores serão absorvidas e outras serão transmitidas, criando uma transmissão colorida. Para isso, o modo de mesclagem precisa estar definido como Translúcido - Transmitância Colorida. Para fins de desempenho, você pode optar pela transmissão de cinza com Translúcido - Transmitância de Cinza.
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.
Translúcido - Transmitância Colorida
Translúcido - Transmitância de Cinza
Apenas Transmitância Colorida
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.
Desempenho do Substrate
Visão geral dos custos de desempenho:
Ao usar um único nó Modelo de Sombreamento Substrate ou entradas legadas, o custo geral será semelhante ao modelo Legado. Etapa de base, iluminação, etapa e outros devem ter aproximadamente o mesmo custo.
Ao usar um único Slab com várias funcionalidades, por exemplo, ao usar várias funcionalidades ao mesmo tempo, funcionalidades avançadas, como cintilações, ou vários slabs em um material, o custo dos quadros começa a aumentar.
Ao usar vários Slabs sem mesclagem de parâmetros, o segundo slab será mais caro, e os slabs seguintes aumentarão o custo de maneira quase linear.
O Substrate usa uma etapa de classificação de material após a etapa de base para que a etapa de iluminação seja executada com mais eficiência. Isso adiciona uma pequena sobrecarga fixa após a etapa de base, mas ajuda a reduzir o custo geral com iluminação. Você pode usar o modo de visualização de depuração para entender o custo:
A contagem do Material exibe o número de fechamentos executados por pixel e visualiza o que pode ser mais caro.
A classificação do Material exibe a complexidade da iluminação em pixels/ladrilhos que será executada.
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 é uma funcionalidade Beta 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 ele avançar para estados prontos para 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.
Tem compatibilidade Beta 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.
Ao usar o GBuffer adaptativo:
O tempo de preparação (tempo de compilação do shader) aumentará em comparação ao uso do GBuffer mesclável, mesmo para materiais simples. Isso ocorre porque o GBuffer adaptativo requer mais processamento e tem etapas de codificação/decodificação mais complexas.
O desempenho do tempo de execução regredirá em comparação à regressão do GBuffer mesclável para o mesmo projeto. Isso se deve principalmente às etapas de codificação/decodificação e à avaliação mais complexa do tempo de execução.
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.