Should I use FBX or COLLADA?

Started by
20 comments, last by MChiz 13 years, 4 months ago
Quote:Original post by thatguyfromthething
Quote:Original post by jpetrie
I think both are interesting, but overly complex. I haven't used FBX nearly as much, but the overgeneralization of Collada (and the fact that its specification doesn't define a standard method for doing some things like linking animations to bones, at least last I looked) put me off of it.


If you don't have to use either for some reason, don't. You may as well make your own exporter as the collada exporters all have problems anyway and many of the FBX ones have issues as well. If I were making an engine I'd make my own format that is simple and keeps skeleton and mesh data separate and then make a converter from collada or fbx to that data to cover the animation tools I didn't want to waste time supporting directly.


I already have my own format but you don't seem to realize that you actually have to get the models into your engine from a modeling application. My plan was to load the fbx or collada mesh into my class then save it out under my format instead of writing a plug in for just one of the many modeling applications out there.
Advertisement
Not that I'm professing to know much about the subject, but I too have been recently been looking into supporting various model formats in my engine. I was leaning towards COLLADA due to it's physics support (I just have a simple OBJ converter at this stage), and its apparent ubiquity.

I too was planning to convert to a native binary format (which is literally the serialised version of the internal classes - thank you Boost).

I have no experience of FBX but I have come across another format, OpenCTM, which looks interesting (http://openctm.sourceforge.net/) what do people think about this format? If anything? I am currently clueless.

Sorry if I'm hijacking your thread SteveDeFacto, but I'm hoping you'll find this useful too...
Quote:Original post by SteveDeFacto
Quote:Original post by thatguyfromthething
Quote:Original post by jpetrie
I think both are interesting, but overly complex. I haven't used FBX nearly as much, but the overgeneralization of Collada (and the fact that its specification doesn't define a standard method for doing some things like linking animations to bones, at least last I looked) put me off of it.


If you don't have to use either for some reason, don't. You may as well make your own exporter as the collada exporters all have problems anyway and many of the FBX ones have issues as well. If I were making an engine I'd make my own format that is simple and keeps skeleton and mesh data separate and then make a converter from collada or fbx to that data to cover the animation tools I didn't want to waste time supporting directly.


I already have my own format but you don't seem to realize that you actually have to get the models into your engine from a modeling application. My plan was to load the fbx or collada mesh into my class then save it out under my format instead of writing a plug in for just one of the many modeling applications out there.


That's why I said to consider writing a converter from collada to your format. But writing an exporter from say maya to your own format is a snap so if you favor one or two content tools it's really not hard. The exporters for collada in general are pretty terrible though and I get nothing but damned problems, it's like the bane of my life lately. So I would never bother to write an exporter to collada it is just a huge waste of time. Same goes for FBX. At most, write a converter that any tools you don't want to directly support can convert to your format.

This is my thread. There are many threads like it, but this one is mine.

Quote:Original post by tgjones
Not that I'm professing to know much about the subject, but I too have been recently been looking into supporting various model formats in my engine. I was leaning towards COLLADA due to it's physics support (I just have a simple OBJ converter at this stage), and its apparent ubiquity.

I too was planning to convert to a native binary format (which is literally the serialised version of the internal classes - thank you Boost).

I have no experience of FBX but I have come across another format, OpenCTM, which looks interesting (http://openctm.sourceforge.net/) what do people think about this format? If anything? I am currently clueless.

Sorry if I'm hijacking your thread SteveDeFacto, but I'm hoping you'll find this useful too...


I only schemed over it but it looks interesting but no where that I saw it said that it supported animations. To me it would be pretty much useless if it does not support animations
Quote:
I already have my own format but you don't seem to realize that you actually have to get the models into your engine from a modeling application. My plan was to load the fbx or collada mesh into my class then save it out under my format instead of writing a plug in for just one of the many modeling applications out there.


How many modeling applications are there really, 3DS Max and Maya are probably the only ones you're going to encounter in a professional setting, and then maybe Blender for hobbyist stuff, that's about it. Even if you just wrote a script/plugin for Max *or* Maya it probably (or so I speculate) would be easy enough to save to a format they both support to get your data from the application you have a plugin for, to the one you don't.
Quote:Original post by doesnotcompute
Quote:
I already have my own format but you don't seem to realize that you actually have to get the models into your engine from a modeling application. My plan was to load the fbx or collada mesh into my class then save it out under my format instead of writing a plug in for just one of the many modeling applications out there.


How many modeling applications are there really, 3DS Max and Maya are probably the only ones you're going to encounter in a professional setting, and then maybe Blender for hobbyist stuff, that's about it. Even if you just wrote a script/plugin for Max *or* Maya it probably (or so I speculate) would be easy enough to save to a format they both support to get your data from the application you have a plugin for, to the one you don't.


There are actually many other modeling applications such a silo and a few others. Autodesk 3DS Max cost $3,495 and Maya cost $3,495. Torrenting them is an option but torrenting an up to date working version of the SDK is not.

Blender is the only real option but I have rewritten my export plugin 3 times and wasted moths of time I could have spent on something else. Even when I had a working plugin I was unable to find anyone who used blender to make their models so I had to export the model from 3ds max or maya then import it into blender then export it to my format. In importing it into blender I would normally have to redo the texture coordinates or animations. It's a complete wast of time...

The best option is to have an intermediate format that your engine supports in order to allow you to simply convert the models directly from the modeling application into your own format without having to deal with yet another layer of BS...
Indeed SteveDeFacto, animation support at the very least is kind of essential! Thankyou for that information!!

PS - How do you do a quote in this forum please...?
Dont know about Maya but for Max I wrote a converter for the ascii file that it can export. Since it's text its easy to parse and it contains everything the original model contains (even an entire scene if need be). In this case there is no conversion loss and I only use what I needed from the files. A simple filter and compression program was all that was needed after that point.

I have worked with many formats and I found out to avoid any non-native formats if at all possible. Max/Maya to Blender is not a good idea and I can sympathize with you on recoding something over and over. Been there, done that and it sucks major you know what.

My suggestion is to use the native format of the program be it Maya, Max, Blender or Lightwave and use your own custom format in-game.

******************************************************************************************
Youtube Channel

I heard a lot of good things about assimp http://assimp.sourceforge.net/
If you are looking for an API to load assets that could be what you are looking for. It has support for many formats.

But it depends what language you are using, some languages such as C#, have a great deal of support for XML, making it easy to load and save COLLADA and other XML formats. http://code4k.blogspot.com/2010/08/import-and-export-3d-collada-files-with.html
Quote:The exporters for collada in general are pretty terrible though and I get nothing but damned problems, it's like the bane of my life lately. So I would never bother to write an exporter to collada it is just a huge waste of time. Same goes for FBX. At most, write a converter that any tools you don't want to directly support can convert to your format.


What problems have you had with COLLADA? I understand that openCOLLADA (www.opencollada.org) is quite good, and has been stable for a long time now.

The idea of COLLADA is to expose as much data as possible in XML so it is relatively easy to convert the data to your engine format using scripting or C# like languages, or to load directly in the engine.

My design recommendation is to be able to load both converted assets and source (COLLADA) assets in the engine, at least during development phases. It may take a bit longer to import source assets, but overall it save so much time when developing a game as changes can be immediately seen.

This topic is closed to new replies.

Advertisement