Cryptomatte Metadata Missing in 2.8

If I force update it then it shows the layers how it should but the colour picker doesn’t give an alpha. Something really weird going on. Weirdly if I press unload manifest it spits out all the mattes with the same names as they had in Blender and they’re all correct with the alpha so the information is clearly there somewhere!

You could try to switch to CryptoMaterial and write the name of a shader in the Matte List of the Cryptomatte node. If that works then the cryptomatte is working but something with your picking is wrong? (Btw: Do you pick with ctrl+shift+pick?)

I have provided a first patch here in case anyone wants to test it. As described in the patch itself, I ended up not messing with layer names in the end, and just modify the metadata instead. Changing Layer names produced all kind of side effects, the most common one was making the Image Editor crash on displaying the EXR.

I ended up placing an enumeration in the User Preferences to change the metadata written:

I wanted to place it in the metadata section of the scene initially, but failed to retrieve a scene to do so. The scene variable passed on to void BlenderSession::stamp_view_layer_metadata(Scene *scene, const string &view_layer_name) is something different than the Blender Scene (maybe something already translated to Cycles?), so I could not reach the prop from there.

Anyway, did you guys try download the latest cryptomatte nuke plugin from psyop ? version 1.2.4 .

I have the same problem recently, but I realize that the cryptomatte plugin on my side is old. So I update it to the latest version, and now it work’s, the latest plugin I think already convert it to “_” for Blender exr’s
See the latest plugin here : https://github.com/Psyop/Cryptomatte
Hope this help ! :slight_smile:

2 Likes

I´m using fusion and crypto object from blender is not working. Maybe because I have too many objects(>6000) in may scene. Crypto material is not working if I use a file output node. Only if I render with the main output it works.
It would be nice if it would be possible to use file output nodes in blender with cryptomatte support!

Are you using OpenEXR with 32 bit depth (called float full in the UI) for outputting the images? And a lossless codec? For us file output nodes work fine in that case.

1 Like

Yes I´m using 32bit multilayer exr with the lossless zip codec. In Fusion only cryptomaterial is working from blender if I render to the main output node but not if i render to a fileoutput node. If I use a very simple scene with only a few objects, then cryptomaterial is also working within fusion, so my thought that the object count is the problem.
Are you using also Fusion or Nuke?
Photoshop (with exr_io 2.01 plugin) has also a problem when I use an file output nodes. The main output works fine! In Photoshop cryptomaterial and cryptoobject from blender works fine.
I tested also After Effects (proexr 2.0 Plugin) and it has no problem with cryptomattes and the blender file output nodes. Cryptoobject and cryptomaterial work fine.
So my conclusion is, that every plugin interpretes the rendered informations within the exr different. Hope this problems will be solved soon!

1 Like

We’re using Nuke here, but don’t use to have scenes with such a high object count, we typically don’t exceed 3.000. Do the Cryptomattes you have generated work within the Blender Compositor?

Yes in the Blender compositor cryptomattes work normal. If I wish I can output b/w mask but thats so slow. For us the blender compositor is no option and nuke too expensive :slight_smile: .
We import all the cad-parts of cars. Unless we are beneath 22million polygons everything works fine in blender.

Hi guys. There’s no metadata in exr file regarding cryptomatte or and official dneg cryptomatte gizmo for Nuke can’t extract any matte from it.
example 1 file in 2.79 and 2.8


how I can fix it?

1 Like

it looks like no one has an answer to that.

The file was closed with this comment

I think it would be much nicer if the file just worked. The solution would be to include the same MetaData in exr file if at least one cryptomatte channel is connected to file output node in Blender, but that is a Blenders problem.

@brecht just to confirm this, in your tests, have you tested the file output node from compositing?

In those links one thing mentioned is that the needed metadata is not present when using the compositor, but it works with the default output.

The Blender compositor indeed does not preserve metadata with the file output node, that’s a limitation currently, there is no type of metadata node socket for passing along that information from one node to another.

Can the metadata be added to any OpenEXR and MultiLayer OpenEXR file output nodes present in the Compositor regardless of what is connected to it? I assume the added file size is neglectable. Would be SO useful to have it.

1 Like

Yep, a good idea would be to have a “copy metadata from output” checkbox in the output node that will blindly copy the metadata of the original output no matter what as long as the output node is configured as Multilayer EXR

4 Likes

sorry 4 my English if any situation)
In finish we have:

  1. Out files with compositor is dont work. But it will correct work if we make out in scene-output. I just need ON crypto in passes and set settings out multiOpenEXR? Thats all, I can rendering sequence?
  2. I find fix. Totally cant understand, what need to di with it… https://developer.blender.org/rB1bbe770
  3. Using 2/79 latest. Dint understand too, how…
  4. Compositor in 281 isnt working in all ways.
    May someone explain one working way step by step?
1 Like

To be able to use that fix you would need to build your own version of Blender and apply this patch.
I can apply it to our build and you will be able to use it, but since it’s the build we use for work I have to confirm just one thing:

@brecht if I apply this patch to our build, would it break backwards compatibility in some way or it’s not too problematic?

Are you sure this is a patch at all? To me this looks like a normal commit which is already in master, unless I am mistaken? I believe this fixed a bug where Cryptomattes where missing altogether in the render output, I can’t see where this code checks for file output nodes.