Cursos e Bibliotecas Ver Mais

Galeria 3D1 Ver Mais

EvandroGP   Paraná - PR
An3dre   Araras / SP - SP
J.F.Verissimo   Recife - AC
WilliamSantos   Ribeirão Preto - SP
gilson antunes   Curitiba - Brasil - PR

Portfólios Ver Mais

ttnunes   Brazil, São Paulo - SP
Marcos Fernandes 3d   João Pessoa-PB - PB

UNREAL - Criação de Shader - Mistura de Textura e Cor

Por: Alexandre Longo  

Em: 25/01/2019 10:39

Olá Pessoal!!

Estou estudando criação de Shaders na Unreal, e estou tentando definir um workflow para um shader master.

Já vi e revi vários vídeos na internet, ensinando a como criar textura no base color, como colocar cor no base color, e como misturar cor e texura, no base color..  (Como mostra na imagem). Mas isso até o momento é relativamente simples.

Minha dúvida é..... Como faço para criar uma opção onde eu possa ter as 3 seguintes variáveis:

1 - Defino a Textura, sem que a opção de cor influencie.
2 - Defino uma cor sólida, sem que a opção de Textura influencia.
3 - Defino uma opção onde eu possa misturar cor e textura ao mesmo tempo.

É que até o momento dos meus estudos, nao consigo criar os itens 1 e 2, ao mesmo tempo, sem que eles se transforme no item 3 automaticamente.

Grande abraço a todos!!!

Paz e Luz!!!

Alexandre Longo.
Oi Alexandre, tudo bem?

As suas perguntas são excelentes, pois você vai sempre no ponto crítico das coisas!!!

É fácil fazer o que deseja, só precisa colocar o Node StaticSwitchParameter para escolher entre só a cor e a textura com multiplicador de cor, como mostra a primeira imagem em anexo.

Digita Switch na lista de Nodes que ele vai aparecer.

O Switch funciona como um Boolean de Falso e Verdadeiro, Sim e Não, então, ele cria um caixinha de seleção na instância do material para você ligar e desligar, como mostra a segunda imagem em anexo.

Com o Switch desabilitado na opção Falso, o material vai exibir os Nodes conectados no Falso como os parâmetros Textura e Cor Textura, igual aparece na segunda imagem.

Com o Switch habilitado na opção Verdadeiro, o material vai exibir os Nodes conectados no Verdadeiro, dai não aparece mais o parâmetro Textura e nem mesmo o Cor Textura, agora aparece apenas o parâmetro Cor, como mostra a terceira imagem em anexo.

Os parâmetros fora do Switch aparecem com ele ligado ou desligado, como o Metalic e o Rough.

Portanto, é como se tivesse dois materiais em um, compartilhando parâmetros, e isso não é eficiente porque na compilação ele vai gerar todas as possibilidades do material em Shaders diferentes, ou seja, neste exemplo que postei serão gerados 2 Shaders, nada grave, mas se você colocar um Switcher dentro do outro o aumento será exponencial e pode gerar centenas de Shaders.

Por isso tem que tomar cuidado com o uso do Switcher, neste exemplo não fica pesado como eu disse, mas o ideal seria criar dois Shaders Master, um apenas para usar com texturas e outro apenas para usar com cores, assim você terá dois Shaders que podem ser bem complexos sem um interferir no outro.

Uma dica legal neste caso é usar uma imagem de amostra só para preencher o parâmetro em vez de usar um Switch para ligar e desligar, por exemplo, se você colocar uma imagem branca de 64 x 64 Pixels como textura, poderá usar o parâmetro da cor da textura para definir qualquer cor no material sem o Switch e quando quiser aplicar textura é só trocar a imagem branca pela textura, o resultado será exatamente o mesmo e vai economizar bastante.

Abração e tudo de bom.

André Vieira
Andre Vieira:
Oi Alexandre, tudo bem?

As suas perguntas são excelentes, pois você vai sempre no ponto crítico das coisas!!!

É fácil fazer o que deseja, só precisa colocar o Node StaticSwitchParameter para escolher entre só a cor e a textura com multiplicador de cor, como mostra a primeira imagem em anexo.

Digita Switch na lista de Nodes que ele vai aparecer.

O Switch funciona como um Boolean de Falso e Verdadeiro, Sim e Não, então, ele cria um caixinha de seleção na instância do material para você ligar e desligar, como mostra a segunda imagem em anexo.

Com o Switch desabilitado na opção Falso, o material vai exibir os Nodes conectados no Falso como os parâmetros Textura e Cor Textura, igual aparece na segunda imagem.

Com o Switch habilitado na opção Verdadeiro, o material vai exibir os Nodes conectados no Verdadeiro, dai não aparece mais o parâmetro Textura e nem mesmo o Cor Textura, agora aparece apenas o parâmetro Cor, como mostra a terceira imagem em anexo.

Os parâmetros fora do Switch aparecem com ele ligado ou desligado, como o Metalic e o Rough.

