Houdini 20.5 Solaris and Karma

Render statistics

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

On this page

Overview

During rendering, Karma saves a variety of statistics about the render process. When the render is completed, the husk render utility saves the statistics as metadata in the rendered EXR image.

You can extract and view the render statistics for on-going and completed renders using the following features.

Render stats sidebar

In the render gallery viewer, double click an image or on-going render in the render gallery to open it in the viewer, then click the render stats icon to show the render stats sidebar.

You can also use the render stats sidebar in the standalone image viewer (MPlay).

In the render stats sidebar, you can press ⌃ Ctrl + = and ⌃ Ctrl + - to zoom the size of the stats graphics. You can press ⌃ Ctrl + 0 to reset to the default zoom level.

Render report

The renderstatsreport utility generates an HTML render report that lists statistics extracted from a rendered EXR file (Learn more).

Performance section

The Performance section is of particular interest and provides an overview about render times, rays sent, memory allocation and primvars.

Parameter Description

Elapsed

This is the time that was required to render the image.

Load Time

The time it took to load the USD scene.

First Pixel

The time from processing the scene to rendering the first pixel.

Load Memory

The memory after loading the USD scene, but before rendering.

Peak Memory

This value includes all the libraries and executables that are required to run the program. For example, libpxr_usd.so (11MB) is required to process USD scenes. libpxr_usdImaging.so (9MB) is required for USD Hydra. libHoudiniGEO.so (261 MB) is required for Houdini geometry processing, libintelocl.so.2023.15.3.0 (120 MB) is required for OpenCL, libopenvdb_sesi.so.11.0.0 (8MB) is for OpenVDB processing.

These all add up and are a base memory requirement regardless of the scene complexity.

Peak Raster Memory

Hydra requires that the render delegate allocate rasters for every AOV. This is the peak memory used by these rasters.

Primvar Cache Items

This is the memory that Karma uses to store primvar (geometry values). So, real32[3] N is the memory used by Karma to store normals for all geometry in the scene. If the value is dimensionless, it’s given in bytes. With values >1024, you’ll see kB or MB units.

Time Spent

The various values are the sum of the times for all threads given in seconds. So, if there are 12 threads/cores and the time reported is 24 seconds, that would be roughly be 2 seconds of wall clock time. It’s not perfectly linear, but once the first pixel is computed, the renderer is able to scale close to linearly based on the number of cores.

Render overlay utility

The renderstatsoverlay utility generates a (possibly resized) JPG or PNG with render stats burned into it (Learn more).

The utility has options for various ways of burning the stats into the image.

Extracting render stats from an EXR file as JSON

You can extract the raw image metadata from an EXR as JSON using the iinfo utility included with Houdini:

iinfo -J example.exr

Solaris and Karma

USD

Geometry

  • SOP Geometry I/O

    Details of how Houdini converts SOP geometry to USD, and how you can control the process.

  • Component Builder

    The Component Builder tool puts down a network snippet for creating a USD model from SOPs, with support for materials, variants, payloads, and layering.

Layout

  • Stage Manager

    How to work with the Solaris stage effectively.

  • Edit node

    Interactively transforms prims in the viewer. Can use physics collisions to position props realistically.

  • Layout node

    Provides tools for populating a scene with instanced USD assets. You can place individual components, paint/scatter components in different ways using customizable brushes, and edit existing instances.

  • Custom Layout Brushes

    How to create layout brush digital assets you can use to customize the behavior of the Layout LOP.

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 framework

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

Karma User Guide

Karma basics and workflows