Cryptomatte is here - Amazing!


(Blender Foundation CERTIFIED TRAINER) #1

Let’s get the thread started!
Today I downloaded 2.8 to find out that on the passes property tabs, I can already see the Cryptomatte’s attributes for Object ID and Materials!
I did a quick compose, and I see the Cryptomatte (picker) node to isolate the material or object, but I can’t seem to make it wok just yet. Anyone has had better luck?


(Peetie) #2

I had some luck:
a) Enable Cryptomatte renderpass:
01_EnableRenderpasses

b) Render, and add nodes like this:


That is just to pick the colors. So pick an object you want to isolate (I will pick the blue box)

c) Use now the matte output :
03_GetMAtte
And there you have your mask.


(Steffen Dünner) #3

It’s working perfectly so far. There are a few caveats though that I partly mentioned in this older Cryptomatte thread.

  1. Use multichannel EXR with 32-bit float depth. 16-bit half-float is going to mangle the insanely high and low color values that Cryptomatte needs to store all the info. 32-bit should be forced by Blender if one uses Cryptomatte.

  2. Don’t use a lossy compression type in EXR (like e.g. DWAA) because this will also destroy the info Cryptomatte needs.

  3. Apart from that the previous post before mine in this thread shows all the “magic” needed :wink:

  4. I tried the EXRs from Blender in Nuke, Fusion, Natron and Houdini in combination with their either native Cryptomatte support or the official plugins. None of them worked out-of-the-box. I guess it’s because of the naming scheme of Blender which is somewhat odd.


(Peetie) #4

I suppose if you only composit in Blender, it doesn’t matter what the fileformat / output is, not?
Example usage:


(lukasstockner97) #5

Yep, the additional information in the EXR header that is expected by other Cryptomatte implementations as part of the spec is still missing (will hopefully be added later).


(Steffen Dünner) #6

Sure. As long as you don’t output any rendered image to a disk or server all is fine automatically because it’s containing the full information. But if you e.g. render on a farm and plan to do your compositing afterwards you should make sure you save to a format that supports all the features.


(lukasstockner97) #7

@SteffenD I just implemented the metadata output in D3862 but I can’t really test it outside of Blender, could you try opening the EXR I attached there in the tools you mentioned?


(Steffen Dünner) #8

Thanks Lukas,

I gave it a quick try and besides Blender Compositor only Fusion 9 (with the official plugin from here https://github.com/Psyop/Cryptomatte ) recognized Cryptomatte layer correctly.


(Peetie) #9

Here cryptomatte used for every object. The result is good, but (this) gif amplifies smal artifacts which you normally barely see. You notice a little bit of jagged edge in the middle chair on the left. And when edges of two objects meet, this gif shows some white pixels. But if you don’t go crazy with compositing (turn objects very dark) and you save under higher quality then gif, I suppose all will be ok.

cryptomatte_dith


(lukasstockner97) #10

Thanks for the test! Does this official example work? That’s the one I used as my reference.


(Steffen Dünner) #11

Just gave it another quick try and yes, it works in Nuke, Fusion, Houdini and Blender.


(lukasstockner97) #12

Okay, I found the problem - the metadata didn’t include the RenderLayer name as part of the pass name.

However, there’s another issue: Nuke apparently doesn’t like the Layer.Pass.Channel naming scheme and changes it to Layer_Pass.Channel, so it only loads the Cycles Cryptomatte if I output the metadata with that naming scheme as well. However, other software might not do that and then in turn be unable to find the “RenderLayer_CryptoObject” pass. And if I output both, Nuke stops working again…

Not really sure how to fix this, I’ll have to think about it.


Cryptomatte 1.0 released!
(burnin) #13

From what i gathered, it’s risky to use dots in naming scheme. Underscores are safe & standard naming convention all over… Never had a problem with _ , while on the other hand . . . :tired_face: :persevere:


(Joel_nl) #14

Does anyone have the same problem as the following image when dealing with heavy DOF?

(I changed the color of the yellow cube with rgb curves and with hue/saturation)


(Steffen Dünner) #15

I think this is a typical corner case where no mask in the world would be “good enough” because there’s a lot of pixels that contain an overlap of two objects with completely different hue.
The compositor sees only the resulting color per pixel but not the different ingredients that form this color. Red and Yellow mix to some sort of orange but you simply can’t tell the HSV node to only affect the yellow part.
It’s a bit like trying to make a cow from a burger again. :wink:


(Lsscpp) #16

And where is that Cryptomatte enabling option???
(using blender-2.79-c0b3e3daebd - 30th Oct - cryptomatte node is there but…)


(Blender Foundation CERTIFIED TRAINER) #17

Thank you!! Now let´s work using the defocus node! :smiley:


(English is not my native language) #18

Hi. It is in Render Layers tab.
See here:


(Blender Foundation CERTIFIED TRAINER) #19

WOW! You´re using 2.79b and it´s there!!! AMAZING!!! SO COOL!
Everyone is talking about 2.8 Cryptomatte here. ehhehe.


(English is not my native language) #20

No, he never said 2.79b. He refers to 2.79 from Master branch. In fact, it was available there before than in 2.8 branch.