unreal 5 procedural maps

Por: Abilio  

Em: 11/05/2023 20:12

Oi Abílio, tudo bem?
 
Tem um monte, milhares, pois qualquer pessoa pode criar, é super fácil.
Só no Marketplace do Unreal ele lista 5509 materiais e funções prontas, olha este link: https://www.unrealengine.com/marketplace/en-US/assets?count=20&keywords=material&sortBy=relevancy&sortDir=DESC&start=0
 
Certamente o Marketplace é o melhor site para encontrar conteúdo para o Unreal, mas no caso de modelos 3D o Sketchfab também é bom.
 
Essa semana eu finalmente termino o meu curso eu vou começar a postar tutoriais para iniciantes no Unreal, o primeiro que quero fazer é ensinando a criar materiais, pois este é o principal problema que os iniciantes encontram.
 
Só de você pegar os mapas procedurais existentes no Unreal e aplicar operações simples neles como multiplicar por outro mapa, somar com outro mapa, subtrair de outro mapa, dividir por outro mapa e coisas deste tipo, você cria trocentos mapas novos facilmente!!!
 
Se fizer isso no Material Function em vez do Material normal, vai criar um novo Node com um novo mapa procedural, é super fácil!!!!
 
Segue o passo a passo simplezinho que fiz para te mostrar como funciona.
 
1 - Cria um Material Function, clica com o botão direito no gráfico, digita Noise e pega o Node do Noise.
Clica com o botão direito em cima do Node e escolhe a primeira opção do menuzinho, Start Previewing Node, dai ele fica azul e exibe o resultado no objeto de exemplo.
Configura o Noise como quiser para criar algum tipo de mapa igual fiz na imagem 1.
 
2- Faça uma cópia do Noise, habilite o Preview dele e mude as configurações para criar um mapa diferente, como mostra a imagem 2.
 
3- Digite M e clique no gráfico para criar o Node do Multiply, conecte os dois Noises nele e habilite o Preview para você ver o resultado, conforme modificar as configurações dos Noises vai mudar o resultado da multiplicação entre eles.
 
4- Clique com o botão direito no gráfico e digite Input, pegue a primeira opção da lista, o FunctionInput, como mostra a imagem 4.
 
5- Coloque um nome no Input na primeira opção do painel Details com ele selecionado, dai conecte ele no Position de qualquer um dos Noises, depois, conecte o resultado da multiplicação no Output Result da função.
Clique na área vazia do gráfico para aparecer a propriedades dele no painel Details e coloque um nome, eu coloquei Mapa Novo, habilite logo abaixo a opção Expose to Library e abra a setinha do Library Categories Text para colocar o nome da sua categoria, eu coloquei 3D1, como mostra a imagem 5.
Salve e pronto, já tem um novo mapa procedural para usar.
 
6- Crie um novo material, clique com o botão direito no gráfico dele e vai encontrar a sua categoria na lista com o novo Node dentro, como mostra a imagem 6.
 
7- Coloque o Node no gráfico, crie um Scalar ou uma cor e conecte no pino Posicao1, que criei com o InputFunction lá na função, assim, poderá modificar o novo mapa procedural.
Por fim, conecte o resultado do novo mapa no Base Color do material para ver o resultado.
 
8- Colocando outro valor no Scalar do Posicao1 o mapa se modifica, como mostra última imagem em anexo.
 
Eu fiz o teste naquele mesmo arquivo do teste do mapa de curvatura e coloquei no Mega para você baixar, está neste link: https://mega.nz/file/QnRBRDDD#TS3piAk1EuljFPAPFLPzbptUVs55d4xtB0GeIXi17dM
 
 
Sobre os materiais Substance no Unreal.
 
Os materiais que exigem informações da superfície do objeto como mapas de curvatura, Normal, World Position e tal, vão continuar exigindo, então, você precisa criar Inputs no material do Substance pedindo estes mapas, igual fiz na função do exemplo acima no Unreal, desta forma, os Slots dos mapas vão aparecer no Substance quando importar no Unreal.
O material Substance no Unreal vai ter os parâmetros dele e também os Slots para adicionar os mapas necessários, logo que adicionar os mapas ele vai gerar a textura correta.
Então, ainda vai precisar gerar os mapas onde quiser para poder adicionar no material Substance, pois ele não vai gerar os Bakes sozinho.
 
Abração e tudo de bom.
 
André Vieira
 
Você não entendeu a pergunta 

Estes bakes criados no substance designer 


