Sign in to follow this  
janta

Unity General questions about Collada

Recommended Posts

Dear GDNet community Only recently have I started to get interested in Collada which is, if I understand correctly, a standardized, XML-based description format for assets such as models, textures, lights, and so on. I had started to write an exporter kind of in the same fashion, that is XML based files describing the exported asset, regardless of the authoring tool and the target platform. However (obviously) Collada stands a billion light year forward from my custom format, which is why I'm very tempted to switch to Collada instead of failing at reinventing it ;) however, I'm still a bit afraid by the number of features Collada supports (sometimes too much is not better than not enough...) For example, I saw that a Collada file describing a single model can take as much as 6 MB. What will it be then when I will export complete scenes or worlds? Too big files can be a pain to manipulate or to manage under version control. Does anyone here has some real world experience to share on that point? For example, I was wondering if popular collada exporters (3dmax, maya...) have some options allowing not to export useless stuff and reduce the file size. Most stuff I read about Collada presents the format as totally cool and flawless, so I'd be interesting in other people sharing their actual experience with it. Regards

Share this post


Link to post
Share on other sites
Collada is a vast format, it supports a lot of stuff like physics, inverse kinematics, breps, etc. Would you need a lot of this stuff?

It all depends on what you want to use it for. Is it going to be the file format that all your engine assets use? A format you use to export files from DCC tools like Max, Maya, etc and process into a format suitable for your game engine? Can you preprocess the file to strip out un-necessary information from the file (like physics information if you aren't going to use it for physics)?

The size of a Collada file varies depending on the model, there are some models for which the file size is actually smaller than a binary format like a .fbx and vice versa. I've seen a skinned animated model with 9000 triangles and a 3 second animation clip where the file size is about 1 MB less than the same model exported with the .fbx format from Max, probably because a value like 0.0 just takes 1 byte in Collada because it is output as "0" and the same 0.0 would take 4 bytes in a binary file.

Like any file format it possesses advantages and disadvantages. The advantages are that it is very flexible and can handle a lot of things, it is human readable while makes it easy to inspect, it is a fairly stable format, it is supported by all major DCC tools, etc. The disadvantages are that the file size can be larger than a custom binary format, it may be overkill for just getting a bit of mesh data into your home brew app, etc.

My advice would be for you to take a look at the Collada specification, try to understand how it works, decide if it is good for what you plan to do with it, then decide to use it or not based on your investigation.

Share this post


Link to post
Share on other sites
Quote:
Original post by hughel
Collada is a vast format, it supports a lot of stuff like physics, inverse kinematics, breps, etc. Would you need a lot of this stuff?

Eventually I will, though my focus is somewhere else presently (models geometry and skeleton)

Quote:
Original post by hughel
It all depends on what you want to use it for. Is it going to be the file format that all your engine assets use? A format you use to export files from DCC tools like Max, Maya, etc and process into a format suitable for your game engine? Can you preprocess the file to strip out un-necessary information from the file (like physics information if you aren't going to use it for physics)?

No of course I don't plan to use collada format for runtime assets, only as an intermediate format. I thought of the possibility of striping out the unused stuff but I'd like better not to add another layer in the export pipeline, if possible. I'd rather have this handled directly by the collada exporter.

Quote:
Original post by hughelit is supported by all major DCC tools

That is indeed the biggest advantage for me as I'm not too tempted to spend a ton of time writing exporters...

Quote:
Original post by hughel
My advice would be for you to take a look at the Collada specification, try to understand how it works, decide if it is good for what you plan to do with it, then decide to use it or not based on your investigation.

I'v started to do that already, the specs are about 600 pages worth of reading but only a small subset of it is relevant for me now (stuff about geometry, meshes and so on)

thanks for your reply.

Share this post


Link to post
Share on other sites
To handle it all in the export and not have to introduce an extra processing stage, you would need to modify the exporter code for a free exporter or write an exporter yourself. This isn't a trivial task as I'm sure you are aware (especially since the Collada specification is so vast) and you would end up having to modify existing exporters or write exporters for each DCC tool your plan to support which would negate the usefulness of having it supported by all the major DCC tools.

I've only used the bits of the Collada file format that deal with mesh/material/shader constants, skeletal animation and morph target animation. You can pick and choose what you use from a Collada file. The free 3DS Max exporter (source code is available) from Feeling Software lets you export pretty much everything I have dealt with but the export options aren't very detailed. I know they do a free Maya exporter as well, and the export options seem to be far more detailed. I think they have stopped supporting the free version of the exporter though.

Share this post


Link to post
Share on other sites
Quote:
Original post by janta
Most stuff I read about Collada presents the format as totally cool and flawless, so I'd be interesting in other people sharing their actual experience with it.

Regards

That's quite funny. Once you get into the details you will see that Collada is far from flawless.
The format is much more complicated than it needs to be, the documentation is lacking and the sample application source code (which serves as adhoc documentation) is simply atrocious.

Share this post


Link to post
Share on other sites
Well I doubt not there are flaws (otherwise I wouldn't have created this discussion) but what I really wonder is whether I'll do better with my own format (obviously I won't) Do you have any real world experience to share with me?
I guess I'll try it and see for myself anyway

Share this post


Link to post
Share on other sites
Quote:
Original post by janta
Well I doubt not there are flaws (otherwise I wouldn't have created this discussion) but what I really wonder is whether I'll do better with my own format (obviously I won't) Do you have any real world experience to share with me?
I guess I'll try it and see for myself anyway


My experience, is that using the standard format that comes with engine/toolkit/platform is better than using collada.
If that doesn't exist then collada is no worse than any other solution. But collada is only ment as an intermediate. You have to convert it into your own format before use.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Forum Statistics

    • Total Topics
      627711
    • Total Posts
      2978744
  • Similar Content

    • By Canislupus54
       
      I'm looking for a team to help me out with a 3D platformer. Basically, you jump between platforms with parkour elements and you fight enemies with a mix of melee and ranged attacks. This is purely a hobby project. I'm not promising any payment, ever. You can do it for experience, to learn, for fun, whatever, as long as you don't expect to get paid. Right now I need a 3D modeler and animator. Reply or email me at jordestoj@yahoo.com if you're interested. Thanks.
    • By Pixelated_Nate
      Hi all!
      We are looking for a C# programmer for our 2D Action RPG titled Adavia, made in Unity.
      The game itself is akin to Legend of Zelda: Link to the Past, though we're also adding in traditional RPG elements such as Character Creation.
      This is more of a hobby than anything commercial, if it somehow does manage to go commercially, all revenue will be split equally among the team.
      If you're interested, we ask that you be comfortable with:
      Unity Coding A.I's for enemies and NPCs. Working with GUI's. Communicating regularly with the team via Skype (text only). If you have any questions or would like to apply, please contact me at nathan.jenkins1012@gmail.com
       
    • By MrGiratinaORIGINAL

      I'm the co-director of LM Team, a 7-member team currently constructing a fangame based upon the Mega Man series. We've been working for about 2 years now, and both of our current programmers are busy for the next 6 months or so. Because of this, we're currently looking for a programmer (or more) to take care of gameplay and animation programming. We already have a base system in place that may optionally be built upon. This will be a hobby project to invest your free time in, not a gamedev gig.
      We're currently about 67% done with the OST, 75% done with the design work, and 33% done with the graphical work. As such, the specifications of what we need should remain pretty stagnant from now on.
      Here's some links of our team's work, to give you an idea of what we're currently capable of achieving:
      Actual Y+1 Stuff:
      - Current public playlist of music
      - Old footage of the first boss of the game, since been altered slightly based on feedback
      - Mockups
      m9m (director, composer):
       
      - Grand Dad Reboot - Ominous Cavern
      - Lands of Onlup
      - Mega Man Revolution Remix - Wily 2
      MrKyurem (co-director, main designer, me):
      - Boil Man - 10th place in Make a Good Mega Man Level 2 Contest
      NaOH (programmer [not programmer who is currently working on the engine]):
      - Programmer for Make a Good Mega Man Level 2 Contest's release game (did co-op mode and leaderboard functionality)
      - 15 years of programming experience
      - Castlevania 3 controls romhack
      - GML code beautifier
      - Beat-Em-Up engine
      Alm (artist):
      - Cutscene for a personal project
      - Tileset for Boil Man's stage in MaGMML2
      - Concept sprite
      Valo (artist):
      - Jungle Man tileset in Mega Man SD
      - Boxart for Mega Man SD
      - Wily sprite
      Karakato (artist):
      - Robot Masters in BCA
      - Idol Woman
      - Stage Select for separate project
      Deathro (composer):
      - Through the Eye of a Prism - 2nd place in Famicompo 2015's Original category
      - Mega Man SFR - Wily 2
      - Geno Force - Silent Breeze
      Contact
      If you're interested in joining, I'd recommend signing up to Discord, as we almost exclusively communicate through this.
      Discord Tags:
      MrKyurem#8741
      m9m#1104
      Email:
      LMTeam.Y1@gmail.com
    • By ilovegames
      You are the commander of a special forces squadron. You were given a task that appeared simple at first glance - to check for suspicious activity in the building of an abandoned psychiatric hospital. But you could not even imagine what you will actually have to face.
      Download https://falcoware.com/HospitalSurvival.php



    • By ilovegames
      You find yourself in an abandoned place full of mutants in the dead of night, and have to kill waves of monsters with a different kind of weapon. The main goal is to survive through the night.
      Controls:
      WASD – Walk
      Shift – Run
      Mouse1 - Attack
      Space - Jump
      Scroll Down – Change weapon
      Esc - Exit, pause
      Download https://falcoware.com/NightSurvival.php



  • Popular Now