Ao visualizar um material muito de perto, você notará que as texturas usadas nele podem quebrar e se tornar pixeladas. Para otimizar o desempenho, as texturas geralmente são dimensionadas para uma resolução que parece boa a partir de distâncias moderadas, mas que podem não resistir a um exame mais minucioso.
Para resolver esse problema, você pode usar o que é conhecido como textura de detalhes para evitar que um material pareça pixelado quando é visto muito de perto.
Texturização de detalhes
A texturização de detalhes permite dar a ilusão de mais detalhes em uma textura, colocando uma textura difusa e normal altamente repetida sobre as texturas difusas e normais originais do objeto. Isso dá a ilusão de mais detalhes a curta distância do que normalmente seria possível.
Aqui está um exemplo de texturização detalhada em ação.
No lado esquerdo (rotulado como 1), o material usa uma textura de detalhes para adicionar detalhes adicionais de alta frequência à superfície. No lado direito (rotulado como 2), o material não usa uma textura de detalhes. Observe que a imagem à esquerda parece mais nítida e detalhada do que a imagem à direita.
Detalhamento do nó de texturização de detalhes
Se você pesquisar na Paleta ou no menu de contexto por "texturização de detalhes", encontrará uma função de material Texturização de detalhes. Embora esta não seja a única maneira de aplicar texturas de detalhes a materiais, é a mais rápida do ponto de vista do fluxo de trabalho, pois toda a lógica está contida na Função de material. Tudo o que você precisa fornecer são entradas de textura.
| Propriedade | Descrição |
|---|---|
| Scale (S) | Isso define a escala da textura de detalhes. Números maiores resultam em mais ladrilhamento. Números menores resultam em menos ladrilhamento. |
| Diffuse (V3) | Esta é a entrada da textura difusa. |
| DetailDiffuse (T2d) | Esta é a entrada para a textura de detalhes difusos. Essa entrada só pode aceitar um objeto de textura. |
| DiffuseIntensity (S) | Isso controla a intensidade da textura difusa detalhada. |
| Normal (V3) | Esta é a entrada para a textura normal do mapa. |
| DetailNormal (T2D) | Esta é a entrada para a textura normal do detalhe do mapa. Essa entrada só pode aceitar um objeto de textura. |
| NormalIntensity (S) | Isso controla a intensidade da textura do mapa normal de detalhes. |
Convertendo amostras de textura em objetos de textura
Para que a função de material de Texturização de detalhes funcione corretamente, você precisará converter as Texturas que deseja usar como Texturas de detalhes de Amostras de textura regulares em Objetos de textura. Use as etapas a seguir para fazer isso.
-
Encontre a amostra de textura que deseja usar como textura de detalhes.
-
Clique com o botão direito do mouse no nó Amostra de textura e selecione Converter em objeto de textura no menu de contexto.
-
A amostra de textura é convertida em um objeto de textura.
Como usar Texturização de detalhes no seu material
Existem duas maneiras de configurar um material para usar a Texturização de detalhes, e ambas estão documentadas abaixo. A principal diferença entre os dois métodos está entre usar a função de material de Texturização de detalhes predefinida ou criar a lógica de texturização de detalhes manualmente no gráfico de materiais. Nenhuma das opções é melhor ou pior, pois produzem os mesmos resultados no final. O método escolhido depende das necessidades do material e do projeto específico.
Todo o conteúdo usado nas seções a seguir está disponível no Conteúdo inicial do Unreal Engine. Embora as técnicas mostradas aqui funcionem com qualquer textura, se você quiser acompanhar, certifique-se de que seu projeto inclua o Conteúdo inicial.
Crie um novo naterial para usar para teste. Clique com o botão direito no Navegador de conteúdo e escolha Material na seção Criar recurso básico no menu de contexto. Dê ao material um nome descritivo, como DetailTexturing.
Usando a função de material de Texturização de detalhes
-
Abra o material clicando duas vezes no recurso no Navegador de conteúdo. O Editor de materiais é aberto.
-
Encontre as quatro texturas a seguir no Conteúdo inicial. Arraste-as do Navegador de conteúdo até o gráfico de materiais.
- T_Brick_Clay_Old_D
- T_Brick_Clay_Old_N
- T_Ground_Gravel_D
- T_Ground_Moss_N
Ao terminar, seu gráfico de materiais terá esta aparência:
-
Clique com o botão direito do mouse no gráfico de materiais e procure "Texturização de detalhes" no menu de contexto. Clique em DetailTexturing na categoria Diversos para adicionar a função de material ao seu gráfico.
-
Uma função de material DetailTexturing é criada no gráfico de materiais.
-
Neste exemplo, T_GroundGravel_D e T_Ground_Moss_N serão usadas como texturas de detalhes. Para conectar as texturas de detalhes à função de material, elas devem ser convertidas em objetos de textura. Clique com o botão direito do mouse em T_GroundGravel_D e T_Ground_Moss_N e converta-as em objetos de textura.
-
Conecte todos os nós conforme mostrado abaixo. As duas texturas de tijolos devem se conectar às entradas Diffuse e Normal, e os dois objetos de textura devem se conectar aos pins DetailDiffuse e DetailNormal. Transmita a saída de Diffuse para Cor de Base e a saída Normal para a entrada Normal no Nó de Material Principal.
-
Valores adicionais são necessários para controlar a escala e a intensidade das texturas. Você pode usar uma expressão de material Constante ou Parâmetro escalar para essas entradas. Esse exemplo usa três parâmetros escalares denominados Escala, Intensidade difusa e Intensidade normal. O valor padrão em todos esses três nós é definido como 1.
-
Conecte os parâmetros escalares às suas entradas correspondentes. Ao terminar, seu gráfico de materiais terá esta aparência:
-
Ao ajustar os valores nos parâmetros escalares, você pode modificar a aparência das texturas de detalhes. Aqui está um exemplo do que acontece quando você define a escala como um valor de 1, depois 5 e, finalmente, 10. A textura de detalhes ladrilha mais vezes na malha, o que significa que a própria textura parece menor ou mais fina.
Configurando a texturização de detalhes manualmente
Se, por qualquer motivo, você não puder usar a função de material de Texturização de detalhes, poderá criar essa funcionalidade dentro do gráfico de materiais usando os nós de expressão de material e as instruções abaixo.
-
Duplique o primeiro material no Navegador de conteúdo clicando com o botão direito do mouse na miniatura e escolhendo Duplicar no menu de contexto. Renomeie o novo material como DetailTexturing_02 e clique duas vezes para abri-lo no Editor de materiais.
-
Exclua tudo, exceto as quatro texturas. Você também precisa converter os dois objetos de textura de volta em amostras de textura. Clique com o botão direito do mouse em cada nó do objeto de textura e escolha Converter em amostra de textura no menu de contexto.
- Os nós de expressão de material a seguir são necessários para criar texturas de detalhes manualmente. Você pode encontrar cada um dos itens a seguir pesquisando-os na Paleta ou usando a barra de pesquisa no menu de contexto acionado com o botão direito.
- Coordenada de textura x 1
- Fixação x 1
- Parâmetro escalar x 2
- Add x 2
- Multiply x 3
Ao terminar, seu gráfico de materiais terá esta aparência:

