Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gerar VAT #52

Open
2 tasks done
brunobg opened this issue Dec 16, 2021 · 4 comments
Open
2 tasks done

Gerar VAT #52

brunobg opened this issue Dec 16, 2021 · 4 comments
Assignees

Comments

@brunobg
Copy link
Member

brunobg commented Dec 16, 2021

VAT = Vertex Animation Textures https://doc.babylonjs.com/divingDeeper/animation/baked_texture_animations

O código não deve gerar o VAT em tempo de execução. Precisamos gerar ele antes e salvar num arquivo (tem o serializador pronto na BabylonJS). Isso é aplicável aos modelos com animação.

Infelizmente o baker da Babylon assume uma animação de um jeito diferente que está nos meshes que tenho. Vide https://forum.babylonjs.com/t/how-to-find-the-total-number-of-frames-of-a-skeleton-animation/24884 sobre o bug e uma solução. ACHO que também funciona gerar com o baker existente e eliminar as linhas repetidas da textura, mas é preciso confirmar isso.

Tenho os .blend originais se ajudar.

  • gerar o VAT dos peixes e salvar em arquivos. Documentar como isso foi feito ou fazer um arquivo tipo o tartaruga.vue para facilitar a geração.
  • fazer load destes arquivos em vez do baker direto no Underwaterb.vue.
@hiperlogic
Copy link
Contributor

hiperlogic commented Dec 21, 2021

Estou avaliando esse primeiro, pois é algo que ainda não trabalhei e provavelmente será o que demandará mais tempo.
Porém, a mecânica básica dos VAT já foi entendida... (não necessariamente como os VAT funcionam de fato, mas o que são, como gerar e como usar... que é o que é necessário por aqui)

Vi o forum sobre recuperar o numero de Frames... ainda estou vendo as mensagens, mas aparentemente o que você disse faz sentido. Se é necessário passar o número de frames nas animações para o baking dos VAT, recuperar o número de frames das animações é algo que deveria ser dado!

@brunobg
Copy link
Member Author

brunobg commented Dec 21, 2021

VAT é basicamente um baking da animação numa textura. As posições de vértices são calculadas com os bones pra cada frame e tudo é salvo numa textura. Isso permite animar direto na GPU em vez de calcular os bones em CPU, o que é lento e em JS rapidamente vira gargalo.

A implementação do uso do VAT está pronta e funcionando, o ponto aqui é gerar a textura em si, porque o código da BabylonJS não faz isso direito (é, eu que escrevi ele, mas nem os autores entendem direito das animações e deixaram passar direto o problema até eu topar com ele). O thread lá do forum detalha como fazer isso. Mas eu acho que pode ser mais fácil ver se a textura gerada da forma atual tem linhas repetidas e arrancar elas fora.

@brunobg
Copy link
Member Author

brunobg commented Dec 21, 2021

BTW, se você gerar um código legal pode mandar PR pro babylon que será útil.

@hiperlogic
Copy link
Contributor

Ficou faltando só o lance de otimizar os VAT's... mas vai ser um projetito meu por aqui...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants