Máscaras e texturas
Continuamos uma série de lições sobre como se tornar um artista de superfície.
Parte 1. Pixel aqui .
Parte 2. Máscaras e texturas - você lê.
Parte 3. PBR e materiais aqui .
Parte 4. Modelos, normais e varra aqui .
Parte 5. Sistema de material aqui .
Máscaras
Na última parte, vimos como os canais funcionam e nossa primeira máscara que eu criei - a máscara de transparência.
A máscara de transparência no exemplo de gato foi criada usando um canal separado chamado canal alfa. Este canal também tinha uma dimensão de 8 bits por pixel.
Cada pixel da máscara pode ter um valor de 0 a 255 (ou até 1), onde 0 é um pixel completamente transparente e 255 (ou 1) é um pixel completamente NÃO transparente.
Agora, se você olhar para o canal Alpha como um canal regular, ficará claro que não é diferente de nenhum outro canal RGB. Na verdade, esses são todos os mesmos pixels que têm a mesma intensidade de 0 a 255 (até 1). Este é o mesmo gradiente cinza. E se pegássemos outro canal, o copiassemos e colássemos no canal Alpha, teríamos um efeito interessante:

A máscara é sobreposta a toda a imagem, mas onde a intensidade do pixel é a mais brilhante possível (perto de 1 ou 255), a cor da máscara é a menor e onde a intensidade é a mais baixa possível (mais próxima de 0), a máscara é exibida com muita clareza:

E agora, se você exportar essa imagem e a abrir em qualquer programa para visualização de imagens, você obtém a seguinte imagem:

A maioria dos pixels possui uma semitransparência de acordo com a intensidade indicada no canal alfa. Mas se a máscara de transparência é igual a outros canais, a questão é: é obrigatório usá-la no canal Alpha?
De fato, não necessariamente. O canal alfa é necessário para que a imagem possa salvar dados de cores e ter dados de transparência. Ou seja, verifica-se que na imagem 1 pixel possui 3 canais necessários e o 4º canal é opcional e opcional.
No total, em nossa imagem não existem 32 bits de cor, mas apenas 24 bits de cor (8 bits * 3 canais) + 8 bits de transparência. Além disso, podemos não incluir o canal de transparência na imagem e, em seguida, o tamanho do arquivo será 1/4 menor.
O que é uma máscara?
Máscara na texturização (sim, provavelmente, e não apenas) Esta é uma imagem que consiste no 1º canal e é necessária para regular outros canais e visualizar os parâmetros de textura (isso já é PBR, e vamos encontrá-lo um pouco mais tarde).
Ou seja, a máscara é usada para resolver 2 problemas:
- Determinando o grau de transparência.
- Determinando a intensidade de algo em um pixel (mais sobre isso mais tarde, mas necessário).
De fato, não é necessário dividir o trabalho das máscaras em duas tarefas - tanto ali quanto ali é usado um grau de intensidade, apenas no primeiro caso de transparência e no segundo caso com o objetivo de regular a aparência da textura.
Agora examinaremos claramente o princípio de operação das máscaras no Substance Painter e tentaremos colocar um chapéu no meu gato.
Para isso, criaremos um novo projeto, apontaremos e adicionaremos nossas fotos do chapéu e gato ao programa. (Nota: O Substance Painter não permitirá que você crie um projeto sem um modelo 3D, então eu criei um plano quadrado no Autodesk Maya. A criação de modelos está além do escopo de nossos tutoriais, portanto você precisa encontrar essas informações por conta própria. Também não examinaremos em detalhes a interface do Substance Painter, para não atrasar ao máximo os tutores, no entanto, você está trabalhando com o Substance Painter pela primeira vez; se não clicar em mais nada, todas as janelas deverão ser exibidas corretamente e não será difícil encontrar os parâmetros necessários)

Em seguida, precisamos criar duas camadas de preenchimento:

