Collada loading - numerous problems

Hey, I've been using jME for a while, and most of the things work great, except collada support which is crucial for my current project.



Im working with collada files and it is an exception to see a collada model load in jme. The models are coming from maya - with almost no success on large static models, animations are not loading at all (maya doesnt seem to export transformations for animation). I have also tried max which seems to work better but some model still wont load.



Are there any particular exporter settings for max and maya that are required so that jme can load the model later?

Do you have plans to improve collada support in the future?

Do you have an NDA or any other agreement with NCSoft that prevents you from improving collada support?

Do you need someone to work on collada support?

As a side note.



I know that NCSoft has not licensed their GuildWars engine to anyone. Since they were looking into developing a 3D engine with Java, it is not unreasonable to assume that they would try to get the key developers in open source community, hire them and have them sign some sort of an NDA which would prevent them from working on open source projects, hence slowing down open source projects and slowing down the competition…



Maybe I am panicking, but seeing how some companies, like M$-soft fight dirty, I dont think this is too far fetched. I really love jME and I would hate to see it go down like this…

lex said:

Are there any particular exporter settings for max and maya that are required so that jme can load the model later?


Yes, but I don't know what they are. Perhaps someone else here knows or you may just have to "monkey" around until you figure it out.

lex said:

Do you have plans to improve collada support in the future?


Collada support is continually being improved, it's just an incredibly large specification and makes it very difficult to support everything.

lex said:

Do you have an NDA or any other agreement with NCSoft that prevents you from improving collada support?


Let me assure you that's not that case.  We are constantly getting updates on Collada support and other things that are developed by the great guys at NCsoft.

lex said:

Do you need someone to work on collada support?


Absolutely...the more people working on adding support for Collada the better.  There is still much left to do and anyone willing to help is always appreciated.

lex said:

As a side note.

I know that NCSoft has not licensed their GuildWars engine to anyone. Since they were looking into developing a 3D engine with Java, it is not unreasonable to assume that they would try to get the key developers in open source community, hire them and have them sign some sort of an NDA which would prevent them from working on open source projects, hence slowing down open source projects and slowing down the competition...

Maybe I am panicking, but seeing how some companies, like M$-soft fight dirty, I dont think this is too far fetched. I really love jME and I would hate to see it go down like this...


Yes, you are panicking and for no good reason.  Consider that NCsoft is using jME for their development and every improvement made to the engine by the community if "free development work" they didn't have to pay for.  It works as a very good advantage to NCsoft to have this community and so the more they provide back to the community the better they are enabling that community to provide back to them.  Does that make sense?

I don't really know where you got this idea of NCsoft hiring people to get them away from the open-source community, but these guys have been working for NCsoft for quite a while now and they've been FAR more productive for the community since than before (you would be too if you were doing it as your full-time job).  However, that's not to say everything they do is able to be released to the open-source community.  For good reason there are certain things they cannot or should not release because it just doesn't make business sense.

Not to put words in their mouths, but I suspect they'll echo my sentiments.

So far we have only seen huge improvements since NCSoft started to hire jME developers. I can't see why that would change all of a sudden.



I'd guess the trouble with collada to be something entirely different: Collada seems to try to be a format that is open for just about anything anybody in 3d graphics could ever ccome up with.

Unfortunately it is rather close to achieving that goal.

Which leads to the standard being huge, maybe even bloated, with loopholes, ambiguities, and multiple ways of achieving the same goal - it is very hard for an exporter or even more so an importer to support all of that.

Ironically, that in turn leads to importers only really working for collada scenes output by a certain exporter - which kinda defies the original goal of collada of being an universal interchange format.

In fact, I have yet to see a collada importing software that can import and display most of what the major exporters spit out.

