OpenEXR_2 & OpenEXRId - Cryptomatte

OpenEXR/Id

A new storage scheme for computer graphic images based on OpenEXR 2. Using EXR/Id files, the compositing artist can isolate an object selection and color correct it with no edge artefact, which was not previously possible without rendering the object selection on its own layer.

I was reading about this on the Guerilla render dev forum
http://www.guerillarender.com/forum/viewtopic.php?id=906

And Psyop cryptomatte:

-> Using Blender: Can save my images using a new storage scheme based on OpenEXR 2 ?

Ty in advance.


> Using Blender: Can save my images using a new storage scheme based on OpenEXR 2 ?

No

Unless it’s based on deep compositing, I’m highly skeptical that it can do all those things with ZERO edge artifacts.

Also, the answer to any “Does Blender have this cutting edge feature” question is usually no. Such is the nature of open source development, I’m afraid. :frowning:

Ty both replys.
I guess it’s a matter of time until this new version to be added.

Cryptomatte does not seem to be a very difficult thing to implement. What it does is it hashes the names of objects and materials etc to an ID code and then saves ID - coverage(alpha) values in pairs of exr’s channels. Reading the alpha values out is a simple matter of binary lookup from ID channels to find pixels where that ID contributes and reading the corresponding alpha values from other channels. This technique does not need any of the OpenEXR 2 functionality, only render engine support.

Cycles: Proof-of-Concept Implementation of Cryptomatte Matte ID pass system
https://developer.blender.org/D2106

ty !

It is very exciting to see some development in that area to be able to isolate clean(AAd) mattes! I would even be happy if COVERAGE would be exposed as a pass. I know some mix materials with Emission to extract clean object ID from it. Are there any good tricks right now to get clean mattes? Tnx

I’d like to see this :slight_smile:

Yes, it is based on deep images. Formally, DeepEXRId adds a 32bits id per deep fragment which maps back to a unique identifier/name in the original scene.
The workflow in deep compositing involves a plugin to filter deep fragments per pixel, based on a selection of names (using regex, for instance.)

Unlike a classic deep image, the fragments of identical objects can be averaged to a single fragment, but this is not mandatory.

Also, you can choose to output just alpha to extract masks, or full rgba if you’d want to extract full and unaltered rgba data per object per pixel. This makes the extension quite different from CryptoMatte (you get bonus correct colors regardless of AA, motion blur, depth of field and opacity, but you must use a deep compositing software, although the EXRId github provides an OpenFX plugin to filter the deep into a regular flat compositing workflow.)

Disclaimer: I’m a dev of the Guerilla team, and I’ve participated in developing OpenEXRId, hence my preference over CryptoMatte.

2 Likes

Thanks for the reply BenMercs, However my response was a bit dated… (2016)… before Blender got full support for CryptoMatte… Thanks for all your hard work improving the industry over the past 3 years with this feature!