Hello everyone,
First of all, thanks to babylonJS team and contributors for their awesome work !
I have some questions, essentially about rigging limitation for complex rig in BJS. We are currently developing a web-app, and want to use of BABJS.
Our scene will be quite simple, only one character, simple ground, simple environment, simple shaders, not lot of textures, decent amount of vertex. When it comes to BJS for this project it’s about bones/rigging where i have the most trouble to find information.
1/ Number of bones limitation.
a)I read it’s 50, but not quite sure. Is it 50 far all scene ? Is there a per mesh limitation ?
Our web-app must work on most used navigator (chrome, safari, FF, IE). Depending on the use of morph-target or helper bones, i need to know this maximum limitation.
It’s also quite hard for us to understand how much it will impact performance.
b) Did rig performance varies depending on vertex count ? The more vertex, the more calculation for the rig ? Or is heavy rig (assuming max number is 50 bones) will perform the same on very low mesh and medium mesh ?
c) Quite the same question for textures and materials ?
I assume calculation of bone deformation only induce calculation of geometric deformation. Am i right ?
2/ The use of morph-target (blend shapes in maya). We need to make a complex rig, with deformations. The question is “How much we will relay on morph-target”. It clearly depends on performance and we will try to mostly use helper bones (bones that help in the deformation of the model on some positions) but for some extreme poses it won’t be sufficient and morph target must be the way to do it.
So i have some questions about morph-target:
a) Did morph-target could be used on rigged model ? Could rig exported from maya (or blender) with drivers of morph target (ex : for the rotation of this joint apply this morph) is available in BJS thanks to export. (i assume yes but i’m not sure about it)
b) How many morph target per model ? I read that each object is limited to 16 attributes per vertex, on the doc : Use Morph targets - Babylon.js Documentation
“Please be aware that most of the browsers are limited to 16 attributes per mesh. Adding a single morph target to a mesh add up to 4 new attributes (position + normal + tangents + uvs). This could quickly go beyond the max attributes limitation.”
Is a morph target always applied to normal / tangents / uvs when you only want physical deformation ? What happens if you only apply it to vertex position ? Will texture “not be deformed” ? It’s a noob question for sure.
So is it only 4 morph-target per model (if position + normal + tangents + uvs are modified too) ?
I saw some poeple here making facial rigs with more than 4 morph-target. How is it possible ? Will this be supported by most of browsers ?
Thank you for your help.