Jump to content
  • Advertisement
Sign in to follow this  
Vincent_M

COLLADA vs FBX... Are They Worthwhile for Generic Model Formats?

This topic is 1412 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'd like to use a more standardized model format that's a commonly-exported format across many 3D software production packages (Blender, Maya, 3DS Max, etc), and it seems that there are two: COLLADA and FBX. The problem is, it seems that there are multiple versions for these formats out there, and the exporters for each modeling package that supports these formats will provide the data in slightly different ways. Some even with missing features. It appears that the modeling package being used, the version of that package, the version of the supported exporter provided, and the file version are all variables that need to be considered. This is from what I've gathered so far, anyway.

 

I understand that these formats are meant to be generic formats to hold all kinds of data that the engine can interpret, and use in an optimized way, but due to this, it seems like these formats change on a regular basis. I mean, it seems that there's really no standard exporter for COLLADA let alone a solid, multi-platform importer (it sounds like ASSIMP has done a good job, though). FBX seems to change every 6 months, which requires a new SDK with radically different APIs. ASSIMP seems really nice since it can grab models from a variety of different formats, and provides a common interface for working with the data once loaded. The problem with ASSIMP is that it doesn't handle FBX as well as I thought it would (since the specs change frequently, I'm guessing). From what I've seen, FBX is used quite a bit.

 

Has anyone had any experiences related to handling COLLADA or FBX? If I could, I'd prefer to work with just FBX.

Share this post


Link to post
Share on other sites
Advertisement
I wrote my own (simple) collada parser, which was pretty easy armed with C#'s great XML parsing abilities, the specification PDF and some test exports from my artist.

However, I don't support the full collada spec, just the parts we need.
Yeah, the great thing about specifications is that everyone seems to bend (or just ignore) them, so new types of content that we haven't used before often won't work. e.g. The first asset from a new art tool might require me to tweak the importer because it stores the data slightly differently, or we might have to experiment with that new exporter and find the right combination of settings (such as ticking 'triangulate polygons' if my importer only works with triangles), etc...

I prefer to use collada rather than having to write custom exporters for every art tool... But yeah, instead I'm making one importer with a bunch of different code-paths added via trial and error from every art tool :/
I could've just used Assimp, but writing my own KISS importer means I can always deliver the results that the artists expect -- e.g. All sorts of Softimage-specific data about regions/clusters/sectors (which they wanted to use to define level areas) is imported inside non-standard <XSI> nodes, which aren't handled by Assimp.

Share this post


Link to post
Share on other sites

That about sums it up. Pretty much the same experience i had with COLLADA. I bounced around forums trying to figure out why this or that would cause a crash or produce a different result between maya and 3ds max. Waiting for exporters to be updated by someone else killed it for me.

I had kept an eye on FBX but with the versions and heavy weight details and extras, I didnt have it in me to get into it after COLLADA. Eventually I figured these problems would never completely go away, so I wrote my own, a sort of tag based binary COLLADA.

I figured the time being wasted fighting and understanding the output from these model packages and file formats would be better spent on something concrete, like an exporter for my own format.

In the end the time was well spent, I have an exporter, I have a file format, I can add sections to it to support future (game specific) ideas, I control how the data is ordered and read in, if it breaks it means the modeling package changed (rare), I can ignore what I dont need during the export (smaller files).

I will say though, If I hadnt gotten pretty deep into COLLADA in the first place, getting the animation data right probably would have been more confusing.

Share this post


Link to post
Share on other sites

These are just some of the reasons we created the Open Game Engine Exchange format (OpenGEX):

I’ve been spending quite a while on game-data-formatting tools, especially FBX.  There are some gripes I have with it and have been in contact with Autodesk staff to possibly get some things patched/fixed.
 
Without knowing if my input to Autodesk will ever be utilized, this is an interesting project to me.  I certainly have some input to give when it comes to 3D model formats.
 
Is there a way I can join this project?
 
 
L. Spiro

Share this post


Link to post
Share on other sites

I have seriously almost gone the COLLADA here and there since late 2012, but then I kept remembering how "well" I did with my .x parser, and how incompetent I was in grabbing data properly. That said, it's XML-based, and that's pretty easy to parse with an XML-parsing library, such tinyXML in C++. C# does have some good XML and JSON parsing abilities. I just wish we used XML more with our Unity projects at work lol. I've been hoping for some sort of person or group to push a new, tighter-spec'd format to replace COLLADA, and it looks like OpenGEX may be on the right track for that.

 

EDIT: Eric Lengyel, on 30 Aug 2014 - 9:34 PM, said:

snapback.png

These are just some of the reasons we created the Open Game Engine Exchange format (OpenGEX):

 

http://opengex.org/

When do you think you'll have an exporter ready for Blender? That's currently what I use since it's free, stable, highly-functional, and there are communities of artists out there with Blender models you can download for free. It'd be pretty easy to get a few models of Sintel with various animations to try different tests.

Edited by Vincent_M

Share this post


Link to post
Share on other sites

I have Assimp and SDKMesh (for DXSDK sample media) importers, and plan on creating another importer utilising the FBX SDK shortly to support morph targets (Assimp doesn't do morph targets currently).

 

I like Assimp. It provides much more than just supporting a number of formats for getting data into your engine. It also has a wide range of asset "conditioners", i.e. calculating tangents/bitangents, joining/optimizing, removing redundant stuff, UV conversion of spherical, etc. mapping to standard UVs, ensuring mesh instancing is correct, generating smooth normals, splitting large meshes, triangulation, conversion to other coordinate systems, etc.

 

If I want to use or test an asset I haven't created, importing it via an Assimp is a good first step for getting it clean.

Share this post


Link to post
Share on other sites
Anyone got a look at glTF yet?
https://www.khronos.org/gltf
http://www.gltf.gl

I unterstand it like they are advertising it as an optimized run-time-format which can be created out of a COLLADA file.
The format specification is not yet finished though.
(although LibreOffice already supports it)

Regards
Markus

Edit: this link gives a better explanation about what glTF is
https://github.com/KhronosGroup/glTF/blob/master/specification/README.md

Share this post


Link to post
Share on other sites

 

These are just some of the reasons we created the Open Game Engine Exchange format (OpenGEX):

I’ve been spending quite a while on game-data-formatting tools, especially FBX.  There are some gripes I have with it and have been in contact with Autodesk staff to possibly get some things patched/fixed.
 
Without knowing if my input to Autodesk will ever be utilized, this is an interesting project to me.  I certainly have some input to give when it comes to 3D model formats.
 
Is there a way I can join this project?
 
 
L. Spiro

 

 

An updated specification for OpenGEX probably won't be in active development until sometime in 2015. If you have suggestions and/or feature requests, please feel free to send them to me at lengyel@terathon.com.

Share this post


Link to post
Share on other sites

snapback.png

These are just some of the reasons we created the Open Game Engine Exchange format (OpenGEX):

 

http://opengex.org/

When do you think you'll have an exporter ready for Blender? That's currently what I use since it's free, stable, highly-functional, and there are communities of artists out there with Blender models you can download for free. It'd be pretty easy to get a few models of Sintel with various animations to try different tests.

 

The Blender exporter is currently in development and should be available pretty soon.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!