Houdini 12 Rendering

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.

When rendering a node, Houdini will render all input nodes first.

By default, Houdini will render all frames in the input nodes before rendering any frames of the rendering node. That is, if Node B depends on Node A, all frames of Node A are rendered before any frames of Node B (A1, A2, ..., An, B1, B2, ..., Bn). You can instead interleave dependencies (A1, B1, A2, B2, ..., An, Bn) using the -I option of render.

Houdini generally ignores the Frame range parameter on an input node when rendering dependencies unless the child node’s Valid Frame Range parameter is “Render Frame Range Only (Strict)”. In that case, Houdini will only output frames within the input node’s frame range.

Houdini will not allow you to create a circular dependency.

How to

To...Do this
Show the render network

Click the first segment of the path control at the top of a network editor and choose Other networks > out.

Make one node dependent on the output of another

Wire the output of the “parent” render node to the input the dependent node.

If a render node has more than one input, Houdini renders the inputs sequentially. Sibling inputs have no dependencies on each other.

Example

composite is dependent on char_diffuse, char_specular and backgound. char_diffuse and char_specular are both dependent on character. If composite is rendered, the order of the render process would be:

  1. All frames of character

  2. All frames of char_diffuse

  3. All frames of char_specular

  4. All frames of background

  5. All frames of 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.

Pressing MMB on 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.

Tip

You can usually force time dependency by adding $F*0 to an expression.