Sign in to follow this  
ballmar

3D models animation

Recommended Posts

Hello guys.

 

It is strange, but I can not find any good tutorials about 3D model animation implementation in DirectX 10-11 and C++. I wonder how does animation data usually being stored in files, should I use dynamic vertex buffers or there are other widely used techinques out there? Could someone provide some indepth information on this subject?

Share this post


Link to post
Share on other sites

The question in your first post is a bit contradictory, you ask "I wonder how the data is stored in files"? Then you move on to asking about whether you should use a dynamic vertex buffer, etc.

 

Storing animation/skeleton data in a disk file often does not translate directly into any particular rendering API (though sometimes it does for optimization, like on the Wii).

 

Anyway, it's still hard to answer your question because a "sample" type of answer will not be very scalable to your particular needs. Additionally, cutting and pasting some highly engine specific and application specific code snippets also doesn't do much good.

 

What have you tried? How well do you understand the concepts of skinned character animation and skeletal hierarchies? Start with Frank Luna's excellent PDF to get the basics down and then you should be able to pick the API du jour to accomplish what you want.

 

http://mathinfo.univ-reims.fr/image/dxMesh/extra/d3dx_skinnedmesh.pdf

 

Don't let the D3D9/D3DX throw you off. Learn the concepts then you can translate them to D3D11 and XNAMATH very easily.

Share this post


Link to post
Share on other sites

Are you sure you want to go for IK/FK ? 

 

There is another option for you - frame interpolation where you have basically all frames exported as a 3d mesh from your modelling SW and just interpolate between last and current frame in the vertex shader.

 

This is drop-dead easy to implement and you don't have to bother with skinning. Depending on style of the game, you might not need IK/FK.

 

As for the duplicity of the data - that's what the vertex compression (store normals as Bytes, not floats) and vertex streams (e.g. for UV) are for.

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