Renderização Baseada em Física (PBR) texturas permitem representar sombreamento e iluminação realistas usando múltiplos tipos de imagens de textura, ou mapas, em um único objeto. A combinação de múltiplos mapas de textura pode simular com mais precisão a cor, rugosidade e refletividade em qualquer ambiente de iluminação e pode aprimorar os elementos visuais de seus ativos e ambiente.


Várias aplicações e fluxos de trabalho estão disponíveis para criar texturas PBR. Você pode usá-las durante as fases de modelagem e texturização da criação de objetos 3D personalizados, desde que o Roblox Studio suporte os mapas de textura específicos que você está utilizando.
Este guia fornece instruções sobre como configurar seus objetos de malha para usar mapas de textura PBR e descreve casos de uso comuns e melhores práticas para os mapas de textura suportados pelo Roblox. Ao criar suas próprias superfícies, consulte as referências de material para valores de materiais comuns, comparações de imagens e exemplos de vestuário.
Ativar aparência de superfície
Você pode adicionar texturas PBR a qualquer MeshPart adicionando um objeto SurfaceAppearance que sobrescreve a textura originalmente atribuída. Em geral, você não pode modificar as propriedades de SurfaceAppearance por scripts durante um jogo porque o mecanismo requer algum pré-processamento para exibir esses gráficos. Semelhante à adição de uma textura básica, cada mapa de imagem de textura deve apontar para o ID de ativo de imagem carregado apropriado.
Para ativar a aparência de superfície para um MeshPart:
Na janela Explorer, passe o mouse sobre o MeshPart e clique no botão ⊕.
Insira um SurfaceAppearance no menu contextual.

Quando estiver pronto para adicionar mapas de textura ao objeto SurfaceAppearance, você pode clicar em cada propriedade do mapa na janela Properties e inserir um ID de ativo.
Mapas de textura
Atualmente, o Studio suporta 5 tipos de mapas de textura PBR: cor, normal, rugosidade, metalicidade e emissivo. Cada um desses mapas corresponde a um aspecto importante da aparência da superfície do objeto. Os mapas de textura apenas mudam a aparência visual e não afetam a geometria do objeto MeshPart.
Consulte os exemplos a seguir para uma visão geral dos mapas de textura suportados pelo Roblox e recursos adicionais:
A propriedade ColorMap define os dados de cor da superfície, incluindo qualquer transparência presente no mapa. Consulte cor (albedo) para informações adicionais.



Cor (albedo)
O mapa de cor, ou albedo, determina a cor da sua textura e consiste em informações de cor, com pouca ou nenhuma informação de iluminação ou textura. Para personalização adicional, você também pode adicionar transparência em sua textura de albedo, adicionando opacidade ao seu mapa de imagem.
Modos alpha
Para objetos que requerem seções parciais ou completas de transparência, como grama, folhas, renda ou decalques como sujeira ou grunge, você pode usar vários modos alpha para aplicar transparência ao seu mapa de cor. Se o formato da imagem do seu mapa de cor suporta canais alpha, você pode aplicar um mapa alpha em escala de cinza onde 0.0 é transparente e 1.0 é opaco. Da mesma forma, ao usar um formato de imagem como um .png, qualquer opacidade no mapa de cor se aplica como transparência no ativo.
Você pode aplicar transparência em dois comportamentos diferentes definindo os seguintes valores de AlphaMode:
- Sobreposição — Sobrepõe o ColorMap sobre a MeshPart.Color subjacente. Mapas de cor que usam o modo sobreposição revelam a cor base da malha onde quer que a transparência esteja presente. Esta é a configuração padrão.
- Transparência — Remove a malha visível com base na transparência no ColorMap. Isso torna a malha transparente e não revela a cor original da malha sempre que a transparência está presente.
Opaco
Você pode usar o modo Enum.AlphaMode.Opaque para ignorar completamente o canal alpha do ColorMap. Nesse caso, o valor alpha é presumido como 1 (totalmente opaco).
O seguinte exemplo demonstra como o modo Opaque funciona usando um objeto azul como referência:
Sobreposição
Você pode usar Enum.AlphaMode.Overlay para revelar seções da cor original da malha. Como as áreas transparentes do mapa de cor expõem a cor subjacente, você pode criar um mapa de textura exclusivo que revela parcial ou totalmente a propriedade de Color da malha para tons de pele personalizados ou outras situações com cores exclusivas.
O seguinte exemplo demonstra como o modo Overlay funciona usando uma esfera azul clara como referência:
O seguinte exemplo usa o modo Overlay para personagens personalizados, revelando o tom de pele original do personagem:


Consulte tonalidade de pele personalizada para detalhes adicionais sobre como otimizar uma sobreposição para pele e aplicações semelhantes.
Transparência
Você pode usar o modo Enum.AlphaMode.Transparency para criar objetos complexos ou extremamente finos, como renda ou rede, removendo partes visíveis da malha como uma alternativa à escultura da geometria da malha. Como isso não afeta a geometria do objeto de malha, isso pode permitir que você crie objetos detalhados sem o impacto no desempenho de um modelo de malha intrincado.
O seguinte exemplo demonstra como uma transparência parcial e total neste modo remove visualmente seções da malha:



Existem dois resultados do modo Transparency, dependendo de se MeshPart.Transparency está definido como 0 ou pelo menos 0.02, embora a precisão numérica possa resultar em pequenos valores como 0.01 acionando a transparência opaca.
- Quando o alpha é usado para cortar a forma de objetos principalmente opacos com bordas duras, como folhagens, tecidos de renda e redes, defina MeshPart.Transparency como 0. Quando partes da superfície são totalmente opacas, o mecanismo do Roblox pode renderizá-las com a oclusão baseada em profundidade adequada. Superfícies opacas geralmente funcionam melhor com efeitos baseados em profundidade como DepthOfFieldEffect, refração de vidro e água, e reflexão na água.
- Quando o alpha é usado para adicionar detalhes a objetos semitransparentes ou objetos com gradientes suaves de transparência, defina MeshPart.Transparency para pelo menos 0.02. Isso melhora a qualidade de mistura para objetos como janelas sujas e penas de borda suave, mas não funcionará com todos os efeitos.
Máscara de tonalidade
Você pode usar o modo Enum.AlphaMode.TintMask para aplicar tingimento da SurfaceAppearance.Color em áreas seletivas de uma superfície. O tingimento é mais forte onde o canal alpha está totalmente visível e não é aplicado onde o canal alpha está transparente.

Tingimento de cor
Você pode aplicar uma tonalidade ao seu mapa de cor modificando a propriedade SurfaceAppearance.Color. O tingimento não afeta o desempenho e você pode economizar memória reutilizando um único mapa de cor com diferentes tonalidades. Use o tingimento de cor para criar variações adicionais de baixo custo entre suas texturas PBR do MeshPart ou para modificar programaticamente as cores da sua superfície PBR em tempo real.



O tingimento SurfaceAppearance.Color se aplica como um multiplicador, então a aparência final é uma função de Color3 (cor texel) vezes SurfaceAppearance.Color. Isso significa que criar seu original SurfaceAppearance.ColorMap em cores escala de cinza próximo ao branco cria o efeito de tingimento mais forte quando essa propriedade é aplicada.
O tingimento se aplica apenas ao SurfaceAppearance.ColorMap e não ao MeshPart.Color. Você pode continuar usando canais alpha ao aplicar transparência.
Quando SurfaceAppearance.AlphaMode está definido como Overlay e um canal alpha está presente, o MeshPart.Color subjacente é revelado e o tingimento SurfaceAppearance.Color se aplica apenas ao mapa de cor visível SurfaceAppearance.
Quando SurfaceAppearance.AlphaMode está definido como TintMask e um canal alpha está presente, o canal alpha controla a quantidade de tingimento da SurfaceAppearance.Color. O tingimento é mais forte onde o canal alpha está totalmente visível e não é aplicado onde o canal alpha está transparente.

Normal
O mapa normal, ou superfície, adiciona profundidade de textura à sua superfície e se comporta de maneira semelhante a um mapa de altura. Como resultado, o efeito pode desaparecer ou intensificar dependendo do ângulo de visão e do ambiente de iluminação.
Na figura a seguir, você pode alternar entre a referência de malha e a referência de mapa para comparações dos valores de mapas normais:



Os canais R, G e B da imagem correspondem, respectivamente, aos componentes X, Y e Z do vetor de superfície local. Uma imagem uniforme de cor [127, 127, 255] se traduz em um mapa normal completamente plano. O Roblox apenas suporta mapas normais no formato OpenGL - Espaço Tangente.
Mapas normais afetam proeminentemente a superfície visual de uma malha e podem acentuar costuras estranhas em sua textura. Sempre que possível, mantenha suas costuras de textura escondidas para evitar problemas visuais com sua malha.
Rugosidade
Rugosidade, ou microsuperfície, mapas determinam como a luz é espalhada pela superfície do seu modelo. Quando a rugosidade está a 0%, a superfície não dispersa a luz, resultando em um reflexo e brilho muito mais nítidos no seu material. Em 100%, a luz e os reflexos se espalham uniformemente sobre o modelo, resultando em uma superfície menos reflexiva, semelhante a um acabamento fosco.
A figura a seguir mostra comparações de vários valores de mapas de rugosidade:



A rugosidade pode impactar o quão reflexivo um objeto é em diferentes ângulos, referido como o efeito Fresnel. O processamento fresnel do Studio busca uma precisão física do mundo real, embora você possa ter uma contribuição especular inesperada em certos ângulos mesmo em superfícies rugosas. Em alguns casos, você pode compensar aumentando o valor do seu mapa de rugosidade em cerca de 0.1 para obter uma resposta de iluminação consistente com seus materiais.
Embora o Roblox renderize esse efeito de iluminação com precisão, o brilho e a refletividade de uma superfície podem não responder consistentemente entre seu software de criação de conteúdo de textura, como Substance Painter, e o Studio. Consulte exemplos de vestuário para as diferenças de renderização entre as aplicações.
Metalidade
Metalidade determina a refletividade de uma superfície. Na maioria dos casos, você deve definir este valor como 0% (não metálico) ou 100% (metálico), embora você possa usar valores de metalidade parcial ao criar superfícies com propriedades reflexivas moderadas, como cetim ou seda. Essa prática pode enganar sutilmente os reflexos no material para destacar a cor do mapa de cor/albedo em relação às cores refletidas no ambiente.
Veja a figura a seguir para comparações de vários valores de mapas de metalidade:



Diferentes renderizadores PBR usam vários fluxos de trabalho para processar a refletividade. O Studio apenas usa o fluxo de trabalho de metalidade que determina se um material é não metálico ou metálico, às vezes referido como um isolador ou condutor.
Máscara Emissiva
Uma textura de conteúdo em escala de cinza EmissiveMaskContent aplica uma máscara emissiva sobre a superfície. Isso permite que você use uma textura para controlar a emissividade para um controle artístico mais detalhado do que o material Neon, que funciona tudo ou nada, e permite que você crie efeitos brilhantes detalhados como texto iluminado, armaduras futuristas ou criaturas bioluminescentes.
A propriedade associada EmissiveTint determina a cor de tingimento para a contribuição emissiva, e EmissiveStrength determina a força da contribuição emissiva.