-
Depois de adicionar todos os nós ao gráfico, comece a conectá-los conforme mostrado. A imagem abaixo mostra a configuração correta para a parte da cor base do gráfico. Ao terminar, seu gráfico de materiais terá esta aparência:
Clique na imagem para ampliar.
-
A lógica criada na seção Cor de Base para controlar a escala da textura pode ser reutilizada com os mapas normais. Conecte os nós conforme mostrado abaixo.
Clique na imagem para ampliar.
-
Com a Cor de Base e o mapa normal agora todos conectados, o material está pronto para ser compilado, salvo e usado.
Clique na imagem para ampliar.
Dicas e truques de texturização de detalhes
A seção a seguir aborda algumas dicas e truques sobre diferentes maneiras de usar a texturização de detalhes em seus materiais.
Texturização de detalhes baseada na distância
Ao lidar com superfícies grandes, como terrenos, você pode perceber que, mesmo que suas texturas sejam ladrilhadas perfeitamente, há uma repetição perceptível que enfraquece a aparência da textura, especialmente quando vista à distância.
Para corrigir isso, você pode modificar o material de detalhes que foi criado anteriormente para permitir que ele exiba uma textura quando a câmera estiver próxima e outra textura quando a câmera estiver distante. Isso geralmente é chamado de mesclagem de textura baseada na distância. Você pode implementar isso seguindo as instruções abaixo.
-
Primeiro duplique o material DetailTexturing_02 e renomeie-o como DistanceFade. Abra o material.
-
Você pode excluir a maioria das conexões de nó do material original, mas não exclua as quatro texturas. Você também deve manter a seção denominada Controles de escala abaixo. Pesquise e adicione as seguintes expressões de material ao seu gráfico.
- World_Position x 1
- Camera_Position_WS x 1
- Distance x 1
- Divide x 1
- Power x 1
- Clamp x 1
- Constant x 2
Ao terminar, seu gráfico de materiais terá esta aparência:
-
Altere os valores nas duas expressões de material Constant para 512 e 4 e, em seguida, conecte os nós na configuração mostrada abaixo. A distância na qual a mesclagem de texturas ocorre é controlada pela primeira Constant que é conectada à expressão de material Divide (definida como 512 na imagem de exemplo). O gráfico de materiais mostrado abaixo fornece toda a lógica necessária para misturar texturas com base na distância.
-
Agora, você pode conectar a lógica de atenuação de distância ao restante do gráfico. Primeiro, adicione dois nós Interpolação linear (Lerp) ao gráfico. A entrada Alfa nos nós Lerp conduzirá a transição entre as duas texturas. Termine a fiação do material conforme mostrado abaixo.
-
Para visualizar o efeito, mantenha pressionado o botão direito do mouse na janela de visualização do material e mova o mouse para cima e para baixo para aumentar e diminuir o zoom. Quando a câmera estiver a 512 unidades de distância da esfera, o material fará a transição de tijolo para cascalho. Se você não consegue ver isso acontecendo, pode ajustar o valor em Constant conectado ao nó Divide. Reduzir o valor de 512 para algo menor fará com que a transição ocorra mais cedo.
Conclusão
A texturização de detalhes é uma ferramenta muito poderosa que pode melhorar a aparência dos materiais complementando as texturas básicas com texturas de detalhes altamente repetidas. Lembre-se de que a texturização de detalhes só pode ajudar a ocultar a pixelização até certo ponto, e permitir que a câmera do jogador amplie os objetos em um grau irracional pode anular os benefícios da texturização de detalhes. Lembre-se também de que adicionar texturização de detalhes pode adicionar duas ou mais pesquisas de textura adicionais ao seu material, o que pode apresentar problemas de desempenho ou memória, especialmente em plataformas móveis.