Sign in to follow this  
SamuraiDave

importing bone data...which file format?

Recommended Posts

Hi, I've always wondered which 3D file format has easy documentation about importing bone data. I've only coded 3DS loaders before, but I couldn't find any documentation dealing with how it stores bones and relevant data. Does anyone know any 3D file format that stores this information in an easy to load way? What do most people do to get this data for their games? Cheers, David :)

Share this post


Link to post
Share on other sites
There are lots of tutorials and information for the Quake/Doom file formats (MD2/MD3/MD4/MD5). I'm sure 3/4/5 support bones and are quite easy to load.

Share this post


Link to post
Share on other sites
MD3 doesn't support bones, just to warn you. MD5 does, but if you want to do bone animation + skinning entirely on the GPU, you're better off going with something else. MD5's aren't really suitable for that.

Share this post


Link to post
Share on other sites
In addition to what others have already posted, MS3D's format stores bone information and is pretty trivial to parse. The X file format also stores bone information, but is not so trivial to parse (manually; using D3D you can use the D3DX library to do most of the heavy lifting).

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Thanks very much for the useful info!
It's very interesting...
Do most modern games do realtime bone/skinning animation? Or do they just use a set of precalculated frames of animation for the model? (I've only dealt with static models before).

Thanks very much for all the info :)
Its most appreciated! :)

Share this post


Link to post
Share on other sites
They generally do skeletal animation at run time, either on the CPU or the GPU. Precalculating and storing all animation geometry (even just keyframes) is a huge space overhead and can look pretty icky.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Awesome, thats what I was hoping :)
Thanks very much!

Share this post


Link to post
Share on other sites
I use the MD5 format mostly, I found it quite easy to parse. And I do the skinning + animating on the CPU.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
is that because of limitations on the GPU? Just curious, since I've never had a go at this before.

Share this post


Link to post
Share on other sites
No, it's just that the layout of the data in MD5 files isn't really the best possible for GPU skinning.

Which is probably as planned, since Doom3 wouldn't do any skinning on the GPU because they need the results for collision also.

Share this post


Link to post
Share on other sites
The problem with GPU skinning is that when you perform heavy multipass rendering, you have to compute the skinning once per pass. This is one of reason why you may consider to perform CPU skinning instead, therefore computing the pose only as needed.

Doom 3 uses a shadow volume system which requires multi-pass rendering. This may be one of the reason they choose CPU skinning.

DirectX 10 will let you save and reuse data processed by the GPU therefore allowing efficient GPU skinning even with heavy multi-pass rendering.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Thanks for the useful information everyone. I'm intending to program this with OpenGL so, looks like I'll be doing CPU based skinning.

Cheers! :D

Share this post


Link to post
Share on other sites

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