Guia

Como fazer um texture pack PBR para Visuais Vibrantes e shaders

Um texture pack PBR dá aos blocos mais do que cores: quanto eles brilham, que partes são de metal, quais emitem luz e quanto relevo eles mostram na luz. Os Visuais Vibrantes do Minecraft Bedrock leem esses mapas de conjuntos de texturas, e no Java os shaders PBR para Iris e OptiFine os leem no formato labPBR. O Texture Pack Maker cria os dois no seu navegador a partir das suas texturas, com materiais rápidos como metal, vidro e pontos luminosos de minério.

Atualizado em

O que os mapas fazem

Cada pixel de uma textura ganha alguns números a mais. A aba Material os chama pelo que você vê; a tabela mostra onde cada um vai nos arquivos:

No editorO que fazJava (labPBR)Bedrock (conjunto de texturas)
BrilhoSuperfícies lisas mostram reflexos nítidos; as ásperas ficam foscas._s vermelho: lisuraMER azul: aspereza
MetalMetal reflete o céu na própria cor, como ferro ou ouro._s verde: 230–255MER vermelho: metalicidade
Luz própriaEmite luz, até de noite, como a pedra luminosa ou as gemas dos minérios._s alfa: 0–254MER verde: emissão
Luz atravésA luz passa pelas partes finas, como nas folhas._s azul: 65–255MERS alfa (só Visuais Vibrantes)
RelevoA luz e a sombra mostram saliências e buracos numa face plana._n vermelho e verde, altura no alfaUm mapa de normais

Sem material, uma textura fica como sempre. No Java a textura de cor fica onde está e os mapas vão ao lado dela.

Passo a passo

  1. Abra o Texture Pack Maker e crie um pack para Java ou Bedrock, ou abra um que você já tem.
  2. Escolha uma textura de bloco ou de item, por exemplo o minério de diamante, e abra a aba Material, ao lado de Prévia.
  3. Escolha um material rápido como Metal, Vidro ou Pontos luminosos. O bloco 3D iluminado mostra o material sob um sol que se move.
  4. Ajuste Brilho, Metal, Luz própria e Luz através para a textura inteira, ou adicione uma parte (pixels coloridos, claros ou escuros, algumas cores ou uma área que você seleciona) com valores próprios.
  5. Ligue Relevo a partir das cores e escolha a força; depois use Usar em texturas parecidas para dar o mesmo material a todos os minérios, tábuas ou troncos.
  6. Clique em Exportar. O Java recebe _n.png e _s.png ao lado de cada textura; o Bedrock, conjuntos de texturas e a capacidade pbr.

Pontos luminosos de minério e outras partes

Uma parte dá valores próprios a alguns pixels. Pixels coloridos encontra as gemas de um minério na pedra cinza, Pixels claros a luz de uma lâmpada, Pixels de algumas cores exatamente as cores em que você clica, e Uma área que você seleciona um retângulo feito com a ferramenta de seleção. Uma imagem pequena mostra quais pixels cada parte cobre.

Usar em texturas parecidas copia o material para os outros lados do mesmo bloco e para cada textura cujo nome termina ou começa com a mesma palavra: todas as texturas *_ore, todas as oak_* e assim por diante. Cada uma mantém as próprias cores, então as partes e o relevo seguem os pixels dela.

Java: mapas labPBR para shaders

O Java não tem PBR próprio: quem desenha é um shader pack no Iris ou no OptiFine. O editor grava os dois mapas labPBR ao lado de cada textura, por exemplo assets/minecraft/textures/block/stone_n.png e stone_s.png (textures/blocks/ antes da 1.13), no tamanho com que a textura é exportada. A lisura é perceptual (1 menos a aspereza), o que não é metal recebe um F0 de cerca de 4 %, e um pixel sem luz própria tem alfa 255, para que imagens sem alfa nunca brilhem.

Ligue um shader que leia mapas labPBR; nas configurações dele isso costuma se chamar labPBR ou suporte a pacotes de recursos, e o shader decide a força dos reflexos e da luz. Os shaders do criador de shaders deste site ainda não usam esses mapas.

Bedrock: conjuntos de texturas para os Visuais Vibrantes

O Bedrock lê um conjunto de texturas ao lado da textura de cor. Pontos luminosos e relevo são imagens:

{
  "format_version": "1.16.100",
  "minecraft:texture_set": {
    "color": "diamond_ore",
    "metalness_emissive_roughness": "diamond_ore_mer",
    "normal": "diamond_ore_normal"
  }
}

Um valor só para a textura inteira não precisa de imagem:

{
  "format_version": "1.16.100",
  "minecraft:texture_set": {
    "color": "iron_block",
    "metalness_emissive_roughness": [255, 0, 70]
  }
}

A luz através é o quarto canal de metalness_emissive_roughness_subsurface (formato 1.21.30, só Visuais Vibrantes) e é gravada como TGA para que o alfa fique como está. Um conjunto de texturas só pode citar imagens do mesmo pack, então o editor também põe a textura de cor, mesmo que você não a tenha pintado. O pack declara a capacidade pbr, sem a qual os Visuais Vibrantes ficam desligados:

{
  "format_version": 2,
  "header": {
    "min_engine_version": [1, 21, 120],
    …
  },
  "modules": [ … ],
  "capabilities": ["pbr"]
}

O jogo tem conjuntos de texturas próprios para a maioria dos blocos. Com os Visuais Vibrantes, um conjunto do jogo mostraria a textura de cor dele em vez da sua, então cada textura que você muda sem material recebe uma cópia do conjunto do jogo no seu pack. As configurações dos Visuais Vibrantes explicadas.

Abrir um pack com mapas PBR

Abra um pack de Java com mapas labPBR ou um de Bedrock com conjuntos de texturas, e os mapas aparecem na aba Material das texturas deles. Eles são exportados exatamente como estavam até você mudar aquele material.

Perguntas frequentes

Preciso de uma placa de vídeo RTX?

Não. Os Visuais Vibrantes rodam em muitos PCs, consoles e celulares mais novos, e os shaders labPBR rodam na maioria das placas de vídeo que aguentam shaders. O modo de traçado de raios, mais antigo, do Bedrock lê os mesmos conjuntos de texturas, exceto os materiais que deixam a luz passar: esses usam uma camada que só os Visuais Vibrantes leem.

Por que meu pack fica igual no jogo?

Bedrock: coloque o modo gráfico em Visuais Vibrantes e deixe o pack no topo dos recursos globais. Java: ligue um shader com suporte a labPBR e confira a configuração de materiais ou de pacotes de recursos dele. Sem um dos dois, o Minecraft só mostra as cores.

Os materiais funcionam em itens e mobs?

Sim, nos Visuais Vibrantes e na maioria dos shaders labPBR. O editor sempre grava mapas de normais, nunca mapas de altura, porque os Visuais Vibrantes não conseguem usar mapas de altura em itens.

Por que o metal deve ser 0 ou 100?

Coisas de verdade são de metal ou não, e tanto o labPBR quanto os Visuais Vibrantes tratam cada pixel como uma coisa ou outra. Valores no meio ficam cinzentos e sem graça. Para uma pedra brilhante, aumente o Brilho e deixe o Metal em 0.