maya colorSets -> max uvs?

We are trying to solve a problem where transferring simulation data from maya->max we end up losing some important information about the model, namely its ‘reference pose’, which is required for some render passes (pRef pass).

In native max models, we simply bake this data pre-simulation into a uv channel (#-2), and then render that uv data in a separate element. In native maya situations, we have the option of using a reference shape node to get the shading information at rendertime, so no need to bake it into any channel.

However, when we are getting the data to travel from maya to max, since it doesn’t exist as a uv channel or anything (just a shape node / transform state upstream), the exported xmesh will basically lack the data required to reproduce the reference pose pass.

One workaround i was thinking about, is maybe baking the reference shape into a colorSet in the maya shape, and then somehow wire that up to xmesh as the uv channel #-2 in max. Is it possible to get that working somehow?

If I remember correctly, a ColorSet from Maya would save as VertexColor channel (Mapping #0) in Max. Then you just have to copy that where you need it (XMesh does not support negative Mapping channels IIRC). I am sure you have written a modifier for it :wink:
That being said, I have not tested this, so I could be totally wrong.

Sorry to hijack this thread but Laszlo would you be willing to elaborate a bit on what a reference position pass is used for? I haven’t heard of this before but I’m intrigued. Do you use it for pinning cards in comp? 3D Masks of an object before it’s deformed/animated?

Yeah basically. It gives compers a consistent “no swim” object XYZ like pass, which they can use to paint masks that stick to the surface.

In max, we essentially bake the world xyz position of the reference pose into the uv channel, and then render that out. This way, wherever the object travels, whatever pointcache is applied to it, we can paint masks on it as if it was in the original T pose (so consistent even from shot to shot), and the masks will travel with the object. Its extremely useful in comp, otherwise they need to track masks to objects.

Regular object xyz passes work fine for static geometries that travel around, but as soon as they start deforming, they swim through the values… UV passes would not swim, but they have random layouts, and you cant just “paint the right hand” to select the right hand, as it might select parts of the eyeball, the pants, etc. anything with its unique uv space within the same asset.