(BTW, if anybody knows of such a software, preferably open source, I'd be more than happy to learn of it!)

Thanx for answering all the questions darkfrog!



As for monkeying around with collada importer, i have been doing it for the last month without much success at finding the magic exporter settings that will work.



And collada importer being 4500 lines of code in one file and depending on a sizable library of auto generated classes isn't helping the cause of getting it to work either.



Since I really need an effecting way of getting collada models into the engine I am going to invest a considerable time into it. I was thinking of making Java-Bean style classes to represent the data from collada on the logical (not xml) basis. For example having GeometryLibrary bean, so you can add meshes to it, index them and assemble them into larger pieces. And then read the data from those beans to assemble them into jME representation. Such meta library could also be useful for other java project that wish to parse collada. It would be straightforward to make an exporter as well as importer - stuff the data back into beans then read it while outputting to xml.

Also such library could be incrementally extended to add more features.



I do realize that that this is easier said than done… :slight_smile:



Any ideas or comment on the subject would be welcome.

Sorry, you are having so many issues with the Collada Importer. I'll be honest and frank about it. It was written against a single exporter written for 3DS Max and that is it's primary focus. Unfortunately, Collada is a bloated obtuse format with numerous ways to do one thing. Hell, Feeling Soft's own exporters for Maya and 3DS Max produce different results for the same model. We do not use Maya at NCsoft, and therefore, will rarely worry about Maya support. This has nothing to do with NCsoft "controlling" what we do, but simply about writing something that fits our needs, giving it back to the community if it's useful.



Secondly, I know of a few people who use Maya and our importer and have no problems. But, they did have to use the proper export settings. For instance, right now the only polygon mode that is properly supported is <triangles> if you are using <polygons> you are going to have problems. (Again, another stupid decision on Khronos' part to support multiple).



I'm not going to even get into the NCsoft comment, if you've paid attention for the last year and a half, you'd know that's ridiculous.

I'm not going to even get into the NCsoft comment, if you've paid attention for the last year and a half, you'd know that's ridiculous.


I have seen alot of improvement, but I am not intimately familiar with who does what and who works for NCSoft. Neither do I know how that company does it's bidding, except that they wouldn't lease their engine. Feel free to slap me about it all you want, but I'd rather take the ridicule over a possibility of loosing a gem like jMonkey.

Here's some old stats I ran back in May that may help  (see user nca)… http://www.renanse.com/jme/stats/

Sorry, you are having so many issues with the Collada Importer. I'll be honest and frank about it. It was written against a single exporter written for 3DS Max and that is it's primary focus.


Is ColladaImporter written for Feeling Software 3dMax plugin? What version? Any specifics on what the importer designed to work with would be helpful.
mojomonk said:
...but simply about writing something that fits our needs, giving it back to the community if it's useful.


So why don't you, NCSoft people, share that Collada exporter already? You're in the business of making games, not exporters. A solid artist path would certainly make jME more popular, and maybe even attract good developers to NCSoft. Keeping that exporter secret is very hostile to community.

I tried every art path and nothing works (I need animated models with bones and skin). Without that, the engine is useless to me. This forces me to choose between a) abandoning jME engine and b) investing considerable time to fix the damn Collada importer.

feeling soft developed their collda exporter so that they can make their own engine entirely based on it. i dont have any problem with ncsoft not releasing their exporter since that really isnt part of jme at all. i mean comeon, which engine contains a 3d modeling tool exporter?

besides, relying on feeling soft who tries to use the exporter for their own purpose for jme is just too native. their engine is commercial and who knows if it is good or what.

boris, to take that attitude with an open-source project that provides you with so much for free, and a commercial organization that has been willing to contribute so much that it did not have to is just plain stupid.  If you want to be a freeloader go somewhere else.  If you want to show some gratitude and help to support a great engine instead of complaining about the places where it needs more work then we'd love to have your help.



Personally, I share your frustrations. I love the Collada format, but it's so vast it's a nightmare to try to support everything in the importer that the exporter might produce, which is why jME has problems with it.  If you'd take the time to go through the ColladaImporter and add missing functionality for what you need you'd really be helping the community.  Yes, it would be great to have an exporter that would make everything happy for direct import into jME, but the decision to release that code is not made by anyone that hangs around these forums, so it only serves to aggravate.

I am also having it hard to work when lots of things Collada are missing. I am not good enough to know what the problem when loading Collada models and they do not show in JME.



With NCSoft hiring the developers makes me wonder if it will be fixed ok or we have to make our own. Als

I would not say that jME has no GUI. FengGUI works out prettyy fineee.

Even basic Swing with Substance works like a charm…

But swing slow and fenggui have some problem.

Don't fret none.



There's some plans that might make their way out soon that will be very nice in the GUI area. :slight_smile:

I am currently rewriting Collada importer, which will support (at least) FeelingCollada plugins (which have been recently open sourced). It will take some time, but when done I will contribute my work back to community. I was a little pissed off in my last post not because Collada importer has problems, but because those problems have apparently been solved (with NCSoft custom exporter) and this solution was not contributed back (which is in my opinion rather foolish, as such exporter would make jME much more useful, and possibly attract new developers who would add value for all of us, including NCSoft). I AM grateful for all the good work done on jME  8)

Sort of a backhanded compliment, but we'll deal. :o



I don't think it's necessary to re-write the Collada importer, but simply add the functionality that is missing.  That will give us a much more complete importer and hopefully save you a lot of time.

I'm not sure what the "problems" you are talking about that NCsoft has "fixed" in the importer since we use ColladaImporter straight as-is from jME cvs.