User guide
106
• Change what the material on every object that is assigned a material by changing the attributes of the original
material.
In essence they get to manipulate the parameters of the process rather than just the data that comes out of the
process, with all the tools that are available in Katana for inspecting, modifying and over-riding attributes.
Examples of Resolvers
As well as MaterialResolve there are a number of other common resolvers:
• ConstraintResolve. This evaluates the effect of a constraint on the transform of a location.
• LookFileResolve. This replays the changes described in a look file back onto an asset. This is probably the resolver
that users are most likely to be directly exposed to if they don't use the LookFileManager as they will be directly
using LookFileResolve nodes.
• ScenegraphGeneratorResolve. This executes Scene Graph Generators: custom procedural to create new scene
graph data. This resolver runs on any location of type scenegraph generator, and looks for an attribute named
'scenegraphGenerator.generatorType' that specifies what .so to use.
• AttributeModifierResolve. This is similar to ScenegraphGeneratorResolve but executes Attribute Modifier plug-ins:
custom procedurals that can modify attribute values. It looks for any location with an attributes called
attributeModifiers.xxx.
NOTE: AttributeScripts are actually a type of Attribute Modifier, so AttributeModifierResolve can also be
used to execute deferred Attribute Scripts.
Implicit Resolvers
Resolvers can be run by putting nodes explicitly into a project, but there are also a standard set of resolvers that are
automatically 'implicitly' run before rendering. In effect these are nodes that are automatically appended to the root
of a node graph before rendering so that the users don't have to manually add all the resolvers needed. This allows
execution of procedural processes that will always be needed, such as MaterialResolve.
The standard implicit resolvers are:
• AttributeModifierResolve (resolveWithIds=preprocess)
• This resolves any Attribute Modifier plug-ins (including AttributeScripts) that have their resolveId set to
'preprocess'
• MaterialResolve
• As previously described, this looks for materialAssign attributes and creates local copies of materials taking
into account any material overrides. It also executes any Attribute Scripts scripts set to execute 'during
material resolve', allowing scripts to be placed on materials that affect their behavior every time they are
assigned to a different location.
14 RESOLVERS | EXAMPLES OF RESOLVERS