Bounding Volumes for Skeletal Animation

Started by
2 comments, last by cyansoft 20 years, 5 months ago
What''s the best way of calculating the bounding volume for a model that is animated via bones? My though is to calculate the bounding volume (which is going to be a bounding sphere and an AABB) for each keyframe of animation upon initialization of the model. Then when the model is updated, I would interpolate the bounding volumes based on the delta time between the two keyframes to get the bounding volume for that point in time. Is this going to work? If so, is this the best approach in terms of performance? Bob
Advertisement
A bounding sphere is a very rough measure anyway.. so you might be better served by making a max bounding sphere, and be done with it. If you need more accuracy, a more refined approach might be a bound box per bone. The fixed sphere check would be very quick.. then do a much more accurate bound box per bone check. The bone box per bone should be accurate enough for fairly realistic collision checks. If you really wanted, you could make a simplified model too... So if it passed the per bone bound box... it could do a per poly collision on a simplified model. This scheme should be fast, and accurate enough for most circumstances.

EDIT: Just thought I would clarify... by bound box, I mean AABB.

[edited by - dmounty on November 9, 2003 3:02:27 PM]
quote:Original post by dmounty
EDIT: Just thought I would clarify... by bound box, I mean AABB.

You can also use OBBs, one per bone, transforming them accoriding to the bones just like you transform the attached vertices. This will tend to give you a better fit, but will be a bit more computationally expensive. You can also use both, I suppose...

Michael K.,
Co-designer and Graphics Programmer of "The Keepers"


We come in peace... surrender or die!

[edited by - technobot on November 10, 2003 5:32:14 AM]
Michael K.
AABBox of OBBox is very quick : 15 additions only if coded wisely that is a 5-10 clock cycles I suppose with modern hardware (in SIMD or asm).
"Coding math tricks in asm is more fun than Java"

This topic is closed to new replies.

Advertisement