Ops and Proxies

Deferred Ops

The effect of certain nodes and operations can be deferred until render time. This is done by adding an ops attribute group to the target scene graph location, specifying the operations to run. Nodes that support deferred evaluation include OpScript and GenericOp. Deferred operations are run by the OpResolve node/op, which is part of the implicit resolver chain.

Type Attribute Description
group ops.<modifier> A group specifying a single Op to run. The modifier name is user-chosen and has no special meaning.
string ops.<modifier>.opType The type of Op to run.
group ops.<modifier>.opArgs The arguments to the Op. Varies by Op type.
float float float int ops.<modifier>.opArgs.system.timeSlice.currentTime ops.<modifier>.opArgs.system.timeSlice.shutterOpen ops.<modifier>.opArgs.system.timeSlice.shutterClose ops.<modifier>.opArgs.system.timeSlice.numSamples Referred to as System Op Args, these arguments are used by some Ops.
string[] ops.<modifier>.resolveIds List of resolve IDs. These are arbitrary string tags that are matched against the resolve IDs passed to OpResolve. Two resolve IDs - lookfileresolve and implicit_preprocess - are processed at the beginning of the implicit resolver chain.
int ops.<modifier>.recursiveEnable If 1, the deferred Op is also run against descendant locations. When this attribute is encountered at a descendant location with a value of 0, recursion does not continue below that location.

Deferred Material Ops

Ops can also be run at material resolve time. The attribute convention is the same as above, except that ops are nested under a material.ops group, rather than ops.

Viewer Proxy Ops

A similar convention can also be used to specify viewer proxies for scene graph locations.

Type Attribute Description
int proxies.viewer.currentFrame proxies.viewer.firstFrame proxies.viewer.lastFrame Sets the frame range for which the proxy is active.
int proxies.viewer.static If set to 1, the proxy is considered non-animated.
group proxies.viewer.<modifier> A group specifying a single Op to use for a proxy. See above for further details.