Jump to content
  • Advertisement
Sign in to follow this  
bootstrap

collada

This topic is 4167 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 rarely see collada mentioned in the gamedev forums I tend to frequent. Why? This is my reason for asking. My 3D-engine is fundamentally designed to "procedurally generate" content (from "geometric-shapes", "polygons along curves with subdivision", and "noise and similar functions"). However, I want to support manually-generated content too, but have no interest in the process of reverse-engineering several binary object/hierarchy formats, then trying to updated them whenever the formats are modified. So collada seems attractive; just let people export objects to collada format and we only need to import one format - a format that apparently involves no reverse-engineering. What is the flaw or weakness in this point-of-view? Why do I hear little or nothing about collada on this forum? Does anyone have good or bad experiences with collada? PS: Yes, I understand XML formats are large/bloated and take much longer to read and process than carefully designed binary formats. I dislike XML, and create my own far superior binary alternative (and not just for game assets). However, my engine needs to load a collada object/hierarchy/scene only *once*, and can then save it in efficient binary form for all future access. So the shortcomings of XML frankly don't matter much in this situation.

Share this post


Link to post
Share on other sites
Advertisement
Quote:
Original post by bootstrap
I rarely see collada mentioned in the gamedev forums I tend to frequent. Why?

This is my reason for asking. My 3D-engine is fundamentally designed to "procedurally generate" content (from "geometric-shapes", "polygons along curves with subdivision", and "noise and similar functions"). However, I want to support manually-generated content too, but have no interest in the process of reverse-engineering several binary object/hierarchy formats, then trying to updated them whenever the formats are modified.

So collada seems attractive; just let people export objects to collada format and we only need to import one format - a format that apparently involves no reverse-engineering.
I agree with you completely! This is also my reason!
Quote:
Original post by bootstrap
What is the flaw or weakness in this point-of-view? ... Does anyone have good or bad experiences with collada?
The... unluckly fatal... flaw is the support. Well, shouldn't be this an industry standard? It probably is on cuttng edge Maya or whatever. For more "consumer" apps. It's still a far cry. For example, Autodesk's Architectural Desktop (a toned-down 3dsmax for engineering rendering) does not support it, nor does AutoCad itself. Last version of 3dsmax itself didn't have collada support out of the box. I had to download an export plugin but the architect using it never tried it out.
Open source software?
I don't know for blender, but most other sw I've seen does not seem to even know what collada is.
Quote:
Original post by bootstrap
Why do I hear little or nothing about collada on this forum?
I believe it has to deal with the fact many people is perfectly ok with old formats... especially if they can already have them from the net. By contrast the Collada spec weights hundreds of pages and may discurage a lot of people in pursing it. The collada library seems definetly overkill when compared to most people's needs.

Quote:
Original post by bootstrap
I dislike XML, and create my own far superior binary alternative (and not just for game assets).
Nor do I! XML for storage sucks! It born as an interchange format but everyone seems to have taken it the wrong way!
Quote:
Original post by bootstrap
However, my engine needs to load a collada object/hierarchy/scene only *once*, and can then save it in efficient binary form for all future access. So the shortcomings of XML frankly don't matter much in this situation.

This is also what I'm doing. Writing "filters" for all assets parsing them in a proprietary representation.

Share this post


Link to post
Share on other sites
Quote:
Original post by bootstrap
I rarely see collada mentioned in the gamedev forums I tend to frequent. Why?


Probably because beginners use easy formats (obj, md2)
While serious engine programmers create their own format that supports all the things thier engine will support.

Quote:
Original post by bootstrap
However, I want to support manually-generated content too, but have no interest in the process of reverse-engineering several binary object/hierarchy formats, then trying to updated them whenever the formats are modified.


well, you shouldve started with loading meshes.
i dont know you pipeline, but couldnt you change the dynamic generation to become "filters"
then you could just have a filter wich adds a model to the filter chain


Quote:
Original post by bootstrap
So collada seems attractive; just let people export objects to collada format and we only need to import one format - a format that apparently involves no reverse-engineering.


yes, no reverse engineering.
just a whole lot of reinventing the wheel.
i read about the collada format at wiki, and from what i read it seemed that it could contain a whole lot of stuff.
all that stuff needs to be cased in your program.


Quote:
Original post by bootstrap
What is the flaw or weakness in this point-of-view? Why do I hear little or nothing about collada on this forum?


probably becouse people perfeer their own ways of loading models.


Quote:
Original post by bootstrap
PS: Yes, I understand XML formats are large/bloated and take much longer to read and process than carefully designed binary formats. I dislike XML, and create my own far superior binary alternative (and not just for game assets).


have you ever programmed scene configurations or materials?
XML is really good if you need to test resources
XML can be read, therefore it is easy to make small fast tweeks
i agree that it can take some time to load, but it isnt made to be loaded during runtime


so, if you are serious about your engine, just create your own format, and then write an exporter for maya/max that you ship with it.

or, if it is a small project ; be satisfied with MDL or MD4

