Houdini 18.0 Nodes TOP nodes

USD Render TOP node

Creates work items that render a USD file.

On this page

Overview

Generates work items that render an USD file using Karma by default. The rendering executes using the Houdini husk executable. This node has similar options to the USD Render ROP.

Rendering uses the same USD interface (Hydra) as is used to render the Solaris viewport, but instead of displaying the generated pixel buffers, the renderer saves them to image files. You can choose to render using any Hydra client registered with USD.

Configuration

Traditionally in Houdini, the renderer was configured using parameters on the render node. In USD, however, render settings are stored in a RenderSettings primitive in the scene tree.

See the help for the Render Settings LOP, Render Product LOP, and Render Var LOP for more information about creating USD render settings.

Available renderers

  • The list of renderers is filtered based on the data returned by the usdrenderers.py script. The husk utility, and by extension the USD Render node, only support renderers that can generate AOV buffers (that is, renderers whose aovsupport attribute is True).

  • To render to other delegates, such as Houdini GL and Storm, that do not support AOV generation, use the OpenGL ROP (this basically updates the viewport and takes a snapshot of its contents).

Tip

You need to make sure the render delegate is found by the USD plug-in search, using the PXR_PLUGINPATH_NAME environment variable.

You can also set the environment variable TF_DEBUG to PLUG_*, which causes the USD library to print out useful information as it scans for and loads plug-ins.

TOP Attributes

complexity

string

The complexity of the render as specified by the Complexity parm.

outputimage

file

The path to the output image pattern for the render. This is what is passed to husk, and should contain symbols that can be expanded by husk.

range

float3

The start, end and increment frame range values associated with the work item. If the work item is in a batch, these values will refer to the range for the entire batch.

usdpath

string

The path to the .usd file.

huskcommand

string

The full husk command as executed by job, crated when Create Husk Command Attribute is enabled, and is added after the job cooks.

Parameters

Render

Work Item Generation

Whether this node generates static or dynamic work items. You should generally leave this set to "Automatic" unless you know the node’s work items can be computed statically, or that they need to be generated dynamically.

Dynamic

This node always creates dynamic work items: it waits until the upstream work items are known, and generates new work items from the upstream work items.

Static

This node always creates static work items: it creates the number of work items it thinks it needs based on the parameters (and any upstream static items) before the network runs.

Automatic

If the input is static (a static processor, or a partitioner with only static inputs, or a mapper), this node generates static work items, otherwise it generates dynamic work items.

Cache Mode

How the processor node handles work items that report expected file results.

Automatic

If the expected result file exists on disk, the work item is marked as cooked without being scheduled. If the file does not exist, the item is scheduled as normal.

Read Files

If the expected result file exists on disk, the work item is marked as cooked without being scheduled. Otherwise the work item is marked as failed.

Write Files

Work items are always scheduled and the excepted result file is ignored, even if it exists on disk.

Source

USD Path

The source of the USD file

Upstream Output File

Uses the output file produced by the upstream work item as the path to the USD file.

Custom File Path

USD file specified by a custom filepath.

File Tag

The data tag used to select the result from the upstream work item.

File Path

The path to the USD file to be rendered.

Operation

Evaluate Using

Determines how the TOP node creates work items and executes. When using Single Frame the node will create one work item for each upstream frame. When using Frame Range the node creates one work item per frame in the range, for each upstream work item.

Single Frame

The node will create a single work item per upstream item, and will set the new work item’s frame to match the upstream item’s frame. If there are no input nodes then a single item set to frame 1 will be created. The single frame value can be overridden using the Override Frame parameter.

Frame Range

For each upstream work item, the node will create the full frame range of work items. If there are no upstream items, the node will create one set of items for the specified frame range.

Override Frame

When this parameter is enabled, it overrides the frame used with the Single Frame Evaluation mode.

Frame Range

The frame start, end and step size to use when Frame Generation is set to Frame Range.

All Frames in One Batch

