Olá pessoal!

Este é o primeiro de dois tutoriais, feitos com referência à versão 2019 do Substance Painter, sobre a exportação de Texturas deste programa para vários destinos: de outro software 3D (como Unity, Unreal, V-Ray e outros), para conjuntos de Texturas genéricas para o paradigma PBR (Physically Based Rendering).

Nos tutoriais que publiquei até agora na Playlist do Youtube "Videotutoriais Substance Painter - All", de fato, mostrei como usar Materiais, máscaras, pincéis e outras ferramentas, mas não como exportar os resultados obtidos no formulário de imagens de texturas mapeadas por UV para usar, em modelos, em outro software.

Esta operação pode parecer simples (em teoria, basta clicar em Exportar Texturas no menu Arquivo e prosseguir), mas na realidade existem algumas coisas a se ter em mente, especialmente para evitar erros na fase de Exportação (na janela de Log do Substância) ou, pior ainda, nas Texturas geradas pelos diversos programas, que acabariam exibindo outros materiais que não os criados na Substância.

Ao contrário da maioria dos meus tutoriais do Substance Painter, os Ativos (modelos 3D e outros ativos) usados ​​neste tutorial NÃO estão disponíveis; no entanto, você pode seguir o tutorial e aprender sem ter que replicar operações com esses objetos em particular!

Ok, fiz todas essas premissas, vamos começar!

O PROJETO QUE USAREMOS NESTE TUTORIAL

Criei um novo projeto de Substância com o template “PBR - Metallic Roughness (Allegorithmic)”, o mesmo utilizado nos vídeos tutoriais publicados anteriormente no Playlist do Youtube; depois de importar um modelo 3D, eu equipei este modelo com alguns materiais padrão da substância, que então - com o modelo escolhido - apresentam os seguintes canais de informação:

  • Base Color
  • Height
  • Roughness
  • Metallic
  • Normal

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 01

EXPORTAMOS COM O PRESET PARA UNIDADE 5 (PADRÃO METÁLICO)

Agora, suponha que queremos exportar os conjuntos de texturas (três, no meu caso: um para cada conjunto de texturas na lista de conjuntos de texturas), por exemplo, para o Unity 2019.

Primeiro, vamos abrir o menu Arquivo e escolher o item Exportar Texturas.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 02

Na janela “Exportar Documento - Exportar” podemos definir alguns parâmetros; entre estes, notamos em particular:

  • clicando no botão da parte superior, o caminho no disco onde serão armazenadas como imagens das Texturas a moldar; ao lado deste botão, o formato do arquivo (por padrão, deve ser PNG) e a profundidade de bits (por padrão, 8 bits por canal);
  • no menu Config, a predefinição de exportação; no nosso caso, escolhemos Unidade 5 - Metálico Padrão;
  • a resolução de Texturas; conforme antecipado em um tutorial anterior da Playlist, é possível trabalhar com uma resolução reduzida e depois definir uma resolução superior, para que as Texturas sejam geradas na exportação, aqui.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 03

Em teoria, portanto, tudo deveria estar pronto para exportação, porém clicando em Exportar obtemos a mensagem de erro "Exportação concluída com alguns erros (ver Logs)" ...

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 04

ERROS DE EXPORTAÇÃO: CANAIS DE INFORMAÇÕES AUSENTES

Então, vamos dar uma olhada na guia Logs, que pode ser ativada em Window - View - Log, se não estiver disponível.

Nesta ficha, lemos que nos três Conjunto de Texturas faltam dois canais de informação: OPACIDADE e EMISSÃO.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 05

Para entender o motivo desse erro, abrimos novamente a janela Exportar Texturas, no menu Arquivo, mas desta vez vamos para a aba CONFIGURAÇÃO, na janela “Exportar Documento”, em seguida, selecionamos o preset Unidade 5 - Metálico Padrão para examinar isto.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 06

