User guide

19 Universal Attributes
One of the key strengths of Katana is its ability to deal efficiently with scenes of potentially unlimited complexity.
Consider for example a complex surface shader with thousands of configurable parameters. Katana not only allows
efficient configuration of the shader, but also handles communication of these parameters to render in an efficient
manner.
One way it achieves this is by only sending to the renderer the parameters that have actually been modified. As the
renderer has knowledge of the remaining, default values, Katana does not need to duplicate them. For example, see
the extract below which is a portion of a RIB file produced by Katana for a simple material assignment operation and
the settings as they appear in the Parameters tab (the extract has been truncated for clarity):
Attribute "iden..." "uniform ... name" ["/root/.../primitive"]
...
Surface "Blinn" "Kd_color" [0.059 ...] "Ks" [0.5]
AttributeEnd
However, this poses the question: how does Katana know what values to display in the user interface of, say, the
Material Node for parameters that are not set in Katana, if it only passes the values that are set by Katana to the
renderer?
This chapter explains a number of important concepts in Katana, namely:
Universal Attributes – these allow nodes to access incoming Scene Graph attributes, which may not have been
set within the Katana project.
Default Attribute Producers (DAPs) – Closely related to universal attributes, DAPs are the mechanism by which
universal attributes are populated with default values.
Dynamic Parameters – These are parameters of a node that depend on Scene Graph attributes. An example of
this is the RenderSettings node, which depends on the attributes under renderSettings, at location /root and is
used for the configuration of render settings such as output resolution. Another node where dynamic parameters
are used heavily is the Material node. When used in edit mode, it can manipulate the values of incoming scene
graph attributes at a particular material location.
NOTE: Example scripts and scenes referenced in this document are found under the tutorials directory,
which accompanies this chapter.
The scripts contained in this chapter are designed to be run in Katana's script mode, which is invoked from