Rendering Control dependencies between renders
Overview
You can connect render nodes together to create dependency graphs, allowing you to control the order in which renders run. You can connect any number of inputs and outputs. Houdini will signal an error if you try to create a circular dependency.
Creating dependencies
-
Go the the render output driver network (
/out). Click the path at the top of a network editor and choose Other networks > out. -
Connect one render node’s output to another node’s input to create a dependency. The downstream node will not start until its input nodes finish rendering.
If a render node has more than one input, rendering starts at the first input. Sibling inputs have no dependencies on each other.
-
In the following example network…
compositeis dependent onchar_diffuse,char_specularandbackgound.char_diffuseandchar_specularare both dependent oncharacter. Ifcompositeis rendered, the order of the render process would be:-
character -
char_diffuse -
char_specular -
background -
composite
-
Subnets
-
All input render nodes to a subnetwork will render before the nodes inside the subnet.
-
The subnetwork will render all its “final” nodes (render nodes without output connections) at the same frame or frame range.
-
If a subnet has more than one “final” node, the order in which they render is arbitrary (it’s the order the nodes were created in). To enforce an ordering, use a Merge render nodes to merge the final render nodes together and order its inputs .
-
Render node SubNetworks have no direct connections between the child render nodes and the input render nodes to the SubNetwork. Thus, using a Switch or Batch render nodes with no inputs in a SubNetwork will not have them affect the inputs to the SubNetwork.
Dependency modifier render nodes
A number of render nodes manage dependencies, and do not render anything themselves.
-
Batch causes the frames in the input to be rendered in sequential order, in one pass, regardless of the order in which frames are requested.
-
Frame Dependency - Makes a frame depend on other frame times.
-
Merge merges all dependencies together, to make networks easier to read.
-
Switch selects one input (or no inputs) to add a dependency on.
Time dependencies
Time Dependent SOPs are reevaluated every time the frame changes. They consist of surface nodes with animated parameters, expressions that depend on time ($F, $T) as parameters, and various ones that intrinsically depend on time.
Clicking
a node will alert you as to whether or not the SOP is time dependent. This is useful because sometimes nodes become time dependent when you don’t want them to be. Additionally, this allows you to make sure a SOP that you think should be time dependent really is.
You can usually force time dependency by adding $F*0 to an expression.