1
\$\begingroup\$

I'm really new to game dev / D3D. And I was looking to choose an intermediary format to work with and convert to my internally used format. Collada DAE seems to be good as it can export animation too and it's XML. Kind of bloated but easy to parse.

My expertise is in reusable code writing, libraries, APIs and such. So my first impulse was to go an implement a FULL parser of the Collada format given the fact that I'm not 100% what I need or will need to extract from it.

As it seems Collada is trying to be everything and the kitchen sink, there's definitely stuff in there I don't think I need to be concerned about. So, sanity prevailed and decided to come here and ask the experienced people what are the important nodes for game characters and objects in the .DAE file? Or is there another format considered friendlier by game devs that can export animations too?

I've figured out the following are important:

  • geometries (mesh + triangles)
  • materials + images
  • animations + controllers
  • visual scenes + scene

What else am I missing from the top-level node list? I don't think lights are important as I deal with that in code. I just need to import meshes + textures + animations. At least for now, as I'm just starting out in D3D programming.

For a non-animated object I can get away with a .OBJ file but for a player with animations, I really don't think .OBJ supports them.

So the question is: Which DAE nodes are relevant to game objects and animated characters?... and if someone experienced consuming this format could provide a few words describing them, in a more game-friendly way then that specification... would be great! Or should I use another intermediary format but .DAE?

\$\endgroup\$
  • \$\begingroup\$ Generally you want to store your assets in a format (or formats) specific to your engine. This makes them easier and faster to load, and eliminates the need to have multiple loaders for multiple file types for the same type of asset. Then you have a stand-alone tool that converts various assets from various artist-friendly formats like Collada, PNG, FLAC, etc. to your engine's format. For doing this with models and animations, take a look at Assimp. It's somewhat slow but supports lots of formats, including collada. \$\endgroup\$ – bcrist Mar 12 '14 at 21:44
  • \$\begingroup\$ @bcrist I've seen Assimp, but that's not my question... I could use their parser but I want to write my own and learn more about the format in the process. \$\endgroup\$ – CodeAngry Mar 13 '14 at 6:27
0
\$\begingroup\$

Well I got the answer I was looking for on SO:

Step by Step Skeletal Animation in C++ and OpenGL, Using COLLADA:

It's quite detailed. Leaving aside the OpenGL stuff, the explanations are really good.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.