> [!abstract] Summary
> **Cryptomatte** generates ID mattes for objects, materials, or assets automatically at render time — no manual matte painting or per-object render passes needed. The resulting AOVs are used in compositing to isolate and grade elements precisely.
---
# What is a Cryptomatte?
Cryptomatte is an industry-standard system for generating **automatic, accurate ID mattes** from renders. It stores a special multi-channel AOV that encodes which object (or material, or asset) covers each pixel — including correct handling of motion blur, transparency, and depth of field.
In compositing, a Cryptomatte node reads these channels and lets you click on any pixel to instantly extract a clean matte for that element.
![[image-198.png]]
## Key Modes
| Mode | What Gets a Matte |
| ---- | ----------------- |
| **Object** | Each unique object/primitive gets its own matte |
| **Material** | Each unique material gets its own matte |
| **Asset** | Groups objects by a custom asset name attribute |
---
# Setup in Houdini (HTOA)
## 1. Enable Cryptomatte AOVs
In your Arnold ROP, go to the **AOVs** tab and add the following:
| AOV Name | Type |
| ----------------- | ------------------------------------------------ |
| `crypto_object` | `VECTOR2` (or `RGB` depending on Arnold version) |
| `crypto_material` | `VECTOR2` |
| `crypto_asset` | `VECTOR2` |
> [!note] Add only the modes you need — each Cryptomatte layer adds to render time and file size.
## 2. Output Format
Cryptomatte requires **multi-layer EXR** output to function correctly in compositing. Make sure your render output is set to:
- Format: `.exr`
- Bit depth: **16-bit half** or **32-bit float**
- All AOVs in a **single multi-layer EXR file**
---
# Setup in Arnold for Maya
1. In the **Render Settings**, go to **AOVs**
2. Add `crypto_object`, `crypto_material`, and/or `crypto_asset`
3. Ensure output is a multi-layer EXR
---
# Using Cryptomatte in Nuke
1. Read the multi-layer EXR into Nuke
2. Add a **Cryptomatte** node
3. In the node's interface, click **Pick** and click on any object in the viewer
4. The node outputs a clean matte for that selection
> [!tip] You can click multiple objects to build a combined matte, and use the name filter to select by pattern (e.g. all objects starting with `char_`).
---
# Notes
- Cryptomatte mattes are **anti-aliased** and handle motion blur and transparency correctly — unlike hand-painted mattes or object ID AOVs
- The `crypto_asset` mode is the most powerful for production use: it lets you matte an entire character (made of many objects/materials) with a single click
- Arnold's Cryptomatte implementation follows the [Cryptomatte specification](https://github.com/Psyop/Cryptomatte) by Psyop, compatible with any compliant compositing app