Cursos e Bibliotecas Ver Mais

Galeria 3D1 Ver Mais

doug2210   Rio de Janeiro
arbarcelos   Porto Alegre
Jomar Machado   Rio de Janeiro - RJ
Rafael Reis   Rafael Reis - AC
DigoCG   Valinhos - São Paulo - AC

Portfólios Ver Mais

douglasbergamo   joinville - SC
Matheus Santana   campinas sp - SP
flavio3d2009   Goiânia /Goiás/ Brasil - GO
dpi3d   Recife - PE

Unreal - Aplicar foto em muro

Por: SERPA  

Em: 21/03/2021 11:59

Fiz um modelo no REVIT e gostaria de aplicar uma foto em um muro.

Tentei fazer mas ficou de lado e cortada.

Alguém poderia me explicar o esquema de nodes que tenho que usar pra isso?

Imagino que seja algo bem simples, um detalhe. Mas não estou sabendo onde.

obrigado.
Tem um node q chama "custom rotator" q dá pra fazer isso aí.. Mas acho melhor mapear o objeto q aí as texturas vão aparecer perfeitamente em todos os lugares... É bom tbm já fazer o mapeamento do segundo canal (mesmo um automático) pra engine usar pra iluminação e etc...



@edit: Ou tbm só fazer o mapeamento automático msm (por diferença de angulos (normal mapping) e tal) no 3ds ou maya ou Blender (eu achava q nesses programas de cad as faces ja tinham um 'padrão' de 1x1 no mapeamento e tal..), pra o canal 1 e 2 (o canal 2 vai ser usado mais pra questões de iluminação e alguns efeitos, etc..), e então usar um material q varia o mapeamento pelo 'espaço do mundo' ('world space' ao inves de 'uv' ou 'texture space')... esse tipo de material é bastante interessante, pq pega o espaço 'real' (do mundo lá do game ou aplicação) e usa como espaço do mapeamento, pras texturas do material... Esse tipo de técnica é bastante versátil pra paredes ou pisos retos, mas é problematica com determinadas superficies curvadas... 

Ou vc tbm pode deixar a parede lá toda branca mesmo (com o material de pintura branca de interiores lá e etc..) e por um plane 0,001mm na frente, com a imagem tbm =D... Eu acho q essa seria a solução mais simples, inclusive... 



