Houdini 21.0 Solaris and Karma

Cryptomatte

How to generate image maps associating each pixel in the image with the object name and/or material in the original source scene.

On this page

Overview

Cryptomatte is a set of open-source tools for generating and working with images that associate individual pixels with object IDs. More generally, a “cryptomatte” is the type of image generated by the tools, or equivalent features in other software such as Houdini. This is a deep EXR image which stores object names/materials per-pixel, with special filtering to properly support anti-aliasing and transparency.

You can use the image to mask compositing effects to only the pixels associated with certain 3D source objects, or certain materials, without having to re-render the scene.

The following example shows how you can use a cryptomatte image to isolate a specific material in a Houdini compositor network.

See Cryptomatte’s official site for specifications and plugins for popular compositing applications.

Note

Cryptomatte is supported by Karma CPU and Karma XPU.

Tips and notes

  • You can generate a cryptomatte from object names, or materials, or the values of a custom string primvar.

  • In USD/Karma rendering, “object name” is the full path of the geometry prim. For example, for a prim at /Models/lamp/base1 the “object name” would be /Models/lamp/base1.

  • You can generate a cryptomatte AOV using one method (for example object names), and a separate cryptomatte AOV using another method (for example materials), to allow you to mask by both/either.

How to

To...Do this

Render a traditional Houdini object-level scene to a cryptomatte using Mantra

See Cryptomatte in Mantra.

Render a USD scene to a cryptomatte image using Karma

Karma generates the cryptmatte layer as an extra image plane (AOV) in the main rendered image.

  1. Set up the Karma ROP you want to use to render the scene.

  2. Click the Image Output tab and then the AOVs sub-tab.

  3. Scroll down and click Extra Render Vars to show that section.

  4. Next to Render Vars, click the Plus button to add a new image plane.

  5. Next to the Name field, click the drop-down menu and choose Cryptomatte Object Name or Cryptomatte Material Name to fill in the correct settings for the render var.

    or

    If you have a “uniform” or “constant” primvar of type string on the object, you can enter the name of the primvar Source Name parameter to generate IDs from the primvar values.

Generate masks in the compositor from a cryptomatte

See the help for the Cryptomatte COP.

Solaris and Karma

Solaris and USD

Karma

  • Karma

    Houdini’s Physically Based USD Renderer.

  • Karma XPU

    Houdini’s fast and modern XPU render engine.

  • Color management

    Learn more about OCIO, color spaces, gamma and tone mapping.

  • Render statistics

    How to view various statistics about the render process of an on-going render or rendered image.

Karma User Guide

Look Development

  • MaterialX

    Houdini has VOP node equivalents of the MaterialX shader nodes. You can build a shader network using these nodes, or import an existing MaterialX-based shader, and use them with Karma (Houdini’s USD renderer).

  • UDIM paths

    You can encode different tiles of a texture space into different texture files, each with its own resolution. You can then specify a texture filename such as kaiju.exr, and Houdini will replace the token with the specific tile address at load time.

  • Shader translation

    Describes the Solaris shading framework, including shader node translation to USD primitives.

  • Shotbuilder tools

    Multi-Shot Pipeline in a Box.

Procedurals

Supporting documents