collada as interchange between max and maya

Hi All,

We are thinking of using collada as an interchange format between max and maya.

We can’t find any other existing interchange format that can transfer shader information between max and maya which is what we need, but with collada we can extend the format with our own data, plus we can modify the source of the plugins.

So if we have two shaders, one for max and one for maya, all we need to transfer the data successfully is some kind of identifier to indicate which shader we want and the values for the parameters. Collada would be ideal for this.

We could describe some of this using the generic collada fx effect information.

I believe Collada was not designed to be an interchange format like this, but to me, assuming both exporters and importers can do it, then it is already up to the task in some form.

Has anybody else tried this and got any tips/experience they are willing to share?

Will the collada spec be altered or enhanced to support this kind of thing?

We are happy to implement this for ourselves btw.


Yes, the shader information can be exchanged between Max, Maya, Softimage and FXComposer 2.0. But not all tools support the same shading language.

COLLADA FX is designed to carry the shader information independently of what shading language is used, and can store multiple shader programs per FX. Currently the specification has support for Cg and GLSL, but I know that Max, Softimage and FXComposer have support for .fx has an extra. see here.
I do not know if Maya has support for this extra.

Maya, Softimage and FXComposer have support for COLLADA FX Cg. But only recently Max has added Cg support. The next release of the COLLADA Max plug-in will have support for Cg as well.

Currently if you import a COLLADA FX Cg in Max, created from Maya, Max wont be able to display the shader but will keep all the data. It is even possible to access all the FX parameters in Max, even though it cannot display the shaders.

In summary this is not fully tested, but the intent is to make this possible. The best is to give it a try and to report any issue you have so we fix those.

Keep us posted !