RenderPassWedge

Causes upstream nodes to be dispatched multiple times in a range of contexts, each time with a different value for the renderPass context variable. Each value of renderPass is the name of a render pass created from one or more RenderPasses nodes in the network upstream of the in plug.

Tip

Typically, a RenderPassWedge would be placed downstream of your render node of choice, allowing render tasks to be dispatched for each render pass.

Tasks can be varied per pass by using ${renderPass} in an upstream Spreadsheet or NameSwitch’s selector or through use of a ContextQuery node or an expression.

Specific passes can be disabled from wedging by setting the renderPass:enabled option to False in contexts where that render pass name is the value of the renderPass context variable.

Customisation

The behaviour of the RenderPassWedge node can be customised by registering an adaptor that conditionally deletes, renames or disables passes. A common use case is to conditionally enable passes on a per-shot basis according to the presence or absence of particular assets within the scene.

Adaptors should be registered using a client value of “RenderPassWedge” - for example :

GafferScene.SceneAlgo.registerRenderAdaptor( "MyConditionalPassAdaptor", adaptorCreationFunction, client = "RenderPassWedge" )

user

Container for user-defined plugs. Nodes should never make their own plugs here, so users are free to do as they wish.

preTasks

Input connections to upstream nodes which must be executed before this node.

postTasks

Input connections to nodes which must be executed after this node, but which don’t need to be executed before downstream nodes.

task

Output connections to downstream nodes which must not be executed until after this node.

dispatcher

Container for custom plugs which dispatchers use to control their behaviour.

dispatcher.batchSize

Maximum number of frames to batch together when dispatching tasks. If the node requires sequence execution batchSize will be ignored.

dispatcher.immediate

Causes this node to be executed immediately upon dispatch, rather than have its execution be scheduled normally by the dispatcher. For instance, when using the LocalDispatcher, the node will be executed immediately in the dispatching process and not in a background process as usual.

When a node is made immediate, all upstream nodes are automatically considered to be immediate too, regardless of their settings.

dispatcher.tractor

Settings that control how tasks are dispatched to Tractor.

dispatcher.tractor.service

A Tractor “service key expression” used to select blades on which tasks will be executed.

dispatcher.tractor.tags

A space separated list of tags that can be used with Tractor’s limits to constrain the number of concurrent tasks. Typically this is used to ensure that tasks using commercial software do not exceed the available license count.

in

The input scene containing the render passes to wedge.

out

A direct pass-through of the input scene.

names

The names of the render passes to be wedged.

Note

Render pass names are queried at the script’s start frame to ensure they do not vary over time and to prevent scenes with expensive globals from slowing task dispatch.