Quando eu abrir um material do substance designer no unreal engine eu precisarei abrir as imagens geradas no bake do substance manualmente ?
Ou estes bakes abrem junto com o material no unreal engine  ?

Outra questão:
É possível,  ja que abrirmos a malha/objetos no Substance para bakes , ja associar o material feito no substance ao arquivo da malha ? E assim só precisar abrir um arquivo no unreal engine ?

A pergunta mais importante:
Qual seria o caminho mais fácil na produção:
Blender/modelagem 
Substance/material
Unreal/luz e render 

Observação: eu não vou usar os materiais do substance, só vou usar a saida grupos de  nodes para fazer no unreal engine o material .

Outra dúvida:
É adequado usar texels com mapas procedurais?

Muitoobrigado
Oi Abílio, tudo bem?
 
Sobre o material Substance, depende como você fizer lá no gráfico dele, pois tem a opção de incorporar os mapas no próprio material, dai o arquivo dele fica grande e o material só vai servir para aquele objeto que gerou os mapas, não vai dar para trocar, por isso eu citei a opção mais usada e mais profissional, que é criar os Slots para receber os mapas, assim, em qualquer programa que abrir o material Substance em SBSAR, menos no 3ds max, é só arrastar os mapas de Bake do objeto que o mesmo material vai funcionar nele e em qualquer outro objeto que tiver os mapas.
 
Agora, se quiser automatizar a duplicação dos materiais para aplicar em cada objeto, aplicar automaticamente, automatizar a aplicação dos Bakes nos materiais de cada objeto e qualquer outra coisa que imaginar, é possível com certa facilidade se dominar Blueprint, automatização depende de Blueprint, eles foram feitos para isso!
 
Sobre exportar os objetos do Substance já com materiais, não é possível, pois os materiais são arquivos independentes do arquivo do Mesh do objeto.
Porém, no Substance Painter você pode aplicar materiais para criar as texturas de todos os canais necessários e exportar direto para o Unreal, que vai criar os materiais automaticamente de acordo com as texturas dos canais, mas serão materiais bem simples, que só aplica cada textura no respectivo canal do material sem nenhuma opção de ajuste.
É a mesma coisa que exportar um objeto texturizado do Max em FBX, qualquer objeto em FBX que tiver as texturas associadas vai gerar esse material simples automaticamente se não mudar as configurações padrões de importação.
 
Sobre o caminho mais fácil para produção.
 
Eu acredito que qualquer programa de modelagem 3D pode ser usado numa boa com o Unreal, antigamente o Max era o mais compatível, mas com a queda dele a Epic passou a investir também em outros Softs como Blender, Houdini e Maya.
Hoje o Blender tem um bom Plug-in de conexão com o Unreal, que aceita até importar Geometry Nodes ativas com os parâmetros procedurais para modificar o objeto dentro do Unreal, igual só o Houdini conseguia fazer, é bem mais avançado do que o Max ou o Maya permitem.
 
Certamente o Soft mais usado para texturização é o Substance Painter, que é super simples, programa para crianças, mas bem por isso todo mundo usa, é prático e fácil, também é ideal para exportar para Engines.
Agora, o Substance Designer é super poderoso e único, não existe outro programa que faça a mesma coisa, tem vários que criam texturas usando Nodes, mas o Substance Designer é muito mais do que isso, permite trabalhar com diversos sistemas de Shaders e ainda tem o formato SBSAR, aceito pelos Softs 3D e como comentei antes, que consegue modificar os parâmetros procedurais em RunTime no Unreal ou Unity, só ele aceita isso.
Texturizar no Substance Designer não é tão prático igual no Substance Painter, são programas diferentes, mas se tiver que escolher só um, certamente eu escolheria o Substance Designer.
 
Sobre o Unreal para iluminação e Render, vai funcionar perfeitamente, mas é um desperdício de programa, porque a vantagem mais insignificante do Unreal é a parte gráfica, apesar dela ser mais poderosa do que nos outros programas tem coisas muito mais fantásticas e poderosas no Unreal.
O Unreal foi feito para criar cenários de Games rapidamente, então, é muito mais eficiente montar a cena no Unreal do que montar em qualquer Soft 3D e importar.
O correto é importar apenas os objetos no Unreal, muitas vezes modelados de forma modular, porque assim você consegue criar variações infinitas automaticamente.
Por exemplo, em vez de modelar uma estante no Max ou Blender com todos os objetos de decoração nela para exportar como uma coisa só para o Unreal, é muito melhor modelar tudo separadamente, até as partes da estante separadas, porque dai conhecendo um pouquinho sobre Blueprints você cria quantas estantes quiser, com o tamanho e quantidade de divisões e prateleiras que quiser, randomizando completamente todas as decorações nela com 1 clique.
Entende?
 
