Skeletal animation question regarding bones.

Anything and everything that's related to OGRE or the wider graphics field that doesn't fit into the other forums.
Post Reply
Imperil

Skeletal animation question regarding bones.

Post by Imperil »

I have an asset that is ~85 bones and ~5800 tris. and I need 10 of them on the screen. Obviously this is a problem because with that high of a bone count being software skinned I am CPU bound completely.

This bone count is even out of range of using SM2.0 I believe.. so what would be a method of trying to optimize this without having to modify the bone count? Or is there even a solution to this?

I would like to be able to software skin as well as hardware skin for cards that support SM1_1 and 2_0.

Thanks for any ideas / information :)

Imperil

Post by Imperil »

Ack.. blend weighting was actually 4 per.. so the art guys are toning it down to 1 blend weight with some set at 2. That should bring it to a managable level I think.

User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19265
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66
Contact:

Post by sinbad »

85 bones sounds unnecessarily high - most characters get away with about 35, even with articulated toes / hands.

vs_2_0 supports at least 256 4-float constants. Each bone takes 3 constants, so rudimentary math tells you that without any other constants you can get up to .. wait for it .. 85 bones. However, in practice you'll need a few spare for things like lights and view / projection matrices. But it's close, so if you really do need such large skeletons you don't have to optimise out many bones (although you'd still be advised to get rid as many as you can - is this really a model designed for real time?).

The other option is to split the character into smaller parts and allocate skeletons to each. Since most characters are rooted at the hips this would be a perfect place to split it. The CPU overhead will remain the same as for hardware skinning the entire thing as one mesh, but you'll have more vertex shader constants to spare. Don't even think about software skinning on this puppy.

Imperil

Post by Imperil »

Thank you very much for the information, much appreciated :)

User avatar
:wumpus:
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 3067
Joined: Tue Feb 10, 2004 12:53 pm
Location: The Netherlands
x 1

Post by :wumpus: »

You could also split up the model into parts, and animate them seperately..

Post Reply