A camada de preenchimento no Substance Painter é um conjunto enorme de parâmetros para a aparência da textura. Aqui você pode personalizar visualmente a apresentação de metal, plástico e outras texturas. No entanto, falaremos sobre isso mais tarde, e agora devemos ter uma idéia clara de que a camada de preenchimento é uma imagem (Cor), composta por 3 canais e vários canais adicionais de 8 bits, responsáveis pela aparência dessa camada de preenchimento.
Ou seja, a camada de preenchimento possui uma combinação mais complexa do que uma imagem regular. Nesse caso, a camada de preenchimento consiste em:
- 3 canais principais alocados para a construção de cores. Esses três canais são combinados em um parâmetro BaseColor.
- 3 canais adicionais, cada um dos quais é responsável por algum tipo de efeito visual (por exemplo, o canal Metal é responsável por quanto pixel será considerado metal em termos de texturas PBR).
- 3 canais para trabalhar com o mapa normal (mapa normal).
Não estamos interessados em canais adicionais agora, já que ainda não nos familiarizamos com a texturização de PBR, e definitivamente retornaremos a eles mais tarde, mas agora nossa tarefa é aprender a usar máscaras para controlar quais camadas dos pixels que precisamos dominar (no caso de máscara transparente), quais camadas serão completamente ocultas e quais serão exibidas de uma maneira única.
Agora, analisaremos isso em um gato e um chapéu, e depois passaremos para cores monótonas mais simples e analisaremos mais profundamente o uso complexo e combinado de máscaras para controlar as camadas.
Nossa tarefa agora é desativar todos os canais dessa camada que não são de interesse para nós no momento. Você precisa desativar os canais Height, Rough, Metal, Nrm (Normal) e deixar apenas a cor (color):

Agora precisamos distribuir nossas imagens em camadas e configurar sua exibição correta. Para fazer isso, selecione a camada, localize a imagem, importe-a para a pasta Projeto (no painel Prateleira) e arraste a imagem para o parâmetro Cor base.

Repita esta ação com a segunda camada e o chapéu.
É importante. A camada com o chapéu deve ter uma hierarquia mais alta que o gato, pois queremos que o chapéu esteja no gato, e não embaixo dele. Lembre-se de que você pode controlar a visibilidade das camadas usando o botão em forma de olho à esquerda da camada.
Como o projeto é projetado para texturas, e as texturas devem ser quadradas (é desejável que o tamanho seja sempre um múltiplo de 2 m. Ou seja, o tamanho de 64 * 64 pixels seja 2 * 2 * 2 * 2 * 2), a imagem do gato será ligeiramente esticada em largura , já que sua fotografia é retangular na vertical, e o Substance Painter a esticou para um formato quadrado.
Nesse sentido, precisamos alterar a escala da imagem e esticar a foto na camada verticalmente. Para fazer isso, desbloqueamos a trava de preservação de proporção e estendemos a imagem definindo a escala vertical para 0,7.

Agora você precisa ajustar o tamanho do chapéu da mesma maneira, mas agora não precisa mais desativar os relacionamentos de salvamento. Como adquiri um chapéu muito grande, quando você altera a escala, um efeito como o
ladrilho começa a funcionar - a textura começa a se repetir horizontal e verticalmente, para que o sistema não permita que você deixe espaços em branco se a imagem for menor que o tamanho da imagem final (em nossa caso, menos de 1024x1024 pixels).
Uma pequena digressão: por que precisamos de ladrilhos?A telha é necessária quando precisamos preencher alguns elementos de textura repetidos. Por exemplo, uma grade ou algum tipo de padrão de tecido. A imagem abaixo possui uma estrutura de imagem especialmente estruturada, de modo que, se anexarmos uma cópia dessa imagem de cima, de baixo ou de ambos os lados, ela ainda parecerá uma imagem inteira e mais ampla (especificamente, no exemplo mais baixo, a imagem já consiste em 16 fotos repetidas ):

