How to compute the bounding volume for an animated (skinned) mesh ?

Started by
22 comments, last by Adaline 10 years, 4 months ago

This means that it is highly unlikely that you would hit a case where you export just 2 keyframes for a 360 degree rotation.

You're probably right, this is just an example (notice that I never modelled anything but my friend does (using Blender) )

Anyway, I think the problem is still the same ...unsure.png

Advertisement

More and more, I'm thinking about this idea to provide a bounding box that encapsulate all the animations is not as bad as said ...

More and more, I'm thinking about this idea to provide a bounding box that encapsulate all the animations is not as bad as said ...
Please proove me I'm wrong (with pleasure )

As Buckshag mentions in the following...

The method using keyframes would only work if you do not blend or combine motions or do not do any procedural things.

...If you use blending or additive animations (which you most likely will), then only taking the bounds of each pure keyframe and collecting only the bigger dimensions cannot account for all possible scenarios. The addition of two extreme frames may result in something that pierces the pre-calculated bounds.

However, the odds of this making the entity pop in or out of view in the middle of the game are very low, especially because you can increase the bounding box by a fixed amount and be conservative.

Unity seems to use the simple keyframe calculation at import: http://docs.unity3d.com/Documentation/Components/class-SkinnedMeshRenderer.html. Note their explanations on how additive animations can alter the result.

You can also consider using a bounding sphere instead, which is a more conservative volume.

Sorry, I was using the word 'keyframe' instead of animation node : I will not use keyframe animation, but skeletal animation.

I will not interpolate geometry (only scalings, rotations and positions of two animation nodes)

Using Assimp, this is the object aiNodeAnim

This topic is closed to new replies.

Advertisement