Enquanto uma pessoa passa o dia para montar uma cena em qualquer Soft 3D, se tiver um Unreal preparado para o serviço você faz igual em 5 minutos.
Essa é a maior vantagem dele, é isso que faz toda a diferença, porque o aumento de produtividade é absurdo e para fazer igual em outro Soft tem que ser programador dos bons, mesmo no Unity.
 
Sobre Texel, é um assunto longo e cheio de minúcias, mas basicamente se é só você que está fazendo a cena, se não tem uma equipe com várias pessoas criando objetos para a mesma cena, se você sabe o que está fazendo e se vai renderizar com Lumen ou Path Tracing, esquece essa bobagem de Texel, apenas olhe para a imagem e perceba se tem algum objeto com textura em baixa resolução ou não.
Agora, se for fazer Bake da iluminação, é importante manter a mesma densidade no segundo canal do mapeamento dos objetos próximos para não ter diferença de qualidade nas sombras, mas você não vai querer fazer Bake das luzes.
 
Abração e tudo de bom.
 
André Vieira
Voce disse que o que menos conta é o realtime do  unreal. 
O que você recomenda para GI em tempo real com mapas procedurais nos materiais ?

Outra questão:
A vantagem do material substrate é a camada acima do material? Como sujeira ou verniz?


Você disse que iria por hoje nas noticias um video feito com cada sistema de render do unreal e não postou. 
Voce poderia ao menos postar aqui?

Muito obrigado pela atenção 
Oi Abílio, tudo bem?
 
O Render Real-Time do Unreal é ótimo, não tem nada igual por enquanto, mas entre as coisas maravilhosas que existem no Unreal, o Render é o mais insignificante, porque renderizar você consegue em qualquer lugar, mesmo demorando mais, mas os recursos de automação que o Unreal oferece não existem em lugar nenhum, nem nos outros Engines, a não ser que seja um super programador.
 
Sobre o material Substrate, não posso falar muito porque ainda não estudei a fundo, só migro de versão depois que sai o primeiro Update, pois não tenho paciência para perder tempo com Bugs, mas por tudo que vi até agora, não tem nada que não dê para fazer igual com o sistema convencional.
A camada de verniz faz facilmente no sistema convencional usando o Shading Model Clearcoat, também reproduz aquela sensação de profundidade na camada inferior com o Dual Layer do Clearcoat ou se quiser um efeito mais forte pode usar Parallax Occlusion.
 
Veja o vídeo deste planeta que fiz há 5 anos atrás no Unreal, é só uma esfera, mas parece que tem diferença de altura entre os elementos e efeitos por causa do Parallax Occlusion: https://www.youtube.com/watch?v=vry3G2H22SM

A outra vantagem que mencionam é a mistura de materiais como adicionar sujeira, lama e tal, eu tenho que testar para ver se sinto diferença, mas se tiver uma boa máscara existem pelo menos umas 100 formas diferentes de fazer a mistura usando o sistema convencional, é só digitar Blend lá no Material Editor que você vai ver.
 
Sobre o vídeo da animação comparando todos os sistemas de Render do Unreal, eu postei hoje no meu canal no Youtube, vou postar amanhã nas notícias, mas coloquei aqui no início da mensagem e se quiser também pode acessar no Youtube por este link: https://www.youtube.com/watch?v=twHxF-sAZMw

Repare como muda o tempo de Render para renderizar com suavidade conforme os materiais e elementos da cena, tem coisas que prejudicam muito como reflexos e a luminária que emite luz através do material.
 
Abração e tudo de bom.
 
André Vieira
 
No meu caso de fazer imagens estaticas com GI :
É possível não ter tempo de render no unreal ?
Tudo aparecendo na hora .

Inclusive ao criar/aplicar e configurar materiais? Configurar luzes e configurar câmera?

Tenho aqui uma rtx 2060 6gb
E um bom processador amd

Muito obrigado
Oi Abílio, tudo bem?
 
Certamente você pode ver com GI, sombras, reflexos, DOF, Motion Blur, Chromatic Aberration e tudo mais em tempo real na Viewport com a sua RTX, como mostra a imagem acima, note que se não tivesse GI a parte de baixo da ponte ficaria completamente preta.
O padrão no Unreal já é assim, só precisa configurar a qualidade do Lumen e habilitar o Hardware Ray Tracing para melhorar, já que você tem uma RTX.
A forma mais eficiente e que oferece melhor qualidade é com Bake e Ray Tracing, mas pelo que você já me falou até agora eu sei que não vai querer fazer Bake.
 
