On this page | |
Since | 18.0 |
Overview
This node writes the USD generated by a LOP network to a temp file, then launches an external process (by default, husk) to render an image or image sequence from the USD.
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.
The parameters on this node primarily deal with launching the render process, with just a few options to override key options for controlling the render.
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 whoseaovsupport
attribute isTrue
). -
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.
Parameters
Render to Disk
Renders with the last render control settings. This blocks Houdini until the render completes.
Render to MPlay
Render directly into an MPlay preview window, instead of to an image file. (You can save the image to disk from inside MPlay.)
Render to Disk in Background
Renders with the last render control settings in a background process.
Controls
Click to open a dialog that lets you launch a “one-off” render with different frame range and dependency settings.
Valid Frame Range
Render Current Frame
Render the current frame number (in the playbar).
Render Frame Range
Render each frame in the range set by the Start/End/Inc parameters below.
Render Frame Range (Strict)
The “Render Frame Range” option may generate frames outside the given range if they're requested by a render dependency. If you choose this option, this node will never render frames outside the given range.
Render Frame Range From Stage
Examines the USD stage of the source LOP node for a start and end timecode value. These are used as the start and end of the frame range to render. If the stage does not have this metadata set, executing a render operation will result in an error.
Start/End/Inc
When Valid frame range is “Render frame range” or “Render frame range (strict)”, the start and end frames (inclusive) and interval.
Preroll/Postroll/Inc
When Valid frame range is “Render stage’s frame range”, the number of frames before and after the stage’s official start and end frame to save, and the interval between time samples.
Render All Frames With a Single Process
Render all frames in a background process. Default is off. This allows continued interaction with Houdini while the render process runs.
To render multiple frames, the render process renders an image then advances the time on the scene and renders the next image (just like how the Solaris viewport plays back animation). If there is a lot of data shared between frames, this can render significantly faster compared to rendering a single frame per process.
Render 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.
LOP Path
Render the USD stage output by this node. If this is blank, the node uses the node with the display flag.
Render Settings
Scene graph path to the RenderSettings
prim to render with. (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.)
Override Output Image
If this is not blank, render to this file path instead of the output specified in the RenderSettings
prim.
Husk
Rendering
Instantaneous Shutter
Disable motion blur by setting the camera to have an instantaneous shutter time.
Purpose
Comma separated list of purposes to render (from geometry
, guide
, proxy
, and render
). The default is geometry,render
.
Complexity
Geometry complexity.
???
Delegate Products
Enable render delegate products. These allow render delegates to save non-raster products like deep images or photon maps. These render products are render delegate specific.
Restart Delegate
Normally, when rendering sequences, husk
uses UDS delta operations to make rendering more efficient. The delegate is only told about scene data that changes frame-to-frame so it can share work between frames.
This option will force the render delegate to be restarted when rendering sequences.
Since restarting the delegate will cause the scene to be rebuilt, using this option can have significant performance impact and should only be used if required.
Snapshot Interval
When this is on, the renderer writes out a snapshot file and partial image at every interval of this many seconds.
Time Limit
When this is on, the renderer will terminate if the render time limit is exceeded. Note that husk
will save the partial result before terminating.
Time Limit Per-Image
When rendering multiple frames in a single process (Render All Frames With a Single Process), the time limit specified is applied per image rather than the entire sequence of images.
Monitor
MPlay Monitor
When rendering to disk, open an MPlay window to interactively monitor progress.
AOVs
This is the list of AOVs to display in the MPlay monitor. Specifying -
will monitor all AOVs.
Monitor Zoom
This is a zoom factor applied to the monitor. The monitor will display images at a fraction of the full resolution while the image written to disk will be full resolution.
MPlay Session Name
When rendering to MPlay, all Houdini sessions will send the output to the same MPlay flipbook. This can be problematic when running multiple Houdini sessions. The MPlay Label lets you specify a label for the MPlay associated with the output driver. Only renders which match the given label will be sent to that MPlay.
Houdini Process ID
Uses the operating system process identifier so that the MPlay flipbook will only accept renders from that Houdini session.
HIP Name
Uses the $HIPNAME
variable so the MPlay will only accept renders from the running $HIP
file.
Output Driver Name
The MPlay flipbook will only accept renders from the given output driver. For example, if you copy paste the output driver, each output driver will be sent to different MPlay flipbooks because the operators will have different names.
If there are multiple Houdini sessions, there may be output drivers in the other session which match the same operator name.
For example, say you have two output drivers: “High quality” and “Low Quality”. If you set the MPlay Label to different values for the two output drivers, each render will be sent to different MPlay sessions.
Python
Similar to how Houdini can run scripts during rendering, husk
can also run Python scripts. These Python scripts can access the Usd stage using the stage
variable in Python.
Husk Pre-Render
The Python script husk
runs before any rendering begins.
Husk Pre-Frame
The Python script husk
runs before rendering each frame.
Husk Post-Frame
The Python script husk
runs after rendering each frame. This is run after all render products are saved.
Husk Post-Render
The Python script husk
runs after all rendering.
Tiles
Tiled Render
husk
can break up a single large image into multiple tiles and render each tile independently. It does this by overriding the dataWindowNDC
setting defined on the render settings.
Count
The number of tiles in the X and Y resolutions.
Index
This is the tile that husk
should render. The value should be between 0
and the total number of tiles (Count.x*Count.y
).
Suffix
Each output image will be suffixed with this string. The string supports the same variable expansion husk
does on output images, but replacing the %02d
with the tile index instead of the frame number.
Statistics
Print Command Line to Console
This option can be used to debug exactly what command the ROP is executing.
Verbosity
How much information to print out while rendering. Normally you should avoid “Full with VEX profiling” (slow) or “Full with VEX Profiling and NaN checks” (very slow), though they may be useful for debugging.
USD Trace
This enables USD tracing. This information can be used to profile Usd performance in husk
.
Chrome File
When using Chrome tracing, this is the file where the trace log should be stored.
Log Output
Capture the output from husk
and store the log in a file on disk.
Append to Log Instead of Overwriting
Normally husk
will overwrite the log file on each run. This option will cause output to be appended to the text in existing files.
Output Log
This is the file where normal messages should be saved.
Error Log
This is the file to which error messages should be saved. If this is the same file specified for the Output Log, the output and error messages will be interleaved (in the same way they are written to the console).
Usd
Resolver Context Asset Path
This file path is passed to the render command line as the resolver-context
option. This argument is used to create an asset resolver context that helps the asset resolver find files while composing the USD stage. The default of this parameter is an expression that returns the corresponding parameter on the LOP Network that contains the selected LOP path
Strip Layers Above Layer Breaks
Enable this option to prevent layers authored above Layer Break nodes from being written to disk by this ROP. This allows a Layer Break node to dictate which portions of the LOP Network are to be saved. Disabling this option allows this behavior to be overridden, forcing the full stage authored by the LOP network to be written to disk. This may be used for debugging purposes, or to write a complete scene to disk for rendering.
Strip Post-Layers
Enable this option to prevent layers added using the hou.LopNetwork.editablePostLayer() method from being written to disk. With this option disabled, these post-layers are flattened into the layer Output file layer.
Number of Options
Lets you specify context options that only apply while rendering from this node. Set the number of context options to define/override, or use the plus and minus buttons to add or remove options.
You could have two separate render nodes with different context options, so they would write out different USD from the same LOP network depending on uses of @contextoption
references in expressions. This could be useful for wedging, or to cause the LOP network to configure the stage in ways that are not good for interactively, but useful for rendering.
Option Name
For each option, the name of the option. You can reference this option in an expression using @name
.
Option Type
For each option, the type of data stored in the option, either a floating point number of a string.
Option Value
For each option, the value of the option (while this node writes out USD).
Driver
Render Command
This is the external command used to render. If this parameter is disabled (by turning off the Run command parameter) the command is not executed. The USD scene will still be output to disk, and the command will be output to the console (if Print command line to console is turned on), but the command will not actually be run. Disabling the running of the command also prevents the deletion of the generated USD files, even if they are in the Houdini temp directory. This mode can be very useful for debugging or for batch farm rendering.
Wait for Render to Complete
Causes Houdini to freeze after starting the render process, and only resume when the renderer exits. (This is included mostly for parameter parity with the old Mantra render nodes. It may be useful to implement a crude form of dependency ordering when batch rendering.)
Alfred Style Progress
Print percentage complete value as files are written. This is in the style expected by Pixar’s Alfred render queue.
Create Intermediate Directories
Create intermediate parent directories for output files as needed, such as for generated images.
USD Output Directory
The directory where any required USD files will be saved. If this directory is in the $HOUDINI_TEMP_DIR
, it will be deleted automatically when the render is complete.
Maximum Threads
Uses the -j
command line option to husk
to specify the maximum number of threads that process should use. This parameter can be enabled to ensure that some portion of the computer’s processing powere remains available for tasks other than the render. Positive values specify an absolute number of threads. Negative values indicate that the number of threads should be equal to the number of CPU cores on the machines minus the specified number.
Initialize Simulation OPs
Initialize DOP simulations before rendering.
Scripts
Pre-Render Script
This command is run once, before any files are generated.
Pre-Frame Script
This command is run before each frame is generated.
Post-Frame Script
This command is run after each frame is generated.
Post-Render Script
This command is run once, after all files have been generated.