Portanto, é como se tivesse dois materiais em um, compartilhando parâmetros, e isso não é eficiente porque na compilação ele vai gerar todas as possibilidades do material em Shaders diferentes, ou seja, neste exemplo que postei serão gerados 2 Shaders, nada grave, mas se você colocar um Switcher dentro do outro o aumento será exponencial e pode gerar centenas de Shaders.

Por isso tem que tomar cuidado com o uso do Switcher, neste exemplo não fica pesado como eu disse, mas o ideal seria criar dois Shaders Master, um apenas para usar com texturas e outro apenas para usar com cores, assim você terá dois Shaders que podem ser bem complexos sem um interferir no outro.

Uma dica legal neste caso é usar uma imagem de amostra só para preencher o parâmetro em vez de usar um Switch para ligar e desligar, por exemplo, se você colocar uma imagem branca de 64 x 64 Pixels como textura, poderá usar o parâmetro da cor da textura para definir qualquer cor no material sem o Switch e quando quiser aplicar textura é só trocar a imagem branca pela textura, o resultado será exatamente o mesmo e vai economizar bastante.

Abração e tudo de bom.

André Vieira
Grande André!!!

Vc é fera mesmo, cada resposta sua sobre Unreal, fico mais ansioso por um curso seu a respeito....

Retomei meus estudados da UNREAL desde inicio de Janeiro, e estou levando mais a sério, por razoes pessoais, porém ainda nao fiz nada digno de se postar... 

Mas tanto esta dúvida, como aquela do clippingPlanes, são frutos de estudos que estou fazendo, onde chego num ponto que fico travado, sem saber pra que lado correr....

Estou adorando tirar as duvidas aqui com vc.. pois quando pergunto aqui.. é pq fucei muito e nao obtive sucesso, dai quando vc me da sua luz sobre a minha dúvida, volto, fuço.. tento entender, e por fim aprendo de verdade....

Sobre essa questão de economizar shaders, e nao ser uma ideia muito inteligente de fazer um shader master que contenha todas as opções, (que pra mim seriam obvias vindo do ambiente do 3DS Max)...... na UNREAL já percebi a duras penas que não vale a pena, mas isso nao me impediu de tentar descobrir "se dava".... rsrsr

Agora aprendi um pouco mais... e só tenho a agradecer a vc e ao Forum..

Terei mais dúvidas sobre a Unreal e terei prazer em compartilhar aqui, porem como eu disse antes... quero primeiro de tudo esgotar possibilidades.. para nao fazer pergunta boba.. rsrsrs

Paz e Luz!!!

Cordialmente

Alexandre Longo.
Oi Alexandre, tudo bem?

Fico feliz de ter ajudado e dá para perceber nitidamente que você está estudando com seriedade o Unreal, pois as suas perguntas vão sempre nos pontos críticos e isso também me ajuda a perceber as coisas que são importantes abordar no curso.

Essa questão do Shader é excelente porque mostra que as vezes a forma de pensar no Unreal é diferente do Max, como você comentou.
Dá para fazer com o Switcher e funciona bem, mas só de colocar uma textura branca tudo funciona igual e economiza muito.

Realmente não é boa idéia criar um super material com todas as funções porque apesar de usar sempre o mesmo, será um Shader que vai exigir bastante do sistema para ser exibido.
Por isso que é melhor criar vários Shaders mais simples, um para cada situação, pois no conjunto final acaba economizando muito.

O Shader para textura, cor e metal pode ser o mesmo usando essa técnica que falei de aplicar uma textura só para preencher o parâmetro, no caso do canal Metalic essa textura tem que ser preta em vez de branca, para desligar o Metalic enquanto não estiver sendo usado.

Para a textura do Normal é só aplicar a cor RGB = 128, 128, 255 no Photoshop, ou seja, metade de vermelho e de verde e 100% de azul.

Dai precisa criar um Shader separado para vidros, outro para translucências e outro para folhagens se tiver na cena.

No caso de terrenos precisa de um Shader de Landscape e se for adicionar pedras ou outros objetos que estejam meio enterrados no solo precisa fazer um Shader especial para isso.

Creio que com estes você texturiza praticamente tudo de maquete.

Abração e tudo de bom.

André Vieira

Faça o login para poder comentar

Usuários conectados

Total de mensagens publicadas pelos membros da comunidade: 707686.

Total de membros registrados: 135291

Últimos membros registrados: Anacelina, ALDENE JOSE, maria china, [email protected], piry hustiles, William76931, vdsambua, hartinhall.

Usuário(s) on-line na última hora: 552, sendo 16 membro(s) e 536 visitante(s).

Membro(s) on-line na última hora: Thiago Couto, look, Anacelina, Eng Damasceno, mastermax, Paulo Rodrigues Lima, Moura, Ronaldo Junior, Gabriel.C, Reinaldo Silva, Pedro Juliato, lexmonteiro2, Le_Andro, Jorge Henrique, Hot, mixel.amorim.

Legenda: Administrador, Especial, Moderador, Parceiro .

3D1 © Três D1 © 1999-2024. Todos direitos reservados.