Share this post


Link to post
Share on other sites
Well i have putten considerable time and effort into making a Collada Converter and i start to see why it hasnt taken off.

Firstly the idea is great, a standard extensible format which can store any data that a DCC tool might need to save, for us game developers, we just extract out what we need into our own binary formats.

But there are some cons:

1) Complexity
The format is huge. It is complicated and documentation/tutorials are not great. It has to be huge in order to support all the features of a mordern DCC tool. But extracting out what you need can get really confusing and is not always straightforward. Collada DOM/FCollada help but it's still a pain.

2) Poor Support
I was trying to export my models/animations from MAX to my engine which uses different coordinate systems. Collada has an app called Refinery which has several plugins to process Collada files and i used an axis-converter plugin to map the data from Max-coordinates to Y-Up axis. The plugin was buggy. It took countless emails and almost 6 months(just recently) to get something so minor to be fixed. Yes i could have fixed it myself, but i do game dev as a hobby and used Collada to help me save time in the first place, not to fix it.

3) Poor documentation
It's just not comprehensive enough. Also it is not easy to understand.

This might have changed recently as i havnt looked into it since my semester started again.

Share this post


Link to post
Share on other sites
Just a question

Collada format is huge

Does a modern game need a so complex file format ?

If so, what additional features , if any , can you expect vs , for example, the simple ms3d , as far as games are concerned ?

Share this post


Link to post
Share on other sites
The thing to remember about Collada is that it was never designed as a front-end format. The sole purpose of Collada is to make data exchange between Modeling packages and other back-end tools in a standardized format easy, with support for every conceivable feature.

Collada was never intended to be used as a game asset format. Its far too verbose and feature rich (read bloated) for games. Where Collada fits is in between the Modeling program and the tools that export game-ready assets.

Its a part of the content pipeline, nothing more.

Share this post


Link to post
Share on other sites
This message contains responses to several comments above.

In the collada book I just received and read, it says an application can process only the information it wants, and skip everything else. This is also a characteristic my own general purpose binary information system shares. At least in my binary system, to skip huge piles of useless information (for one specific purpose) is quite trivial and effective. This leaves the important information (for any specific purpose) easy to retrieve and process. Does this not "work in practice [effectively/conveniently]" with collada?

If collada is not "the way to go", what is? To be an effective alternative for my engine (and me), it should be a format that most game-artists can convert their objects/models to. I only need "the basics" to make their way through to the final file (vertex positions/normals/tcoords/colors, filenames of the texture-maps and normal-maps referred to by the objects/models, minimum viable articulation hierarchy information). Oh, and I really prefer to NOT need to reverse-engineer a "may-change-at-whim" proprietary binary format! Been-there-done-that-too-damn-many-times-already!

I should have started by "loading meshes"? What does that mean? Of course I can load my own meshes = meshes my engine creates procedurally. Or does this comment refer-to something else?

One alternative proposed is to "write an exporter for max/maya". What does this get me? Does this let 3D artists import their work into max/maya - then save it to my format? That seems half-way reasonable if they can import a wide variety of formats - which I assume they can. How difficult is this process? Do they provide specific instructions on "how to create an exporter"?

Thanks for the comments.

Share this post


Link to post
Share on other sites
Quote:


Where Collada fits is in between the Modeling program and the tools that export game-ready assets.



Probably I am out of the loop

As far as I know game engine use specific file formats to store all the informations about static models and animations
Some simple and popular file formats such as for example .md2 are outdated being not suitable for some advanced features of modern game engines

On the other hand , High end modelling and animation packages use there own file format which can be oversized for a game application

Converters and exporters parse the packages file format and fill the game oriented file formats with the strictly necessary informations

Do you mean tha Collada is neither an advanced game oriented file format nor a multipurpose \ easy to use converter \ exporter, rather something in between ?

If so I think it is a flop

Share this post


Link to post
Share on other sites
Quote:
Original post by AbertWhere Collada fits is in between the Modeling program and the tools that export game-ready assets.
Meaning that formats like Collada could be great during the development of the game. With support, you could export your model in 3DS Max to Collada, import it into ZBrush to create textures etc. etc.
Then, when the game is about to be published (or a test build is made for QA), you can use your in-house tool that reads the Collada-file and exports it to your own format, specially optimized for your game/engine.

Share this post


Link to post
Share on other sites
Collada is just a open file format which has exporters for most DCC tools. Thus by writing 1 Collada converter to my format, i indirectly support all DCC tools that can export to Collada. This is way better than writing a Maya exporter and then a Max exporter followed by whatever package the artist wants to use. And writing a Max exporter is not any fun at all. The Max API is horrible. Maxscript is much better but it's a nightmare to debug when things dont work. Ive written 2 MaxScript exporters and 1 IGAME based exporter before and for all the work, i only support 1 DCC tool. Also if you use IGAME/MAX API, you have to rewrite/compile a exporter for the newer versions of the package. Sometimes it is not as simple as a recompile when there are API changes.

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!