Essas repetições são chamadas de
padrões (ou mais simplesmente - texturas sem costura) e são criadas para que você possa repetir esses padrões repetidamente pelo menos um milhão de vezes. No futuro, usaremos essa repetição para melhorar a qualidade da imagem, mas a usaremos principalmente ao criar sombreadores, para que não voltemos aos mosaicos e padrões em breve.
E assim, continueFizemos o chapéu de escala para o tamanho que precisamos. Agora precisamos colocar o chapéu mais ou menos sobre a cabeça do gato - para isso, começamos a distorcer os parâmetros de deslocamento (deslocamento), deslocando o chapéu que precisamos para o gato.
Temos a seguinte imagem:

Bem, agora é hora de usar máscaras para editar a visibilidade da camada do chapéu. As máscaras no Pintor de substâncias podem ser criadas de 2 maneiras:
- Crie uma máscara na própria camada, limitando sua visibilidade.
- Crie uma pasta onde você pode colocar a camada. E coloque uma máscara na pasta.
A segunda opção permite criar mais combinações de máscaras, mas agora estamos interessados no princípio da própria máscara, e não na complexidade das combinações, portanto, criaremos uma máscara na camada e a tornaremos imediatamente preta. Para fazer isso, clicamos na camada RMB e selecionamos “Add Black Mask”.
E o que acontece com um pixel quando o canal da máscara de transparência de pixel é 0 (completamente preto)? Corretamente, o pixel se torna completamente transparente e não aparece:

Como você notou, agora a camada consiste em duas imagens: uma imagem é um chapéu e a segunda imagem é uma máscara completamente preta. A máscara no Substance Painter (como em outros lugares, em princípio) é criada a partir de um único canal de 8 bits. E agora, controlando a intensidade, podemos desenhar a máscara com tons de cinza, “mostrando” a camada superior. Quanto maior a intensidade do sombreamento de pixels, mais brilhante será a camada de pixels com chapéus até que os pixels sejam totalmente exibidos.
Agora, nossa tarefa é tornar visível o chapéu de que precisamos e, para isso, precisamos indicar na máscara qual zona da camada de preenchimento de chapéu será exibida. Para fazer isso, selecione a camada com a máscara e selecione a própria máscara (isso é importante, pois você não pode editar a camada de preenchimento, é possível editar apenas a máscara). Ao selecionar uma máscara, as configurações de pincel são abertas para nós, que desenharemos na máscara, e na parte inferior das configurações há uma configuração de Escala de cinza de 0 a 1 (de 0 a 255, respectivamente).
Agora, desenhando uma máscara sobre a cabeça de um gato, vamos revelar um chapéu:

Bem, e remova o excesso com um pincel com intensidade 0:

A máscara em si é assim:

Assim, a máscara nos permitiu determinar qual área da camada com chapéus exibir.
Bem, isso se aplica à edição de selos. E como aplicá-lo a texturas em jogos?
Combinações complexas de máscaras.
Agora vamos ver um ladrilho limpo para o chão. Mais precisamente, sua textura:

Agora imagine que precisamos criar uma textura de ladrilho que seria danificada, com rachaduras e sujeira. Além disso, não apenas sujeira, mas apenas a abaixo na textura:

Portanto, já sabemos como criar camadas de preenchimento com texturas e agora nossa tarefa:
- Crie um novo projeto com as mesmas configurações do anterior (nós os consideraremos padrão).
- Crie 2 camadas - uma para azulejos e outra para sujeira. Como a sujeira deve estar no topo do ladrilho, colocamos a camada com sujeira acima.
Mas agora não mascaramos a camada com sujeira, mas criamos uma pasta vazia para as camadas e colocamos a camada de sujeira nessa pasta (lembre-se de que a pasta ainda deve ter uma hierarquia mais alta que o ladrilho).
E a máscara já está criada na pasta.

