Jump to content
  • Advertisement
Sign in to follow this  
butthead_82

COLLADA vs AUTODESK fbx

This topic is 3927 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

Hi everyone I am trying to find out which one of these formats above has more promising future, which one has better support, which one would be better to use. As I understand both of these formats are supposed to be used to convert one format to another, though I read somewhere that .fbx can also be used in a game engine, is that wise? (I'm little suspicious) I heared people complain about .fbx, using various modelling packages with autodesk plugins usualy ended up with their applicatin crashing. Can you tell me something about this? Thanks for help.

Share this post


Link to post
Share on other sites
Advertisement
Last I checked, FBX was a closed format which you access via the FBX SDK. That was enough to turn me off then; I didn't feel up to wrapping the SDK in C++/CLI to be able to use it with my tools, and I could use the .NET XPath APIs to wrangle Collada quite easily. XML -- text -- is also a little nicer as an interchange format because the data is more-or-less human-readable.

Because of the above, I never used FBX so I can't comment on it beyond that. Collada supports a lot, but has a definite feeling of overengineering sometimes and can be a little awkward to handle at times. For the most part, I'm pleased with it.

I wouldn't really recommend using any format designed for interchange directly in a game, as they tend to be overly verbose and ill-suited to optimized load paths.

Share this post


Link to post
Share on other sites
I don't know fbx either, but collada. Collada has been adopted by many 3d tools, developers etc., so I think that this format will be the de-facto standard in the future. Collada supports all you need, including phyisics, animation etc.

As jpetrie already said, I wouldn't read collada or whatever format directly into my engine. I designed my own model-format optimized to my engine requirements and wrote a collada-converter.

An other tipp: don't write your own exporter ! Use an existing exporter and just write a converter. An exporter is tool bound and that is really a bad idea (learned it the hard way ;-) ).

--
Ashaman

Share this post


Link to post
Share on other sites
Quote:

I don't quite understand what you mean by "wrapping SDK in C++/CLI", could you explain that to me, please?

I develop in C#. The FBX SDK only provides a C interface, iirc. Which means I would have to write a wrapper around it in C++/CLI so that I could call it from my managed code.

Quote:

can you tell me what usefull tools for working with collada are there?

VS can generate C# code for handling Collada file's from the schema, but I've found this ugly and prefer XPath. There's FCollada and the Collada DOM SDK for C++.

Tool-wise, nearly every modelling package can export to it (I use XSI) and there are external tools like the Collada Refinery to perform content processing.

Share this post


Link to post
Share on other sites
theres nothing wrong with using collada (loading/parsing is fast enuf with most datasets)
the major issue is how much to support, collada does everything under the sun, whereas for your game youre most likely only wanting a small subset of that, ie its overkill. i suppose theres nothing wrong with a having a collada-lite loader

Share this post


Link to post
Share on other sites
Quote:
Original post by bronxbomber92
Hi,

I was wondering why you wouldn't use collada directly in your engine?


Takes too much space and handling it takes too much time, kills the performance.

Share this post


Link to post
Share on other sites
Collada is designed to be an interchange format; this basically means it's designed to support a lot of data formats, data sets, et cetera in a generic fashion. Collada in particular elects to do this via XML.

While the Collada schema imposes some restrictions on element ordering, it still allows for extensive cross-referencing between data sets, which ultimately makes for less-than-optimal load performance -- especially when you factor in the conversions neccessary to bring the Collada data into the in-memory format you'll actually be using for rendering.

The performance impact isn't generally a huge issue for the small datasets of hobby games. For professional games, the sheer amount of assets that need to be loaded is generally large enough that load-time optimization can become a valid concern.

It is certainly possible to use Collada directly, it's just not the best choice.

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!