On this page |
Overview ¶
A clone is a separate background Houdini process that automatically notices and re-renders changes in this session. You can configure each clone with a different render node, render settings, camera, current frame, resolution, and/or context options.
For example, you could create clones and set them to render the previous and next frame from the main Houdini’s current frame ($F - 1
and $F + 1
), or create clones to render the current scene from multiple cameras, or clones to render the current scene with different quality settings, or different renderers, or all of these at the same time. When you make changes in the main Houdini, the changes sync to the clones and they re-render with the changes, allowing you to see how the changes look with the different settings of the clones.
You can set up your viewport to use a fast interactive render delegate such as Houdini GL, but have a clone automatically render the same scene in the background with a final-frame render delegate such as Karma CPU. This lets you work interactively but also check how your changes affect the final render. And if the external render process encounters a problem, it doesn’t affect the main Houdini session.
Because clones can render from different LOPs, the clones don’t need to be rendering the same scene geometry. For example, you could have a lighting setup that is shared between different rooms, and have clones render the different rooms as you change the shared lighting.
If you set up your scene with context options, the clone control pane interface lets you easily set different values for the options for each clone. This lets you quickly try variations in the clones, including switching between different high-level “shots”, without needing to set up different render settings nodes or network branches.
While clones usually automatically re-render when something changes in the main Houdini, you can pause syncing for a clone so it continues to render its current setup and ignores changes in the main Houdini until you un-pause it. This is useful for when you want a clone to finish what it’s doing without restarting if you change something in the main Houdini.
You can start clones as external processes on your local workstation, or on a render farm. Houdini includes launcher scripts for starting a clone on the local machine, and for starting a clone on an HQueue farm. Other render farms require a plugin launcher script.
How to ¶
To... | Do this |
---|---|
Show the clone control panel |
In the pane you want to add the clone control panel to, click the New Tab button (to the right of the existing tabs in the pane), and choose New Pane Tab Type ▸ Solaris ▸ Clone Control Panel. |
Create a new clone |
In the top left corner of the clone control panel, click Clones, then choose a launcher, such as Local Clone or HQueue Clone. The launcher script will usually open a dialog to let you configure the external process. For example, the Local Clone launcher opens a dialog allowing you to set how many threads the external process is allowed to use. Note A newly created clone does not have a LOP node set to render. A clone without a LOP node set is idle until you set the LOP node (see below). |
Create a new clone with the same settings as an existing clone |
In the clone control panel, click the existing clone in the table and choose Duplicate. |
Set the LOP node a clone will render from |
Do one of the following:
|
Connect or disconnect a clone |
When you first create a clone, the Connected column in the table displays “waiting” while the clone starts up. When the clone is finished starting and syncs with the main Houdini session, the Connected column displays “Connected”. To disconnect a clone, turn off the checkbox in the Connected column of the table. A disconnected clone is not running and does not use a license, but lets you keep the clone’s settings until you want to start it again. (If you want the clone to continue running in the background, but not automatically sync changes, use the Pause Syncing column instead of disconnecting. See below.) To connect to a disconnected clone, turn on the checkbox in the Connected column of the table. |
Pause syncing changes from the main Houdini to a clone |
Sometimes you just want to let a background render finish what it’s doing without restarting if you change something in the main Houdini session. To pause syncing for a clone, turn on the checkbox in the Paused column of the panel. When “pause syncing” is on for a clone, it continues to run in the background, but does not automatically receive scene changes from the main Houdini session. |
Change the size of the preview images |
Resize the Image column in the table. Each row resizes to fit its image at the proper aspect ratio for the column width. |
Hide the preview images |
|
Edit clone settings |
|
Working with context options ¶
If you use context options in your scene, the clone control pane interface lets you easily set different values for the options for each clone. See context options for details on how to use context options in VEX snippets, scripts, and expressions.
To... | Do this |
---|---|
Use a different context option value for one or more clones |
This adds a column to the table for the context option. You can double click the cell in this column for a clone to set the context option value only for that clone. If the value is empty or |
Remove a context option column |
In the table, right click the table header of the column, or any cell in the column, and choose Remove column. |
See error logs from clones ¶
If a clone is not rendering, you can look at the error logs from the clone in the main Houdini session using the Log Viewer.
-
Add a Log Viewer pane to the current desktop. In the pane you want to add the log viewer panel to, click the New Tab button (to the right of the existing tabs in the pane), and choose New Pane Tab Type ▸ Log Viewer.
-
In the log viewer, click the Connected logging sources icon and turn on Clone Logs.
-
To see only clone log entries, click the source filter button and turn off other sources.
The Source column for clone log entries contains the clone name. You can type the clone name in the filter field to show only logs from that clone.
Notes ¶
-
Each clone is a non-graphical Houdini batch process. Each clone uses a license. Because they are non-graphical, if for some reason any Python scripts running in the clone try to use functions in the
hou.ui
package, they will raise an exception. -
Connected clones are running in the background, and if they have a LOP node configured, they automatically sync and render changes from the main Houdini session. disconnected clones are not running, and do not use a license. Disconnecting is a way to stop the clone without losing its settings.
See the “how to” section below for how to connect, disconnect, and pause syncing for a clone.
-
Clones only work with USD/Solaris and Hydra render delegates.
-
In the built-in launchers, setting the thread count to
0
(the default) means use the computer’s number of cores as the maximum thread count. Negative numbers mean “number cores minus this number”. For example,-1
means set the maximum number of threads to the number of cores on the machine minus one.
Toolbar ¶
This is a shortcut to show/hide the image column.
Writing a clone launcher plugin ¶
TBD.