Agora vamos definir as áreas em que você pode pintar a sujeira (você faz a sua e eu a minha). E não esqueça que, para editar a máscara, precisamos selecionar a máscara na pasta, não as camadas.
Então, eu fiquei com a seguinte imagem:

Não é uma obra-prima, mas as zonas em que a sujeira deve ser exibida, identificamos.
Agora crie outra pasta na pasta com a camada de sujeira e transfira a camada de sujeira para esta pasta. No total, a camada de sujeira está em uma pasta que está em outra pasta:

Também criaremos uma máscara na nova pasta, mas desta vez não é um preenchimento sólido, mas selecionaremos algo das várias máscaras existentes. Por exemplo, aqui eu encontrei na Internet:

Offtop sobre o upload de imagens para o Substance PainterPara fazer upload de uma imagem e usá-la como máscara, é necessário transferi-la para a prateleira (para a pasta) do navegador e selecionar as seguintes opções:

Talvez você possa especificar um formato diferente, em vez de "textura", e a imagem ainda será conectada como uma máscara, mas eu não sei disso (sugiro nos comentários).
Definir essa textura como uma máscara é fácil. Clique com o botão direito do mouse na pasta e selecione Adicionar máscara de bitmap. Na janela que aparece, encontre a textura que precisamos e selecione-a como uma máscara. A hierarquia com pastas começou a ficar assim:

Observe que, em uma pequena janela de visualização próxima à pasta superior, em vez de sujeira total, um monte de quadrados com pequenos vislumbres visíveis de sujeira começou a ser exibido. Esse é o resultado de como a camada atual de sujeira será processada, levando em consideração todas as máscaras que adicionamos.
Mas, em geral, tivemos a seguinte imagem:

Neste exemplo, tivemos uma mistura de máscaras. O primeiro nível da máscara determinou as áreas em que 100% NÃO deveriam aparecer sujeira e onde elas podem aparecer. O segundo nível da máscara determinou onde 100% da sujeira aparece e onde não. Os pixels em que as duas máscaras tinham valores maiores que 0 começaram a exibir sujeira, dependendo do limite inferior de intensidade (se a primeira máscara tiver uma intensidade de 0,5 em um pixel e 0,2 no segundo, o pixel será transparente em 0,2). Simplificando, cada pixel leva em consideração todas as máscaras que afetam sua exibição. E se pelo menos uma máscara for 0, o pixel não será exibido.
Total:Camadas - esse é o preenchimento de toda a área do projeto, que possui vários canais para controlar o estado da imagem.
Uma máscara é um canal de um pixel de imagem (textura) necessário para processar a visibilidade de algo.
O número de canais para o primeiro pixel pode ser muito grande. Com as configurações padrão, o Substance Painter já leva em consideração 9 canais na 1ª camada - 3 por cor e 3 para vários efeitos, 3 em mapas normais. A própria imagem na imagem do seu navegador contém apenas 3 canais + 1 adicional, se houver transparência.
Além disso, as camadas podem se sobrepor e o programa já faz cálculos para 1 pixel muito maior que para 9 canais. Ou seja, no caso de misturar 2 camadas no 1º pixel, o software precisa calcular 9 canais de uma camada, levar em conta a transparência especificada no canal da máscara e calcular a intensidade total do pixel levando em consideração a máscara. Então você precisa calcular a segunda camada e seus 9 canais. Em seguida, aplique uma camada translúcida na parte superior. Total de 18 canais de camadas e 1 canal de mixagem. Obviamente, quando você fizer o upload para imagens (texturas), não haverá 19 canais - o Substance Painter criará 3 imagens (texturas):
- Imagem (textura) com cores (3 canais por pixel).
- Imagem (textura) com canais para parâmetros de PBR.
- Imagem (textura) para determinar normais.
Ou seja, o Substance Painter já fará todos os cálculos para que você possa obter o resultado final na imagem. Bem, como você sabe, não será possível controlar as máscaras de transparência de sujeira nessas imagens - neste caso, as imagens (texturas) são obtidas como resultado final, que podemos posicionar no modelo e obter um modelo colorido.
Textura
Eu escrevi deliberadamente nos resultados sobre as máscaras “Imagem (textura)”, para que você comece a adiar o entendimento de que a textura de fato não é uma imagem no sentido usual para nós.
Uma textura é um conjunto de parâmetros para que mecanismos de jogos ou programas para trabalhar com texturas entendam como processar um pixel.
Uma textura pode conter 1 canal. Por exemplo, para transparência. Ou pode conter 3 canais de uma só vez para várias finalidades (por exemplo, para os parâmetros do trabalho metálico, rugosidade e sombreamento).
Existem muitas variedades de aplicação de texturas, mas todas se resumem a uma coisa: trabalhar com 1 ou mais canais.
Por exemplo, a textura de Cavidade (rachaduras) geralmente descreve as bordas (bordas) do objeto na digitalização, destacando os pixels com o máximo de branco ao longo de todo o comprimento das bordas. Mas, na verdade, é apenas uma textura, cujo canal visa exibir a intensidade dos pixels nos pontos certos. Essa textura pode ser usada, por exemplo, para máscaras de lama - ou seja, nela podemos exibir sujeira no objeto.
Aplique máscaras fora dos programas de texturização.As máscaras são necessárias não apenas para programas como o Substance Painter. Nos mecanismos de jogo, a textura é muito semelhante ao trabalho do Substance Painter - você pode colar as texturas finalizadas do Painter ou pode personalizar os shaders (materiais) à vontade, combinando texturas através de máscaras de várias maneiras. E se o Painter fornecer um resultado pronto, um shader baseado em máscara faz cálculos em tempo real (grosso modo online).
Um pouco de texturização PBR
Com base em como a textura funciona e por que é necessária, você pode explicar rapidamente o que é a PBR.
PBR é um renderizador de textura baseado em física. Ou seja, este é um conjunto de parâmetros, controlando quais podemos fazer a textura parecer cinematográfica.
Para isso, são utilizados parâmetros responsáveis por como a luz deve ser exibida em um pixel.
Aqui está uma lista dessas opções:
- Metálico Responsável por representar o pixel como metal. Quão facilmente a luz é refletida em um pixel.
- Rugosidade. Responsável pelo grau de rugosidade dos pixels. Quanta luz está espalhada em contato com o pixel.
- Oclusão ambiental (descontinuada). Responsável pelo sombreamento de pixels. Esse parâmetro, que está se tornando obsoleto e, em breve, não será usado.
- Mapa normal. É responsável por como a luz pode ser distorcida em um pixel, criando uma profundidade ou curvatura imaginária.
- Albedo (Cor) - a cor com a qual o pixel deve ser exibido.
Ainda existem vários parâmetros diferentes que você pode ou não precisar considerar para obter o resultado desejado. Tudo depende de qual efeito você está alcançando.Por exemplo, se um programa inserir um pixel em um canal metálico com um único canal, cuja intensidade será 1 (255), esse pixel refletirá tudo o que é puro metal.
Depois de definir o canal de rugosidade ao máximo (indicando todos os pixels como 1 ou 255), vemos que agora o pixel deixou de refletir tudo ao redor e começou a espalhar a luz com tanta força que ficou cinza:
É muito importante entender que não existem texturas separadas que se especializam em uma coisa. Todas as texturas são canais cujos pixels têm intensidade ou valores, indicando quais você diz a um parâmetro ou a outro para reagir de uma maneira ou de outra.Analisaremos o PBR da maneira mais detalhada na próxima parte da lição. E também considere técnicas adicionais para misturar máscaras para melhorar a imagem.Se eu escrevi algo errado ou não está claro, peço que me avise para que eu possa corrigir esta lição.Obrigado a todos pela atenção =)