Psyop / Cryptomatte

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

arnold AOV error #32

Closed jiang516652068 closed 7 years ago

jiang516652068 commented 7 years ago

Hello, I use the translation software to write the following questions. Hope to understand. Only the ass scene is rendered, the output of the exr. You can not use Cryptomatte to extract the correct mask in nuke. You must create a model in the scene and give the alsurface shader. exr can be correctly extracted from the mask.

jonahfriedman commented 7 years ago

@jiang516652068 , are you saying that you need AlShaders for Cryptomatte?

In Arnold 4 that's true. In Arnold 5, you can use any shader + the AOV shader.

If I misunderstand, please send ass files or EXR files.

jiang516652068 commented 7 years ago

@jonahfriedman ,I'm using mtoA 1.4.2.2 alShanders-win-1.0.0rc19 I send EXR to you

test_AB.zip

jonahfriedman commented 7 years ago

Ah, I understand what's happening. Thank you for the images explaining it. The short version is- turn off "deferred loading" on the aiStandin.

To explain, the first AlSurface which initializes is the one that sets up Cryptomatte. Your "aiStandin" has deferred loading turned on. That means it does not load the ass file until after the render has started, and it's too late to set up Cryptomatte properly. When add your sphere with AlSurface, it means it is set up before the render starts.

You can turn off "deferred loading" on the aiStandin to fix this, or you can use a dummy object with AlSurface as you are doing. This is also not a problem anymore in Arnold 5.