Para o que você deseja é melhor usar o Lumen e se necessário o Path Tracing para gerar a imagem final, assim, vai conseguir ver tudo com qualidade na Viewport enquanto trabalha como mostram as imagens acima, até modelando se quiser usar o Modeling Tools do Unreal, só vai pesar se exagerar muito como criar uma paisagem gigante, por exemplo, mas cenas dentro do normal vão rodar numa boa.
 
Porém, é importante entender que a Viewport trabalha com o máximo de 8 Samples de Anti-aliasing para se manter em Real-Time, pois o Anti-aliasing é pesado, então, se quiser gerar uma imagem mais suave, sem nenhum serrilhado, sem Noise, perfeita, precisa usar o Movie Render Queue com valores maiores no Anti-aliasing, mas é coisa de segundos para renderizar.
A Viewport tem que trabalhar a no mínimo 30 Frames por segundo, então, ele gera no mínimo 30 imagens por segundo com 8 Samples enquanto você trabalha na cena, se quiser pode pegar essa imagem da Viewport em tempo real com alta resolução usando o High Res Screenshoot, mas normalmente renderizamos com o Movie Render Queue no final para tirar uma imagem perfeitamente suave, ele vai renderizar literalmente em 1 segundo.
Como não é animação, vai ficar bom mesmo usando baixo Anti-aliasing como 16 ou 24, em animação com muitos reflexos precisa de bem mais Anti-alising e dai o tempo sobe também.
 
Segue o passo a passo para você configurar o Lumen e habilitar o Hardware Ray Tracing:
 
1- Acesse o menu Edit > Project Settings, encontre a opção Rendering na lateral esquerda e o painel Hardware Ray Tracing do lado direito, é só habilitar o Suport Hardware Ray Tracing, como mostra a imagem 1.
 
2- Clique no ícone do Create > Visual Effects e crie um Post Process Volume na cena, com ele selecionado, habilite a opção Infinite Extent na parte de baixo do painel Details, como mostra a imagem 2.
 
3- Mais para cima no mesmo Post Process Volume você vai encontrar os menus de Globall Illumination e Reflections, marque os dois como Lumen e configure conforme a necessidade, na Viewport não precisa de alta qualidade, então, pode colocar 2 em cada valor que eu coloquei 6, pode deixar até com 1 se quiser.
Também pode diminuir a distância para otimizar, eu coloquei 5000, mas vem com 20 mil.
Só habilite o Scene Capture Cache nas cenas menores, nas maiores deixe desligado.
 
Nos reflexos é a mesma coisa, pode deixar com 2 na qualidade ou até 1, mas o que melhora a reflexão é habilitar o Hit Lighting e o High Quality Translucency, como mostra a imagem 3.
 
4- Assim, se eu mover qualquer objeto da cena o GI e as sombras suaves respondem imediatamente como mostra a imagem 4, se não tivesse GI a parte de baixo da pilha de lenha ficaria totalmente preta.
Para ver com mais qualidade é melhor criar uma Cine Camera Actor no ícone do Create > Cinematic e habilitar ela na Viewport clicando no menu Perspective e escolhendo a Cine Camera, dai vai aparecer o ícone laranja dela no canto da Viewport como mostra a imagem 4.

OBS: Veja este vídeo onde mostro os vários sistemas de Render rodando em tempo real na Viewport do Unreal, só o Path Tracing que leva alguns segundos para exibir a imagem: https://www.youtube.com/watch?v=x_-tFlxcGXo

Abração e tudo de bom.
 
André Vieira
Então eu vou seguir seu conselho 
usar o Lumen e se necessário o Path Tracing para gerar a imagem final

Para ter toda a qualidade possível no render com path tracing , tem configuração específica?

No caso de materiais , existe alguma configuração para mapasprocedurais terem a máxima qualidade? Ou ja é padrão?

Você tem tutorial de como  importar do substance designer  para o unreal engine?
Tanto o material inteiro
como somente parte da árvore para usar a saida dela para compor materiais feitos no unreal engine?
Existe live link?


Muito obrigado pela atenção
Oi Abílio, tudo bem?
 