Como podemos ver, a predefinição de exportação para Unity 5 com fluxo de trabalho Metálico permite a criação de 4 imagens de texturas:

  • uma imagem do tipo RGB + A (onde A significa Alpha, o canal de opacidade ou transparência), denominada "Transparência Albedo", que será passada para o canal Unity Albedo e que terá a Cor Base nos três canais RGB e a Opacidade mapa no canal Alfa;
  • uma imagem do tipo RGB + A, que neste caso armazenará as informações Metálicas em RGB e, no canal de transparência Alfa, as informações provenientes do Mapa Convertido - Brilho;
  • uma imagem do tipo RGB, chamada Normal, criada não a partir de Input Map - Normal, mas de Converted Map - Normal OpenGL; esta distinção é importante porque o mapa assim gerado trará não só as informações definidas no canal Normal, mas também aquelas definidas no canal Altura (lembra, por exemplo, meu tutorial sobre o descolamento da correia?); desta forma, Normal e Height serão mesclados em um único mapa Normal que pode ser usado pelo Unity 5;
  • por fim, uma imagem RGB, denominada Emission, gerada a partir do Input Maps - canal Emissive, útil para materiais emissores de luz (lâmpadas, chamas, lâmpadas LED, neon, etc.).

ESCOLHA DO FORMATO DE ARQUIVO CERTO, COM BASE NOS CANAIS

A existência de imagens RGB + A, portanto com o canal de transparência, neste preset, também nos faz entender outra coisa: na aba Exportar teremos que escolher um formato de arquivo capaz de encapsular estes 4 canais.

O item selecionado por padrão pela substância, que é PNG de 8 bits, está bem, porque o formato PNG já fornece os 4 canais RGBA, enquanto um formato de arquivo como JPG ou BMP não seria bom, porque esses formatos fornecem apenas os três Canais RGB, sem a informação Alpha, então - no caso do Preset Unity 5 Metallic - tanto a transparência (Opacity) quanto a Suavidade do material (Glossiness) estariam faltando.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 07

ADICIONE CANAIS DE INFORMAÇÃO PARA CONJUNTOS DE TEXTURA

Ok, dissemos que também precisamos das informações de Opacidade e Emissivo; sim, mas como agregar esses canais de informação aos nossos Materiais?

A resposta está na aba Texture Set Settings: aqui encontramos a lista de canais de informação presentes para um material e, ao lado de cada canal, também um detalhe técnico: a cor ou espaço de informação a ser associado a cada canal; por exemplo, para Base Color temos, como configuração padrão, sRGB8, ou seja, uma imagem colorida no espaço de cores sRGB com 8 bits de informação por canal, enquanto para os canais que podem ser expressos em tons de cinza (como Rugosidade e Metálico) temos um número de 8 bits no espaço linear (a letra L), enquanto para Altura temos uma imagem no espaço linear de 16 bits em ponto flutuante (16F) e para Mapas normais temos uma imagem colorida (RGB) com 16 bits de ponto flutuante precisão (16F).

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 08

Observe que 16 bits de informação são fornecidos para Altura e Normal, mas tenha em mente que na fase de exportação, com as configurações padrão da guia Exportar Documento (onde, como vimos, o valor definido é de 8 bits), esta informação ainda será compactado para caber em 8 bits.

Para adicionar os canais de Opacidade e Emissão ao Conjunto de Textura atualmente selecionado, clique no símbolo + ao lado de Canais e escolha esses canais da lista que aparecerá; O Substance Painter definirá automaticamente o tipo de dados a ser usado para esses dois canais (para registro, este é um número de 8 bits no espaço linear, L8, para Opacidade, que é então expresso com uma imagem em tons de cinza, enquanto para Emissivo temos uma imagem colorida, no espaço de cores sRGB8, porque a emissão de luz também pode ser colorida: portanto não é a simples intensidade da emissão, que poderíamos ter expresso com L8, gerando uma imagem em escala de cinzas, mas tanto em cores como intensidade).

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 09

Mas tenha cuidado: adicionamos esses dois canais de informação apenas para o Conjunto de texturas atual; para evitar erros, devemos repetir a operação para os outros Conjuntos de Textura do projeto também ...

