artween.com

Middle Grey — what a rendered image is actually doing

Entry 24 · Passes

Cryptomatte

Selecting an object after the render rather than before it.

Entry
24
Section
05 Passes
By
Clare Dunnet
Read
2 min
Studio setup with chrome and matte spheres, a color swatch card, and a small flag on a stand
Plate 01 · PassesSelecting an object after the render rather than before it.

By Clare Dunnet · Passes · 2 min read

One mask per object, generated once

Every compositor has done it: a render arrives, a client asks for a tweak on one object, and the only way to isolate it is to re-render with a visibility override or dig out a matte that was never requested. Cryptomatte solves the problem upstream, at render time, encoding every object — and every material, and every asset — into a set of float passes that can produce a clean matte for any element in the scene at any point downstream, without a second render.

The system was developed at Psyop and released as an open specification, which is why it now appears across virtually every production renderer and compositing application. The core idea is simple: each object in the scene is assigned a unique hash — a deterministic ID derived from its name — and that hash is written into the red and blue channels of each EXR layer, with the matching coverage values in the green and alpha channels. One layer can hold a limited number of simultaneous IDs per pixel; real scenes use several such layers stacked together. Wherever a pixel sees multiple objects — a feathered edge, a transparent surface, a motion-blurred boundary — the coverage values record exactly how much each object contributed. The matte that comes out the other side is not a binary cutout. It is a properly anti-aliased, sub-pixel-accurate mask.

That accuracy is the thing worth understanding. Cryptomatte is not a render-time object ID pass in the old sense, where an integer channel forces a pixel to belong entirely to one object and aliasing eats the edges. Because it stores fractional coverage, a strand of hair crossing a background lands correctly: some fraction of the pixel is hair, the rest is sky, and a compositing tool can reconstruct both mattes at full quality. The same mechanism handles transparency — a wine glass in front of a label gives the glass its correct partial matte and leaves the label's matte intact underneath.

Specimen · Passes1600 × 1000
A clapper board face down beside a steel tape measure
The frame taken apart and put back together.Photo: StockHouse Films llc / Pexels

What you can extract depends on what the renderer wrote: object names, material names, or asset names (groupings defined at export time). A scene where objects are named carefully gives a compositor total per-object control; a scene where everything is left at default naming gives them very little. Naming discipline at the modelling and scene-assembly stage is, in that sense, part of the lighting pipeline.

The cost is modest — a handful of extra float layers in the EXR — and the information is lossless relative to what the renderer knew. No separate matte pass, no held-out beauty, no re-render. The passes that a finished frame is assembled from tend to grow with production demands; Cryptomatte is the one that grows the compositor's freedom rather than their render time.

A contact sheet of one set-up lit several ways, laid on the floor
On the tableSelecting an object after the render rather than before it.

More in Passes

Every entry in this section is listed on the Passes page, and all twenty-four sit in the full register.