On this page

Overview

Karma is Houdini’s new physically-based render engine. Being built as part of Solaris, Karma is available as two Hydra render delegates: Karma CPU and Karma XPU. USD serves as Karma’s only file format.

Here is an overly simplified outline of how USD scenes are rendered by Karma’s render delegates:

  1. USD Stage is loaded and composed.

  2. Hydra is initialized along with Karma.

  3. Karma asks Hydra for all of the prims and their properties with 'default' or 'render' purpose. Karma will ask for values at multiple times, to render motion blur.

  4. This begins the syncing process. Rendering doesn’t begin until it finishes all of its tasks.

  5. Karma divides the image into buckets, and starts rendering.

  6. Once all buckets are rendered, Karma will execute any image filters, such as the Intel or NVidia denoiser.

  7. Render is now finished.

Render Delegates

Karma is designed to be as low-latency as possible. Changes are ingested as quickly as Hydra provides them, so that Karma can begin re-rendering the scene with the latest updates.

Karma ships with two render delegates: Karma CPU, and Karma XPU. The biggest differences between the two, is the hardware they run on, and the shading languages each supports.

Note

In previous versions of Houdini, selecting Karma CPU and XPU engines was a render setting. It is good to be aware of this when opening hip files from Houdini 20.0 and earlier.

Unlike other renderers, Karma XPU is not an interactive preview version of Karma CPU. Karma CPU is built around VEX, while the XPU engine is a new engine built around Optix, and Embree. Karma XPU produces the exact same results no matter which combination of devices is used, so it can be used on machines with or without an Optix-compatible GPU.

See Karma and Karma XPU for more information.

Karma CPU

  • CPU-only path tracing built on VEX.

  • Supports VEX, MaterialX and USD Preview shaders.

  • Supports nearly all shading functions built for Mantra.

Karma XPU

  • Next-generation render engine, built to exploit GPU and CPU hardware for interactive feedback.

  • Currently only supports NVidia GPU hardware.

  • Supports MaterialX and USD Preview shaders, which are implemented in the engine with C++.

  • Does not support VEX shaders.

How to

To...Do this

Use Karma to render the Solaris viewer

In Solaris, you can choose which Hydra delegate is used to draw the view of the scene, such as Houdini’s OpenGL renderer, Pixar’s Storm OpenGL renderer, Karma CPU, Karma XPU, or any third-party render delegate you have installed.

Click the Viewport Options menu in the viewport and choose Karma.

(Snapshots taken this way do not capture all AOVs. You have to do a full render to get all the AOVs in the output.)

  1. Click Hide/Show Snapshots Strip in the display toolbar (to the right of the viewer).

  2. In the Render Gallery interface below the viewer, click Snap to take a screenshot of the current contents of the view.

    or

    Click Background to start a background render in the snapshot strip.

See the render gallery help for more information about creating and working with snapshots.

Edit the render settings used in the viewer

Click Display Options in the display toolbar (to the right of the viewer) or press D in the viewer.

These render settings are saved with the current .hip file.

Display render stats in the viewer

  1. Click Display Options in the display toolbar (to the right of the viewer) or press D in the viewer.

  2. In the display options window, click the Guides tab. Under Additional Information, turn on Render Stats.

    This will display information from the renderer below the view menus in the top-right corner of each viewport.

  3. Close the Display Options window.

Set up a LOP network to do a full render

  1. Make sure the scene tree has a Camera prim.

  2. In the LOP network, add a Karma LOP.

  3. In the Karma LOP parameters, set the Camera parameter to the Camera prim’s scene graph path.

  4. Click Render to MPlay at the top of the Karma LOP’s parameters to render into a MPlay preview window.

    As the render progresses in the MPlay window, you can click different areas of the image to concentrate the renderer on that area.

See the help for the Karma LOP for more information.

Next Materials

Karma User Guide

Appendices