Open brunobg opened 2 years ago
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!
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.
BTW, se você gerar um código legal pode mandar PR pro babylon que será útil.
Ficou faltando só o lance de otimizar os VAT's... mas vai ser um projetito meu por aqui...
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.
tartaruga.vue
para facilitar a geração.Underwaterb.vue
.