Cryptomatte is an AOV shader which encodes Cryptomatte ID mattes into EXR outputs. Usage varies by DCC. In all DCCs however, it involves setting up a global AOV shader, though in Maya and Cinema 4D this is done automatically. AOV shaders are shaders that run on all samples after the main shading network has evaluated. When Cryptomatte is present, and a Cryptomatte AOV is active, it will handle the rest of the setup itself inside of Arnold. The setup includes creating more outputs, writing metadata and manifests, and installing the proper filters. Cryptomatte's Filter and sidecar manifest driver are bundled in the same plugin, but should not be used manually by users.
The basic procedure is as follows:
- Activate a Cryptomatte AOV. This should be configured to write to an RGB EXR file.
- Connect a Cryptomatte shader to AOV shaders in the render globals (in Maya and Cinema 4D this is automatic and can be skipped).
- Render the EXR to disk. You'll get the AOV expanded into all the Cryptomatte data, with metadata. Options on the Cryptomatte shader can be considered global options for the system, in a sense an extension of the Arnold options.
Write the manifest to a sidecar .json file instead of into the header. Writing these is deferred until after the render.
Controls how many layers of Cryptomatte will be created, which is the number of matte-able objects that can be stored per pixel. 6 is the default and is essentially always plenty.
Strip Object Namespaces
A name processing option. Strips namespaces from objects in Maya style naming. See name processing.
Strip Material Namespaces
A name processing option. Strips namespaces from material names in material matte.
Standard Cryptomatte AOVs
Asset AOV Name
crypto_asset creates the same matte for all assets.
Object AOV Name
crypto_object creates a matte based on the object name.
Material AOV Name
crypto_material creates a matte based on the assigned shader.
User Defined Cryptomatte
User Cryptomatte AOV 0
AOV Name 0
AOV name for User Cryptomatte 1.
Source User Data 0
User data name (must be string-type) for User Cryptomatte 0.
User Cryptomatte AOV 1
AOV Name 1
AOV name for User Cryptomatte 1.
Source User Data 1
User data name (must be string-type) for User Cryptomatte 1.
User Cryptomatte AOV 2
AOV Name 2
AOV name for User Cryptomatte 2.
Source User Data 2
User data name (must be string-type) for User Cryptomatte 2.
User Cryptomatte AOV 3
AOV Name 3
AOV name for User Cryptomatte 3.
Source User Data 3
User data name (must be string-type) for User Cryptomatte 3.
Preview in Exr
Preview AOVs are what users see in render viewers. These AOVs are no longer used by the decoders and so are dead weight. This option is disabled by default, which means they don't write to EXRs. (Recommended off).
Maya Names: (e.g. "namespace:obj"). If disabled, colons are considered as defining namespaces.
Path-Style names: (e.g. "/obj/path/name"). If enabled, anything before the last forward slashes is considered as defining namespaces.
Process Obj Path Pipes
Obj Path Pipes: (e.g. "|obj|path|name") Consider pipes (|) part of the object path. (For older C4D).
Process Mat Path Pipes
Strip Material Pipes: (e.g. "/a/b/c|standard_surface" -> "/a/b/c") In paths, cut material names after pipes (|). (For C4D).
Legacy Styles: Includes old C4D style, as well as Softimage.