Hello Collada Friends,
I'd thought I'd try and fire up a discussion on roundtripping. To us, this is definitely one of the more attractive propositions of Collada. The idea that an artist could use multiple applications to compose a document, each application contributing to the document what it does best definitely sounds like heaven come to earth.
Unfortunately, using the tools I have available to me today, it seems heaven is still quite a distance from earth.
Let me describe some of the things I tried to do, and the outcomes. Maybe someone here can offer tips/tricks/pointers/advice on how to make things like this work. Or, perhaps we can get a good little discussion going on how these things could be made to work in the future.
## Scenario one: What I tried first ##
Max 8, ColladaMax 1.06
1) In Max, I created a cube. I then exported the scene to a Collada document.
2) I opened the Collada document in a text editor, and added a couple of <extra> tags to various (legal, according to the spec) locations.
3) I re-imported this document into Max.
4) Without changing the document at all, I then exported it to a different Collada file.
--> Using diff showed the outcome of this; my extra tags were lost. They were not present in the newly exported document at all.
## Scenario two: What I tried next ##
Maya 7, ColladaMaya 2.04, Max 8, ColladaMax 1.06
1) In Maya, I set up a very basic scene with one Cube and one Plane.
2) I set up some simple dynamics so the cube would fall and bounce off the plane.
3) I exported this document to Collada.
4) I imported the Collada document into Max.
--> Comically, the Y-UP/Z-UP demon struck and my scene was lying on it's side.
--> Needless to say, there was no physics going on in my scene in Max, but I think this is to be expected.
5) Then, I re-exported the document as a different Collada file
--> A simple diff between the original Maya exported document and the new Max exported document exposed that all my physics information had been lost! Ouch!
## Scenario three: The extent of the lossage ##
Maya 7.0, ColladaMaya 2.04
1) Take the simple Maya scene with dynamics. (nice cube bouncing off plane)
2) Export it to Collada.
3) Close and restart Maya.
4) Import the Collada document.
--> Uh oh, it looks like my gravity field was lost somewhere, so there are no functioning dynamics in the scene at this point.
### Conclusion ###
So, I'm left with the feeling that we've got quite a ways to go before Collada roundtripping is a useful reality.
Does anyone have any experiences that they can relate to this? Have you had more or less success roundtripping Collada documents anywhere, for any reason?
I'm not really all that interested in physics, but more in the state of roundtripping in general. If our software were to embrace Collada, and roundtrip documents correctly by importing them and adding our own custom tags before re-exporting them it seems like it might all be for not if the custom tags are all consumed (meaning not re-export) by the DCC software.
I believe the implementation on the DCC side would be difficult as a plugin. My Maya and Max plug-in experience is limited, but I think maintaining the Collada document upon import, and reconciling any changes made in order to correctly export would be massively difficult. (If possible at all) I'd love to hear Guillaume's opinion on this as his experience dwarfs mine in this area.
Sorry that this post got kind of long, I look forward to your feedback/ideas.
There are many things that need to be right before full interoperability can be archive. COLLADA specification is the fundamental keystone to this, but tools implementation is another.
Already COLLADA tools provide a very good level of interoperability for the major features, such as geometry, material, animation, skinning. It took time and a lot of effort to get to this level, and there is more work needed for improving the interoperability to <extra>, COLLADA Physics and COLLADA FX for example.
The problem we are facing now is that some of the tools are simply not advanced enough to handle all the data that COLLADA can currently store. To give you an example, older architectures such as 3dsMax and Maya cannot handle the full extent of the COLLADA transform stack, so you can imagine the difficulties about handling advanced features, or user data (<extra>).
The good news is that both the tools and the specification are now mature enough for the working group to establish an official conformance test, that will enumerate in detail what has to be fully supported. For example, not all the possible <extra> elements can be supported by the DCC tools, but we will establish the list of those that are mandatory to support, and are supported by conforming tools.
To give you more specific answer to the tests you made:
<extra>: you should be able to get a list of what <extra> tags are supported by Max and Maya from Feeling Software, and conduct your test again.
Physics: Currently only Maya and Blender have support for Physics, and interoperability is limited. I think you need to use the NIMA physics for Maya in addition to the COLLADA plug-in to get good results. You should not lose the gravity field, if you do, that is a bug in COLLADA Maya. Please report this issue to Feeling Software bugzilla as soon as possible (indeed, the only way to improve interoperability is for issues to be reported !)
<up_axis>.. You should not have problems with this, this issue was solved a long time ago by COLLADA and the tools. I cannot imagine what is going on there, unless a serious regression in the importer. If this is happening, can you open a bug in the feeling software bugzilla, and send us (collada (at) collada.org) the bug number so we can follow up with this serious regression.
BTW, thanks a lot for this investigation, and if you find more issues of this nature, please post again !
Thanks for your quick reply. (:
I definitely didn't intend to belittle the work that has been done so far. The work that everyone is doing is truly amazing, and what's been accomplished so far is indeed impressive. Collada is a renaissance.
It's also good to see that you're on top of the limitations imposed by Max and Maya's plug-in structures that are going to be barriers to high level interoperability and roundtripping. The goals that are spelled out in the Collada specification, specifically for conforming applications to preserve valid but not understood data in the xml, are noble and I look forward to them being achieved industry wide.
Regarding the specific issues I came across yesterday, I'll sort the bugs from the unimplemented features and communicate them to Feeling Software, no problem.
Again, thanks for your response here.