… Ou, da próxima vez, crie o projeto com um Template adequado aos nossos propósitos; por exemplo, no que diz respeito ao Unity 5, o Substance Painter 2019 fornece o modelo "Unity 5 (Allegorithmic)", ao criar um novo projeto, a fim de encontrar essas e outras configurações já otimizadas para exportação para o Unity 5. No próximo tutorial, em que veremos como criar uma predefinição personalizada, também veremos como criar nosso próprio modelo.

VERIFIQUE AS INFORMAÇÕES DE TODOS OS CANAIS; USANDO A CAMADA DE PREENCHIMENTO

Depois de adicionar os canais de informação que faltam para todos os conjuntos de textura, olhamos para esses canais separadamente na visualização 3D, escolhendo-os no seletor no canto superior direito da visualização 3D ou pressionando o atalho "C" várias vezes, para alterá-los ciclicamente (atalho “M” para retornar à visão geral do Material).

Para alguns canais notamos que, na realidade, a Substância não está gerando a informação: notamos isso devido à Textura tabuleiro de damas aplicada, no meu exemplo, a canais como Normal, Altura, Opacidade e Emissão.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 10

A ausência dessa informação pode constituir um problema considerável durante a fase de exportação: a substância, de fato, vai acabar dando valor a esses canais nas Texturas, tipicamente definindo a cor de algumas Texturas como Opacidade ou Emissão para preto; se para Emissão isso geralmente está bem (porque na maioria dos casos os materiais não emitem luz), não é bom para Opacidade, porque Opacidade em preto (ou seja, 0) na verdade significa objeto transparente!

Existem várias soluções possíveis para este problema; aqui eu digo o que eu costumo fazer: para cada Conjunto de textura do projeto, adiciono, na parte inferior, uma camada de preenchimento padrão, que é um nível de preenchimento; por padrão, este tipo de camada tem Altura e Emissão em 0,0 (preto: sem relevo ou emissão de luz) e, por outro lado, Opacidade em 1,0 (branco, objeto opaco, não transparente): configurações que, na maioria dos casos, vão muito bem.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 11

A Camada de Preenchimento deve ser inserida, conforme mencionado, na parte inferior da pilha de Camadas de cada Conjunto de Textura: desta forma não cobrirá as informações das outras camadas presentes e acabará apenas preenchendo os canais de informação faltantes com valores padrão , geralmente, eles ficarão bem.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 12

RESUMO ...

Em resumo: quando criamos um projeto, devemos começar escolhendo o Template apropriado com base no software de destino, a fim de ter os canais de informação e outras configurações adequadas.

No caso de faltar canais de informação, podemos resolver o problema adicionando os necessários (e eventualmente modificando as configurações técnicas) em Texture Set Settings, para cada Texture Set presente na Lista, para o projeto atual.

Antes de prosseguir com a exportação, podemos percorrer os canais com C na visualização 3D para identificar qualquer informação em falta e, se necessário, resolver o problema com uma Camada de Preenchimento, que é um nível de preenchimento a ser colocado na parte inferior da pilha de camadas e materiais na guia Camadas, para cada Conjunto de textura do projeto.

Por fim, antes de exportar tudo, verifique o formato do arquivo, configurando um com canal Alfa (por exemplo, PNG) se essa informação for necessária, caso contrário, outro formato, dependendo de suas necessidades.

Para esta primeira das duas parcelas sobre exportação de texturas do Substance Painter, é isso!

No próximo episódio veremos como definir nosso próprio Preset de exportação customizado, a fim de exportar as Texturas que nos interessam e, entre outras coisas, criá-las com um esquema de nomes customizado, utilizando as variáveis ​​macro Substance; também veremos como criar nosso próprio modelo, com as configurações que pretendemos ter para todos os nossos novos projetos.

Como sempre, convido você a expressar dúvidas, perguntas ou pedidos de esclarecimento nos comentários ao vídeo no Youtube. Vejo você em breve!