O Path Tracing é super fácil, por isso que brinco no vídeo que te indiquei falando que não precisa ter nem 70 de QI para conseguir renderizar com realismo nele, pois funciona igual os renderizadores que estamos acostumados há anos, criando aquele Noise no início e suavizando depois, mas ele é super rápido.
 
Para ver na Viewport enquanto ajusta luzes e materiais é melhor baixar bastante os Samples colocando 64 ou até 32, mas se deixar o Denoiser ligado fica um pouco borrado por ter poucos Samples, dai você pode reduzir o filtro para 2 ou até 1 para deixar mais nítido, se desligar o Denoiser vai ficar granulado.
A outra opção relevante é para habilitar materiais emissivos, fazendo objetos emitirem luz.
 
Note também como ele é muito parecido com o Lumen, então, pode ser melhor usar o Lumen durante o trabalho por ser Real-Time e só no final trocar para o Path Tracing, fazer alguns ajustes finos se for necessário e gerar a imagem final com o Movie Render Queue.
 
Dai varia muito a configuração conforme a cena e os materiais, no Lumen não varia, se usar sempre os mesmos valores vai demorar exatamente o mesmo tempo independente dos materiais da cena, mas o Path Tracing é igual o V-Ray, se a cena não tiver reflexos renderiza rápido, se tiver reflexos demora mais e exige mais Samples, se os reflexos forem borrados exige mais ainda, igual qualquer Render comum.
Como você não vai animar, se não quiser ter efeito de Motion Blur na imagem estática consegue ganhar um bom tempo de Render porque pode deixar o Anti-aliasing Temporal com 1 Sample e colocar tudo no Anti-aliasing Spatial.
Neste caso geralmente as configurações vão variar de 128 Samples até 2048 Samples, se fosse uma animação tinha que dividir este valor pela quantidade de Samples no Anti-aliasing Temporal.
 
É só isso, coisa de criança mesmo!
 
Sobre os materiais, essa parte é uma arte, é a única coisa que ainda depende de prática e conhecimento para fazer, todo o resto no 3D já se tornou automático, menos materiais, tem a opção de escanear, mas não é tudo que dá para escanear e dependendo do caso precisamos criar materiais que não existem na realidade.
Alguns mapas procedurais você pode configurar a qualidade visual deles nas configurações, como quantidade de oitavas para gerar mais detalhes, além da resolução através do ladrilhamento.
 
Para importar o material Substance em SBSAR no Unreal precisa instalar o Plug-in do Substance, baixe neste link: https://www.unrealengine.com/marketplace/en-US/product/substance-plugin

Dai é só usar o Import normal que usa para Meshes e escolher o material Substance, ele vai aparecer como dois Assets no Content Browser, além das texturas, um destes Assets tem todos os parâmetros procedurais do material, conforme modificar ele vai gerar as texturas novamente, é bem tranquilo.
A outra opção é exportar as texturas do Substance e importar no Unreal como textura comum, dai se precisar modificar você tem que modificar no Substance, exportar as texturas novamente e usar o Reimport no Unreal para reimportar no mesmo lugar sem perder nada do que fez, mantendo elas nos materiais que estavam e tal.
 
O Plug-in do Substance para o Unreal oferece um Live Link com o Substance Painter, este vídeo da Adobe mostra: https://www.youtube.com/watch?v=fYbdkehsGtc

Abração e tudo de bom.
 
André Vieira
 
O sistema de nodes para criar sujeira no substance designer requer varios bakes para funcionar,  segue link:

https://substance3d.adobe.com/documentation/sddoc/leaks-159451256.html


Existe plugin , ou até programa de terceiros, que otimiza a criação destes bakes para todos os objetos de uma cena de uma só vez?
Com recursos de salvar os bakes em pastas diferente para cada objeto. E até aplicar os bakes  na árvore automaticamente. 



Obrigado 

Faça o login para poder comentar

Usuários conectados

Total de mensagens publicadas pelos membros da comunidade: 707936.

Total de membros registrados: 135505

Últimos membros registrados: michel.silva, Hyara1234, DUILES, arq.giovelludo, Kaio Grigolato, bannerliam, boyerbarry, xxncsxx.

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

Membro(s) on-line na última hora: michel.silva, Reinaldo Silva, Ronaldo Junior, TadeuB79, Roberto Movanni, marcel.souza, Eduardo Ramos, Renatto, Celso Borttoloto, Fabio Amorim, Moura, Eber.Silva, Daniel Monteiro, Abilio, Hot, Marco Rocha.

Legenda: Administrador, Especial, Moderador, Parceiro .

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