@edit: Video sobre o World Position (acho bom pra pisos e revestimentos, e n precisa ser nos 3 eixos etc..(OBS: Mas precisa ser em 2, e daí q vêm as eventuais complicações com superficies curvadas)

https://www.youtube.com/watch?v=8aYe54XrZYI

Exemplo com uma construção de mapa procedural (com models modulares e tal), o personagem ('kobold') tá logo depois da fronteira entre um model e outro, só q com essa técnica do World Position, as texturas foram postas não no UV mas no XZ (e então n dá pra ver a 'fronteira' entre um model e outro alí.. se eu fosse por os materiais pelos UVs, primeiramente ia dar fronteira visivel entre um e outro model, e, segundamente, eu teria q fazer uma textura pra cada model e são milhares (e tbm n ia dar pra variar as coisas com a altura o q é bastante bacana tbm)  (XD...)... 
https://ibb.co/B4fjbRL


Sobre o Custom Rotator lá:
https://www.youtube.com/watch?v=f9a780XjoKI
A Beleza está entre a Ética e a Razão!..
Valeu pelas explicações ScreamingFox.
Eu até tentei aqui usar o "custom rotator" mas não consegui (depois vou tentar novamente), mas já me deu mais uma opção para tentar.
Eu me apeguei ao Datasmith pela facilidade do link dele com o Unreal e imaginei que não precisasse fazer mais nada. Mas pelo que estou vendo e pelo que já me indicaram, melhor mesmno é trazer em fbx, passando antes pelo max para fazer os ajustes necessários.
As faces do Revit realmente são 1x1.
World Space, outra coisa que eu tentei mas sem sucesso. Nossa, ainda estou dando cabeçadas nesse Unreal, kkk.
Essa gambiarra, digo, solução do plane 0,001mm achei interessante e foi a primeira coisa que pensei quando começaram as dificuldades.
Em relação aos vídeos ou vou assistir depois pois no momento estou sem internet, usando pacote de dados.
obrigado.
Estou quase conseguindo mas ainda resta um problema para resolver. A imagem está "cropada", não encaixou totalmente.

Usei o esquema do anexo. Falta apenas um detalhe, um node.
Oi Serpa, tudo bem?

Agradeço ao Fox por ter te ajudado prontamente.

Realmente o Custom Rotator é o Node mais prático para fazer isso, tem uns outros 2 ou 3 que também funcionam, só que dão mais trabalho.

Outro ponto importante que ele abordou é o mapeamento, no Unreal a iluminação e o sombreamento são feitos com texturas, igual o Shadow Map no 3ds max, então, se o mapeamento for ruim vai dar defeito nas sombras.

Eu não sei como o Revit trabalha com mapeamento, mas você tem a opção de criar o mapeamento do canal de sombreamento (Lightmap) automaticamente na importação dos objetos no Unreal, seja pelo Datasmith ou FBX.

Agora, eu acho muito importante para arquitetura você criar um Uber Material que tenha o recurso para rotacionar as texturas, pois é bem comum ter uma madeira numa determinada direção e precisar usar em outra direção, então, fica ruim ter que editar a textura toda hora ou manter duas versões dela só por causa da direção diferente.

É facinho criar o sistema de rotação da textura, como mostra a imagem em anexo.

O parâmetro do Angulo varia de 0 até 1, então, para girar 90 graus vai usar 0.25, para girar 180 graus vai usar 0.5 e para girar 270 graus vai usar 0.75, lembrando que o Unreal vai rotacionar no sentido anti-horário.

O importante é entender o que os Nodes fizeram.

Veja que o Custom Rotator pede um V2 no primeiro Input chamado UVs, então, precisa entrar com um valor formado por um par ordenado, ou seja, dois números juntos, que é o valor do U e o valor do V.
Neste pino você vai conectar o Node Texture Coordinate, como mostra a imagem em anexo.

O segundo Input do Custom Rotator pede outro V2 para definir o centro da textura.
A área da textura varia de zero até 1 em U e em V, então, o ponto bem no meio é o par ordenado 0.5, 0.5.
Você pode usar um Vector 2 direto, mas para entender bem como as coisas funcionam eu criei um Append Vector, que junta dois valores formando um par ordenado (V2).
Então, conectei um Scalar (S) com 0.5 nos dois Inputs do Append Vector, poderia ter criado dois escalares e conectado cada um num pino, mas não havia necessidade, já que os dois valores são iguais.
Você cria o Scalar digitando 1 e clicando no gráfico.

No final criei um parâmetro escalar para definir o ângulo, você cria ele digitando S e clicando no gráfico.

OBS: Não pode fazer isso com Normal Map porque dá defeito, o sistema para rotacionar Normal Map envolve bem mais coisas.

Agora, a imagem aparecer cortada nos cantos ou em cima e em baixo, é por causa do mapeamento.
Abra o Editor do objeto no Unreal e clique no icone do UV para você ver como está, certamente a face da parede não está indo até os cantos do UV.
Tira um Print da tela e cola aqui para eu ver.

Qualquer dúvida é só falar.

Sobre você estar exportando com o Datasmith, não é um problema, mas para chegar legal no Unreal precisa fazer algumas preparações.
Eu comentei mais detalhadamente no tópico que você postou sobre o fluxo de trabalho no Revit, dá uma olhada: https://3d1.com.br/forum/tira-duvidas/perguntas-de-computacao-grafica/104694

Porém, pode ser melhor mesmo passar pelo Max para poder fazer um mapeamento decente, definir Material IDs, ajustar o ponto Pivot das portas, por exemplo, para poder abrir sem problema numa maquete interativa, até mesmo para já criar os colisores e não ter que fazer isso no Unreal.
Entretanto, os móveis e objetos de decoração eu sugiro que você prepare no 3ds max e exporte cada um deles separadamente em FBX, assim, poderá criar a interatividade dos objetos e deixar no Unreal para usar em qualquer projeto.
Por exemplo um abajur, se criar um sistema para acender e apagar a luz dele, você pode arrastar o objeto para qualquer projeto que ele vai manter o sistema de acender.
Então, no Unreal você cria bibliotecas de objetos inteligentes em vez de apenas Mesh e texturas igual é no Max, entende?

Abração e tudo de bom.

André Vieira
Olha como estão as UVS. Cliquei lá onde vc falou e tem 3.

Com certeza tem alguma coisa errada ai pois a única que acho correta é a UV2.

Eu achei que essas UVs extras fossem pq quando criei o muro eu coloquei além da estrutura, 2 camadas de membrana, uma na frente e outra atrás.

Troquei para uma parede padrão (apenas com o núcleo) e deu no mesmo. Veio com 3 UVS.

Mas isso tem a ver com aqueles canais extras que o unreal precisa, por exemplo, o canal para o lighmass né?
Não tem um node com um comando "fit" pra ele encaixar a imagem no muro. Tipo aquele fit que tem no max que adequa o gizmo do uvw ao tamanho do objeto?
Resolvi com box material no max e depois exportando como FBX.

Agora só pra me irritar, o personagem parou de entrar pela abertura das portas. E pra me irritar mais ainda, isso só está ocorrendo nas paredes onde tem as portas abertas, onde tem só a abertura da parede tá normal. Estou usando a mesma configuração para ambas as paredes, assim como tinha feito antes.

Importei o arquivo tantas vezes que acho q fiz alguma barbeiragem no processo.

Mas isso é assunto para outro tópico, caso eu não resolva.

buáaaaaa
Oi Serpa, tudo bem?

Eu fico realmente feliz de ver que você consegui fazer sozinho.
Pode ter certeza que você nunca mais vai esquecer estas coisas que aprendeu perguntando, pesquisando e quebrando a cabeça, mesmo que fique anos sem mexer no programa ainda vai lembrar destes detalhes.

Sobre os UVs que mostrou nas imagens, o único correto é o do canal 3, pelo menos para o Lightmap.
Agora, o mapeamento usado para as texturas dos materiais pode ser de qualquer jeito igual fazemos no Max, então, para as texturas os UVs dos dois primeiros canais funcionam bem.

O problema é que o primeiro UV tem uma parte da malha fora da área útil, então, a textura vai se repetir nesta malha.
O segundo UV está melhor para a texturização, pois todas as malhas estão dentro da área útil, mas estão sobrepostas, então, só serve para texturização, não serve para o Lightmap.

Normalmente criamos apenas dois canais, o primeiro para as texturas e o segundo para o Lightmap, provavelmente o terceiro canal foi gerado automaticamente na importação por ter marcado para criar os UVs do Lightmap.

OBS: Você pode aplicar este mesmo mapeamento automático com o Unwrap UVW do Max em todos os objetos de uma vez só através do Render To Texture e este mapeamento vai servir também para o Lightmap no Unreal, mas só é bom aplicar em paredes, pisos, tetos e coisas retas de alvenaria, não fica bom em sofás estofados e móveis detalhados.

É só selecionar todos os objetos e teclar zero para abrir a janela do Render To Texture, marcar a opção Use Automatic Unwrap, definir o canal de mapeamento que deseja usar e clicar no botão Unwrap Only, como mostra a primeira imagem em anexo.

Não tem um Node para fazer o mesmo papel do Fit no Max, pois o Unreal não foi feito para tratar o mapeamento dos objetos, agora que adicionaram os primeiros recursos para isso, tanto que na sua versão ainda não tem, é bem recente mesmo.
O correto é que leve os objetos mapeados perfeitamente para o Unreal, ele é fraco para edição de Meshes e mapeamento, isso precisa vir de outros Softs 3D.

O Box Mapping no Max funcionou, mas se olhar as laterais da parede e a face de trás, todas estarão com a mesma foto aplicada, a não ser que tenha definido outro Material ID para estas faces, assim, poderá aplicar outro material nelas e dai pode ser que o mapeamento não fique bom para as outras texturas.
Portanto, o ideal é mapear cada face de acordo com o que vai precisar, por exemplo, colocando os veios das madeiras na direção certa em um móvel para não ficar feito e irreal, tudo isso depende do mapeamento e a melhor forma de fazer é com o Unwrap UVW no 3ds max.
Vale a pena estudar um pouco ele para preparar bem os seus objetos.

Sobre o personagem não estar passando pelas aberturas das paredes, certamente é porque o Unreal criou um Box Collision na parede toda e ele esta barrando a passagem.
Abra a parede no Editor e habilite o Simple Collision como mostra a segunda imagem em anexo.

Provavelmente o aramado verde do Box Collision está envolvendo a parede toda, para o personagem passar pela abertura terá que editar o Collision com a ferramenta de Scale no editor, é chato demais.
O ideal é criar as colisões no Max e importar direto no Unreal, se quiser eu explico como fazer.

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: 711008.

Total de membros registrados: 138482

Últimos membros registrados: isaque.220798, Anezio.neto, DANILO COSTA , frapsxiv, naej2077, Estéfanem.melo, Paiyne, neziqhoue.

Usuário(s) on-line na última hora: 937, sendo 26 membro(s) e 911 visitante(s).

Membro(s) on-line na última hora: Henrique Ribeiro, gilson antunes, Pedro Juliato, nandao, Carlos E. Nogueira, Leonardo, Max Idalgo, billypaul, Frederico Wagner N. R., Reinaldo Silva, Duda, Jhio Design, wallanfcc, Eduardo Ramos, Renatto, Gabriel.C, Junior, Lisandro, mastermax, Baldo, magster, isaque.220798, Anezio.neto, Fernando Cunha, marcio.alain, Marco Rocha.

Legenda: Administrador, Especial, Moderador, Parceiro .

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