Andre, boa noite,
Estou tomando a liberdade de colocar aqui, o que abrimos sobre "maps", lá no título "Script para atribuir IDs". Como sei que vou explorar bastante esta matéria, achei por bem te-la aqui, para não ficar perdida e estar muito mais adequada ao tema deste fórum que é o Substance Designer. Veja:
===============
Andre, boa noite,
Já que o assunto é pertinente, gostaria de fazer uma solicitação. Não faça isso agora, somente quando você puder, valeu?
Tanto o Substance Painter como o Quixel Suite são excelentes programas para texturização. Ambos, em seu bake, usam praticamente, geram, portanto, o mesmo acervo de maps.
O Baker list do Substance Painter, a seguir:
NormalWorld Space NormalsIDAmbient OcclusionCurvaturePositionThicknessO Substance Designer que você conhece muitíssimo bem, tem lá o seu "Bake model information" que nos leva à aba "Bakers", onde vemos:Ambiente OcclusionAmbiente Occlusion Map from MeshBent Normals Map from MeshColor Map from MeshConvert UV to SVGCurvatureCurvature Map from MeshHeight Map from MeshNormal Map from MeshOpacity Mak from MeshPositionPosition Map from MeshThickness Map from MeshTransferred Texture from MeshWorld Sapce DirectionWorld Space NormalÉ claro que sempre que você faz uso, no SP, de algum Material, mesclando qualquer Smart Material, de acordo com o tipo escolhido, um ou vários dos maps gerados serão incorporados, automaticamente, no seu layer; logo, no seu trabalho.
Minha questão é a seguinte, Andre: Eu queria realmente compreender, de forma didática, cada um destes maps, de modo que eu não apenas escolha com uma finalidade, mas que eu saiba o quê e para quê ele é, entende? Para isso, estou anexando duas imagens de um livro do 3ds Max que você obviamente deve conhecer de trás para frente. Enfim, eu quero somente conhecer: quero saber. Espero que a sugestão e a dúvida tenham ficado claras.
Grato pela atenção!
Abração fraterno,
Marcelo Baglione
===================
Oi Marcelo, tudo bem?
Sobre os mapas gerados pelo Substance Designer, vou fazer uma breve descrição de cada um a seguir:Ambiente Occlusion - É o mesmo AO que estamos acostumados no 3ds max, aquele que calcula a visibilidade de um ponto na malha 3D até uma esfera que envolve o objeto (OBS: Na verdade é apenas um hemisfério da esfera, pois no lado oposto está a superfície do objeto), os raios que atingem a esfera perpendicularmente recebem a cor branca e os que não atingem recebem a cor preta, os demais recebem os tons de cinza entre o preto e o branco conforme o seu ângulo de incidência. É o mesmo mapa que você pode criar com o Render To Texture do 3ds max usando o V-Ray ou Mental Ray, pois o Arnold não tem suporte para isso, porém, no Max vai levar vários minutos para renderizar o mapa e no Substance Designer é imediato.
Ambiente Occlusion Map from Mesh - É o mesmo AO que descrevi acima, porém, em vez de usar a malha do objeto, ele aceita definir outra malha, então, é usado para gerar o AO da malha em High Poly para pegar todos os detalhes do objeto, mas projetando estes detalhes nas faces do objeto em Low Poly, assim, ele recebe o mesmo sombreamento dos detalhes que tem no High Poly, ou seja, é muito parecido com a projeção de Normal Map para transferir os detalhes do High Poly para o Low Poly, mas neste caso transfere o sombreado do AO.
Bent Normals Map from Mesh - É uma técnica de geração de Normal Map antigamente usada apenas em composição e pós-produção, criando aquele Normal Map da imagem completa e não de cada objeto, assim, a luz é dividida em R, G e B para ser modificada na pós-produção de acordo com este mapa de Normal, portanto, passaram a usar em 3D também para refinar a estimativa de iluminação em cada ponto do objeto, ajudando a melhorar o realismo de objetos com iluminação Real-Time baseada em imagem HDR, pois usando apenas Normal Map acontecem alguns vazamentos da iluminação do ambiente clareando partes que não deveria clarear, mas o Bent Normals corrige isso quando usado em conjunto com o Ambient Occlusion nas Engines.
Você pode ver um exemplo legal nesta página da documentação do Unreal:
https://docs.unrealengine.com/en-us/Engine/Rendering/LightingAndShadows/BentNormalMaps
Color Map from Mesh- Gera o mapa de Color ID para separar as texturas, ele tem várias opções, então, pode criar as cores de acordo com as cores do Mesh, de acordo com as cores que definir, usar cores aleatórias e tal.
Convert UV to SVG - Cria uma imagem do mapeamento igual ao Color ID, mas ela é formada por traços vetoriais igual o Path do Photoshop ou os traços do Illustrator, essa imagem pode ser aberta e editada no Photoshop e Illustrator, também pode criar este tipo de imagem nestes programas e exportar em SVG para o SDesigner. (OBS: Essa é a única ferramenta do PS que sinto falta por usar uma versão antiga)
Curvature - Cria o mapa de curvatura, ele é similar ao AO, mas aplica preto, branco ou tons de cinza conforma a diferença entre os ângulos de duas faces adjacentes, então, quanto maior a curvatura, mais branco fica, facilitando a aplicação de efeitos de desgaste nas quinas dos objetos, por exemplo.
Curvature Map from Mesh - Faz o mesmo mapa de curvatura que descrevi acima, porém, usa a malha em High Poly e projeta o resultado na malha em Low Poly para transferir os detalhes de um para o outro, igual acontece com o AO From Mesh e o Normal From Mesh.
Height Map from Mesh - Cria o mapa de altura (Displacement) baseado no Mesh em High Poly e projeta o resultado no Mesh em Low Poly para poder reproduzir os detalhes no Low Poly através de Tessellation, bem similar ao sistema de Displacement do 3ds max, por exemplo, e você pode criar Heigh Map no Render To Texture do Max, mas não vale a pena porque no SDesigner é imeditado.
Normal Map from Mesh - Gera o mapa de Normal usando como base o objeto em High Poly e projeta o resultado no Low Poly para transferir os detalhes para o Low Poly, é o mesmo mapa de Normal que pode criar com o Render To Texture do 3ds max, mas como disse, não vale a pena devido ao tempo de renderização.
Opacity Mask from Mesh - Cria o mapa de opacidade de acordo com um Mesh, que normalmente é o Mesh em High Poly, mas também pode ser em Low Poly, onde for transparente o mapa ficará preto e onde for opaco o mapa ficará branco, também aceita diversos níveis de transparência aplicando tons de cinza nas transparências intermediárias.
Position- Cria uma espécia de Normal Map onde as faces do objeto são coloridas de acordo com as suas posições em X, Y e Z, assim, o programa consegue saber onde é a parte de cima ou de baixo, por exemplo, para aplicar efeitos como poeira e neve apenas na parte superior do objeto.
Position Map from Mesh - Cria o mesmo mapa de posição que descrevi acima, porém, usa uma malha em High Poly para produzir o mapa e projeta o resultado na malha em Low Poly para obter os mesmos detalhes que conseguiria com a malha em High Poly.
Thickness Map from Mesh - Cria um mapa que define a espessura do objeto a partir do Mesh em High Poly e projeta o resultado no Low Poly, áreas mais finas ficam brancas e áreas mais espessas ficam pretas, é usado para simular efeitos de translucência e SSS em Engines de Games e até mesmo em renderização off-line nos Softs 3D convencionais.
Transferred Texture from Mesh- É um ótimo recurso do Substance Designer que permite transferir facilmente toda a texturização de um mapeamento para outro, por exemplo, se já tiver texturizado um objeto e precisou modificar o mapeamento dele ou então, tem outro objeto diferente que deve ser texturizado da mesma forma que o primeiro, você pode projetar a texturização de um Mesh no outro com este mapa, é similar ao recurso de UV Mapping disponível no Render To texture do 3ds max, mas não tem que esperar renderização.
World Sapce Direction- É similar ao Position, mas em vez de colorir as faces do objeto conforme a posição delas no mundo 3D, este mapa aplica as cores conforme a orientação (rotação) das faces no mundo 3D, normalmente é usado em conjunto com outros mapas para compor efeitos na superfície dos objetos, por exemplo, permite indetificar quando uma face está na parte de cima do objeto, mas é inclinada, então, não precisa receber o efeito de poeira ou neve.
World Space Normal- É um mapa de Normal que define a direção da Normal das faces do objeto em relação ao mundo 3D em vez de ser em relação a outro Mesh ou ao próprio objeto como acontece com o Normal Map convencional, ele é usado em conjunto com outros mapas como AO, Curvature, Direction e Position para compor efeitos na geometria dos objetos igual o exemplo de poeira e neve que descrevi acima, pois se a face estiver na parte de cima do objeto e com a inclinação correta, mas com a Normal invertida, também não precisa receber o efeito.
Espero ter ajudado.
Abração e tudo de bom.
André Vieira
===================
Já aqui, Andre, você fez uma ótima indicação de fontes na documentação do Unreal, referente ao entendimento e à aplicação do
Normal Bents, em resposta ao meus questionamento. Os dois importantes links, vem a seguir:
As informações que vem a seguir, dizem respeito a um único link, onde há três execelente exemplos, mostrando a diferença de modelos com e sem o uso do Normal Bents. Portanto, veja toda a página.
Bent Normal:Bent Normal Maps:
https://docs.unrealengine.com/en-us/Engine/Rendering/LightingAndShadows/BentNormalMaps
Benefits to Using Bent Normals - Benefits to Using Bent Normals
(Diferenças e benefícios de sua adoção)
Bent Normal Creation
Using Bent Normals in Unreal Enginehttps://docs.unrealengine.com/en-us/Engine/Rendering/LightingAndShadows/BentNormalMaps===================
Minha intenção foi apenas deixar estes diálogos em lugar mais apropriados e coesos com o desenvolvimento do tem em tela: Substance Designer, pois antes, as informações estavam soltas e fragmentadas, deixando eu mesmo com dificuldade de encontrá-las, mas agora estão todas aqui.
Abração fraterno,
Marcelo Baglione