Skip to content

Cryptomatte ​

Pulls a matte for named objects out of an EXR your 3D renderer already tagged.

Category: Source Menu path: Source > Cryptomatte

Ports ​

PortTypeDirectionDescription
outimageRgba16foutputThe matte: coverage in RGB and alpha

Parameters ​

ParamTypeDefaultDescription
pathstring""The EXR to read. Only OpenEXR carries a Cryptomatte.
cryptoTypestring"" (first)Which Cryptomatte in the file — Object, Material, Asset. Only shown when the file has more than one.
objectsstring""The objects to matte, picked from the file's manifest.
invertbooleanfalseMatte everything except the picked objects.

Expose Channels ​

None. A Cryptomatte is a file read, not an animatable effect — nothing here changes over time.

How It Works ​

When a 3D renderer writes a Cryptomatte, it stamps every pixel with which objects are visible there and how much of the pixel each one covers, as a fraction. That fractional coverage is the whole point: an antialiased edge carries its real partial values, so a Cryptomatte matte has clean edges where a luma key would have crunchy ones. It also means an object seen through something semi-transparent still mattes correctly, and an object partly hidden behind another gives you a correct matte of the part you can see.

What it does not do is recover geometry you cannot see. Coverage is visibility — where one object is fully behind another, its matte is empty there, exactly as the render shows it.

Identity is stored as a number that is a hash of the object's name, not a brightness, so Caddis decodes the file on the CPU and compares those ids exactly. Nothing reaches the GPU until the ids are gone and only coverage is left. The names you see in the picker come from a manifest the renderer writes into the EXR header.

Picking more than one object sums their coverage, so three objects picked together give you one matte of all three — not three mattes. Summing is also what closes the seam where two picked objects meet: the partial coverage on either side of a shared edge adds back up to a solid pixel.

The output carries coverage in the colour channels and in alpha, so it feeds a Matte node's luminance input or anything expecting straight alpha with nothing in between.

Usage Examples ​

Basic: Grade one object in a finished render ​

Point Cryptomatte at the same EXR your Image Source is reading, pick the object, and wire it into a Matte node alongside a Color Correct of the beauty. You are now grading one prop in a shot that was rendered in one pass.

Creative: Blur everything except the hero ​

Pick the hero object, turn on Invert, and use the result as the mask on a Blur. No depth pass, no roto, and the edges stay exactly as the renderer antialiased them.

Creative: Drive particles from an object's silhouette ​

Wire the matte into Image Sample, and its scalarField into a Point Emitter's Density. Particles are born only where that one object is — which follows it through the shot for free, because the matte does.

Tips ​

  • Re-render with lossless compression. DWAA and DWAB are lossy, and lossy compression on an id channel does not soften it, it changes which object each pixel names. Use ZIP or PIZ for anything carrying a Cryptomatte. Caddis says so in the status console when it sees ids that lost their precision.
  • Names come from your 3D app, so what you see in the list is whatever was named there — Suzanne.001 if nobody renamed it. The list has a search box.
  • Switching Cryptomatte type clears your picks. An id that names an object in Object means nothing in Material, so the picks cannot carry across.
  • No manifest in the file? The picker turns into a text box and you type one name per line. Caddis hashes typed names exactly the way the renderer did, so this still works — you just have to know the names.
  • Multi-layer EXRs: use Image Source's Render Pass selector for the beauty and a separate Cryptomatte node for the mattes. They read the same file independently.
  • Redshift writes the Cryptomatte to its own file. It cannot go in the multi-pass EXR, so tick Direct rather than Multi-Pass on the AOV and set the filename field at the top of the AOV tab. If you go looking in your multipass EXR you will not find it. Dragging that separate file in builds a Cryptomatte node automatically.
  • Matte — what you usually wire the matte into
  • ImageSource — the beauty pass from the same EXR; its Render Pass selector picks other AOVs
  • Keying — for footage, where there is no id to read
  • ImageSample — turns the matte into a field that drives anything