Katana provides APIs for creating plugins. There are numerous types, but the most commonly-needed plugins are to create scene graph locations (Ops, or the deprecated ScenegraphGenerator plugins), inspect the scene graph (ScenegraphIterator plugins), modify attributes (Ops, or the deprecated AttributeModifier plugins), and provide asset system support (Asset plugins). Katana ships with an Alembic plugin, and so it should be immediately useful. Solid Angle has written a simple OBJ ScenegraphGenerator plugin as a way to expand some basic compatibility with other packages for internal testing. Katana also ships with some example plugins for asset management, etc. Many studios use common geometry formats, but many also have their own geometry cache formats that will require Op or ScenegraphGenerator plugins to be written for Katana, or else switch to Alembic to take advantage of the standard.
KtoA comes with additional nodes that help create common scene setups, such as ArnoldOpenVDBVolume and ArnoldYeti. Volumes and renderer procedurals can be created manually, but the user must carefully craft these setups to get the attributes set properly.
node: where actions take place modifying the scene in some way, and each node can touch any part of the scene; e.g.,
CameraCreate, Merge, MaterialAssign, etc.
node graph: all of the nodes taken together, connected to each other to direct the flow and order of changes in the scene.
parameter: a piece of data on a node telling the node how to operate; parameters may be organized hierarchically inside of a node; e.g., intensity assigned to a light that is being created, a CEL expression saying what scene graph locations to touch, etc.
scene graph: all of the scene graph locations together, organized hierarchically, with special categories for cameras, geometry, lights, materials and procedurals.
scene graph location: a particular point in the scene graph that has a name, type, and various other attributes, which by convention will have a minimal set of attributes that match the type; e.g.,
polymesh, subdmesh, light, camera, group, material, etc.
attribute: a piece of data on a scene graph location; attributes are organized hierarchically within the location, and may be arrays of substantial amounts of data, e.g.,
material (assigned material), P (vertex positions), N (surface normals), etc.
CEL: a pattern that matches locations in the scene graph; this is used by nodes to decide what parts of the scene graph to operate on.
monitor: the area displaying the results of renders.
viewer: the area displaying a simple preview of the geometric data requested by the user.
args file: an XML file describing how to present node parameters to the user.
procedural: for renderers, this is a program/script that can be run during render time to load more data (so not all data is required to be given up-front). Katana itself interacts with renderers by inserting a Katana procedural into the render, but other procedurals can be inserted by Katana such as a hair instantiation procedural, a crowd instancer, a custom geometry format procedural, etc.
op: an operation on a location in the scene graph; these are usually what actually does the work for nodes in the node graph.
Scenegraph Location Attributes
Katana scenegraph locations can have various attributes, many of them arbitrary based on the needs of the renderer plugin, ops, or even just for users to set and use later in their own scripts and scene changes. Katana has a set of standard attributes that KtoA honors as much as possible, see Katana's online help, Appendix G for the list of standard attributes.
KtoA extends the attributes to account for some Arnold-specific features. Below is each location type that has extensions, and on each page are listed the details for each. KtoA has helper nodes and ops that will set up these attributes for you, but there are situations where you may want to create them yourself.
Locations with Extensions