When this toggle is enabled, work items from the same frame range are grouped into a batch that is scheduled as a single job. This is used for simulations where each frame depends on the previous frame, and it is advantageous to keep everything in memory.

Frames per Batch

By default, when this parameter is at 1 each work item is cooked as a separate job. When this parameter is set to a value greater than 1, work items are grouped into batches.

Override Output

If enabled, render to this file path instead of the output specified in the RenderSettings prim.

Variables are expanded in the string can be represented in various ways. See the list below.

Note

If you are rendering using a batch you must not use @pdg_frame or any other per-frame attributes in this file path. This is because husk has no way of evaluating the attributes when rendering multiple frames. Instead you should use the symbols that husk understands, for example <N> and %03d.

Note

If this path is disabled, the output files will not be added to the work item until the images are rendered. This is because this node has no way of knowing what the generated file paths will be. If you wish to generate static items downstream from the output files you should add them using an attributecreate.

Expected Output From

Since this node may not have access to the USD file during the generation phases of the PDG cook, you must supply the expected output file paths to the node if you wish to make use of these paths downstream in other TOP nodes during generation. These expected file outputs correspond to the RenderProduct prims that are resolved by USD. See Render Product.

None: No expected outputs are added.

Attribute: The given attribute name is evaluated and added as expected outputs. This can be a file or string array attribute.

File List: The given output file paths are added.

Husk Options

Purpose

Specify the purpose for rendering. This is a comma separated list of purposes (from {'geometry', 'guide', 'proxy', 'render'}).

Render Settings Prim

Scene graph path to the RenderSettings prim to render with. You can specify a path relative to /Render. (If this is blank, the node looks for default render settings on the root prim. If the root prim has no render settings, the node will use default settings.)

Complexity

Specify geometric complexity ({'low', 'medium', 'high', 'veryhigh'})

Rendering Threads

Use All Processors: Use as many rendering threads as there are processors

All Processors Except One: Use One Less thread than processor count.

Custom Thread Count: Use a custom number of rendering threads

Other Delegate

The Hydra client to use to render the images. The default is Karma. Alternate Hydra clients must be registered with Houdini’s USD libraries. See how the node gets the list of available renderers above.

Checkpoint Interval

When this is on, the renderer writes out a checkpoint file and partial image at every interval of this many seconds.

Command Prefix

Specifies a command to be executed instead of the husk executable. This command will be passed the full generated husk command line. To function properly this wrapper program should pass through the stdout from husk.

Extra Husk Arguments

Extra arguments to pass to the husk executable along with those determined from the parameters.

Create Husk Command Attribute

Create a work item attribute with the value of the full husk command that is executed by the job. This attribute is created after the job cooks.

Time Limit

Seconds

Limit rendering time to this number of seconds.

Time Limit Is Per Frame

Time limit applies to images rather than the whole sequence.

No Partial Results on Timeout

If time limit is exceeded, do not save partial results.

Verbosity

Level

How much information to print out while rendering. A higher number means more information is printed during the render.

VEX Profiling

Enable VEX profiling (impacts performance)

Alfred Syle Progress

Print percentage complete value as files are written. This is in the style expected by Pixar’s Alfred render queue.

Message Time Stamps

Turn on/off message time stamps.

Schedulers

TOP Scheduler Override

This parameter overrides the TOP scheduler for this node.

Work Item Priority

This parameter determines how the current scheduler prioritizes the work items in this node.

Inherit From Upstream Item

The work items inherit their priority from their parent items. If a work item has no parent, its priority is set to 0.

Custom Expression

The work item priority is set to the value of Priority Expression.

Node Defines Priority

The work item priority is set based on the node’s own internal priority calculations.

This option is only available on the Python Processor TOP, ROP Fetch TOP, and ROP Output TOP nodes. These nodes define their own prioritization schemes that are implemented in their node logic.

Priority Expression

This parameter is only available when Work Item Priority is set to Custom Expression.

This parameter specifies an expression for work item priority. The expression is evaluated for each work item in the node.

See also

TOP nodes