Sign in to follow this  

Skeletal Animation LOD

This topic is 3106 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

For a character animation system LOD can be used for 1. mesh (skin) 2. skeleton But with a different skeleton, the keyframe animations need to be exported for each level. The animation data can be huge, so if it can be reused it could be great. What techniques are available that allow using the same animation data on different skeleton LOD's ? I came across this useful writeup: http://www.cbloom.com/3d/techdocs/skeleton_lod.txt It talks about reordering the bones in the hierarchy. But wouldn't this cause problems when interpolating the key frames (parent space)?

Share this post


Link to post
Share on other sites
You should probably use the same skeleton, and just update it less frequently and less accurately when the character is in low LOD. You'll already have to remap all the vertices for each geomery LOD which i'm not sure you really want to do on a character, maybe two lod's.

You could probably also arrange your bones in memory in a clever way so that using an increasing number of the bones in the array increases the level of detail. For instance the first bones are the spine bones, then 4 base limb bones, then 4 lower limb bones, then head, then 4 limb extremeties, then digits. Somehow in shader you'd have to compute what bone to fallback on to if your mapped bone is not present. I'm just thinking out loud.

edit: oh snap, if i would have read your whole post, or the article, i would have seen that idea was already suggested.

Share this post


Link to post
Share on other sites
Quote:
Original post by bzroom
You should probably use the same skeleton, and just update it less frequently and less accurately when the character is in low LOD. You'll already have to remap all the vertices for each geomery LOD which i'm not sure you really want to do on a character, maybe two lod's.


Yes I understand that the skinning has to be redone for each mesh LOD. I'm assuming this is not a big issue with few levels (2 or 3).
Also, as you pointed out, Animation LOD (reduced update rates) is also a nice way to reduce processing load.

Quote:
Original post by bzroom
You could probably also arrange your bones in memory in a clever way so that using an increasing number of the bones in the array increases the level of detail. For instance the first bones are the spine bones, then 4 base limb bones, then 4 lower limb bones, then head, then 4 limb extremeties, then digits. Somehow in shader you'd have to compute what bone to fallback on to if your mapped bone is not present. I'm just thinking out loud.

The article I linked mentions shuffling the bones in the hierarchy (if I understood it properly), such that a bone that was lower down the hierarchy could be moved up possibly inverting parent-child relationship.
If the animation keys are in object space, then this shuffling will not have any adverse effect.
Probably also for keys defined in parent bone space, the shuffling is O.K.
But if we are going to do key frame interpolation (this doesn't apply for object space keys as they cant be interpolated without tearing the skeleton apart), the shuffling will definitely mess up the result.

Share this post


Link to post
Share on other sites

This topic is 3106 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this