Mesh file format?

Started by
9 comments, last by Schrompf 11 years, 3 months ago

Yes, FBX is also a good thing. It's solid technology, except for the whole "binary-distributed only" which rubs me in the wrong direction. I prefer building myself, and in most cases today it's just a "drop those files into your project configuration and build along". But that's another topic.

FBX does a good job on animations, and I concede that Assimp is lacking in that direction. Assimp supports node animations, so you could actually animate any motion in your scene, but it does not support meta data on animations such as "interpolate this linearly, this not at all" and it does not support complex animation curves such as splines. The reasons for this are manifold:

a) I never needed it, and I'm nearly the only person who takes care of animations in the Assimp project. Whenever I get animation data along with a scene, it comes as a dense regular pattern of keyframes, where linear interpolation is more than enough to represent the motion correctly. Therefore there was never a need for complex animation curves, and thus I never got around to implement them.

b) Most file formats don't even support any complex animation features. To my knowledge Collada is the only file format that allows specifying interpolation, and I've never seen it in use anywhere. It it would be used, I should probably add a decoder in the loader to interpret this data and break it down into linearly interpolated keyframes.

c) Assimp tries to cater to a hell of a lot people. We get occasional complaints that we flat the data too much and that we should strife to preserve the data as original as possible. But 30+ file formats do have many a different view on how to represent the data, and the current Assimp structures are simply the lowest common denominator of all these views. If we ramp up the data structures, it should better be able to handle ALL of these formats. And I really fear that we end up at an overengineered mess of generic data blobs and reading techniques such as Collada is, which would render the whole library useless in my opinion.

d) Optimizing animation data shouldn't be that hard, and we already planned a post processing step to filter out keyframes that don't make a difference when missing. But we never got around to implement it.

Note: Assimp also supports FBX, but to my knowledge it's still hidden in some personal fork and wasn't reintegrated yet.

----------
Gonna try that "Indie" stuff I keep hearing about. Let's start with Splatter.

This topic is closed to new replies.

Advertisement