Cryptomatte is here - Amazing!

Here you can see in Fusion left the psyop reference image and left the blender cryptomatte. They differ in color and as told the blender file fails.

Hello Lukas, I´m Marcus from Germany. First I want to thank you very much for your hard work on the blender cryptomatte implementation!
I have a “big” problem with using the blender cryptomattes in Blackmagic Fusion. I posted on the end of this thread. I hope you can help us get the cryptomattes from blender work in fusion?!
The sample files from psyop work fine in fusion, the blender files generate errors. Maybe you have a clue?
Maybe the Fusion plugin needs some modifications to read the metadata right?
Is the Psyop cryptomattes specification not so well defined, that every 3D application generates a different output, that makes then problems in the different compositing application?

1 Like

How did this go? No wonder I couldn´t get them to read on After Effects after the first month of posting this:


After the first month, I couldn´t get Cryptomattes from B3d to AE.

Cryptomattes rendered in Blender isn’t working in After Effects?
Beside of Blender Compositor no other Compositing Software is able to use Blender Cryptomattes?!
I tested the blender Cryptomattes in Natron. It’s working but the Community Cryptomatte Plugin in Natron is very unstable. If you use the glow node with the cryptomattes node, Natron gets unstable.
Why can’t Blender follow to psyop cryptomatte specification? The sample files from Psyop work in After Effects, Fusion and Nuke…

Crypomatte output works in Fusion 9. Colors are always going to be different because they’re id mattes.

This is a good reminder I think. Cryptomatte is not based on sampling colors, colors are just a convenience for user to visually separate objects. Actual matting mechanism is based on discrete id values and their coverage info.

Oh really its working on your side in Fusion 9?! Then please post detailed steps how to get your results. When you see my above posts you see that the psyop sample files work in fusion but not the cryptomattes from blender. I don’t know whats the problem is, maybe the ID naming. Blender Cryptomattes don’t work in Nuke because of that. So please post how you get it work. Thanks

There are no special steps. Render a multilayer exr with crypomatte enabled. It should be 32-bit as with any render intended for compositing. Under no circumstances should you be using the Blender compositor if you intend to composite externally. Disable the Blender compositor and use the file straight from cycles.
Previously posted examples that manually redirect the cycles output to a file output node are likely mangling the data.

But then I can’t use renderlayer/displaylayer if I don’t use output nodes! Thats no real alternative.
If the fileoutput node is mangling the data, then it is a reproduceable bug that could/should be reported! I will test it next week, now I’m on vacation.

What do you mean by ‘renderlayer/displaylayer’?

You have to use a file output to write a second displaylayer to file. Otherwise blender writes all displaylayer to one multilayer exr, which gets very complicated because you have no control over the layer naming. Do you write all displaylayer to one multilayer exr?

Each image channel is prefixed with the name of its render layer.
named_render_layers

Data is likely mangled by the file output node because it applies a view transform to ‘Image’ sockets on output. This is intended functionality. You may be able to prevent this if you set the view transform to Raw, and the Look to None. However, this is still a stupid way to handle output and you should use the render straight from cycles.

Ok thank you, but sometimes it is better to have each renderlayer in a seperate file. But good to know, I will try to reproduce and if cryptomattes from blender are working only that way in Fusion, then its like that. But I think the output nodes should only write the files to disk, not destroying any colors or IDs. But as I know, the view transform is applied to every output, not even when you use a fileoutput node.

Hello, I tested the blender cryptomattes today like you suggested with no file output nodes in blender.
In Fusion only the CryptoMaterial01 layer works (CryptoMaterial00 not if I set it in Fusion).
CryptoObject isn´t working at all.


Is CryptoObject working in your Blender-Fusion configuration?

Channels (CryptoMaterial00, CryptoMaterial01…) are not layers. Layers are ‘Object’, ‘Material’, and ‘Asset’. Layers are composed of however many channels are required to store index per pixel data.
You don’t need to manually set cryptomatte channels in the loader. Simple connect the loader to the cryptomatte node and it should work.

Thanks, for your reply. You are right, I don´t have to set the channel.
I tested with another much simpler blender scene and there, the cryptobject channel works. Maybe there is something wrong with my scene, or it´s because there are 1500 objects.
So the conclusion is that the fileoutput node in Blender is messing up the cryptomatte ids. I will try to create a bugreport.
Thanks for your help!

Hi, we solved the problem by following this suggestion about exact problem in V-Ray.

By using Blender Compositor File Output node, you don’t get the needed Meta Data for Nuke, although all the necessary data channels are there. But you can fix that using ModifyMetaData node in Nuke.

Screenshot with solution from coderedfox:


1 Like

So, is there a way to save the needed manifest metadata when rendering the EXR from Blender in order to use the Cyrptomatte plugin in Fusion?

I have installed Cryptomatte via Reactor, it works with the original image posted on Github but when I export OpenExr 32bit from Blender I always get the same error about the manifest.
Am I missing Something?

I must becoming invisible. Lately it’s getting quite difficult to get some answers here…

edit: Hm… let’s see, maybe if I turn this thread into a Mac vs PC flame someone will finally react :grin:

edit 2: Thanks, I give up.