Psyop / Cryptomatte

Cryptomatte Nuke plugin, Fusion plugin, sample images, and specification
BSD 3-Clause "New" or "Revised" License
632 stars 151 forks source link

support for selection sets #121

Closed frueter closed 4 years ago

frueter commented 4 years ago

Hi guys, would it be feasible to implement selection sets in the workflow, so that the shader defines certain object/material collections, which then can be extracted with one click in the cryptomatte plugin?

We are currently dealing with a lot of 19th century cg ships which were modeled to full level of details, so there are heaps of ropes, sails rivets etc. Selecting every single object manually always takes some time and leaves a lot or room for error so I was just wondering if this is something that could be in the cards at some stage?!

Cheers, frank

dgirondi commented 4 years ago

Hi Frank,

Here we have an issue with our shader publishing system — not actually a problem since it’s the expected behavior — where every time there is a new shader version in use we lose all the crypto masks because the shaders get a new version name.

To circumvent that problem and address the “logical selection groups” I ask the 3D department to generate the Cryptomatte from a specific render layer where constant shaders (that are never versioned) are assigned to objects or logical groups of objects and then I use that to get my crypto masks from shader wise.

Far from ideal and adds extra work for the 3D guys once, but it works and keeps my comps intact even when shaders are replaced/versioned from version to version. This frees up the 3D to reinvent their wheels as they please shading wise without blowing my comps and driving me nuts every time they do.

Because on the good old days of “multi matte” the number of itens we were used to change was way smaller than what we do now, and losing masks becomes quickly unmanageable in larger projects.

But if that whole process could be embedded in metadata perhaps it could be a really cool thing.

Cheers, Diogo

frueter commented 4 years ago

Yeah, I guess there will always be extra work on the 3D side to set this up once, but you got the right idea, i.e. it should just be metadata that tells the plugin what objects/materials to combine.

dgirondi commented 4 years ago

It would be awesome to have Cryptomatte dumping Maya sets and partitions (or host app equivalent) to the cryptomatte metadata. This would probably address this beautifully.

dekekincaid commented 4 years ago

@frueter couldn’t this just be done with a combo of materialid crypto & asset name crypto mattes? 3D could also easily do it with custom user attributes which vray supports.

Also there is that pull request from Method with the search string matches. The work isn’t done but the WIP may be enough to make your own selection sets.

frueter commented 4 years ago

oh cool, will have a look, thanks @dekekincaid

dekekincaid commented 4 years ago

It would be awesome to have Cryptomatte dumping Maya sets and partitions (or host app equivalent) to the cryptomatte metadata. This would probably address this beautifully.

This is not Maya specific but more specific to how the renderer handles it. That being said it is pretty easy to already do with Vray/Redshift and probably Mantra.

jonahfriedman commented 4 years ago

Thanks everyone for the discussion here.

Unfortunately we can't come to a great conclusion here - it's up to the renderer's Maya plugin to handle things like this. If you want to talk about this in relation to Cryptomatte for Arnold, that can be discussed at the CryptomatteArnold repository (but would also require Maya to Arnold (MtoA) to carry that information into Arnold to begin with.

@dekekincaid, @dgirondi and others are right, the easiest way to do this is to use the metadata mechanisms of the various applications.