ScenegraphXML

This is a simple format that uses a combination of XML, together with Alembic files, to represent structured hierarchical scenegraph data. It's designed to provide a format that can be used to read structured assets into Katana, and a reference solution for tools to bring other structured hierarchical data into Katana.

Two different types of scenegraph elements are used to create the scenegraph hierarchy - group instances and reference instances:

A group has a number of child instances, all of which are declared within the same XML file. If the instance list is empty then a leaf location is created.

A reference indicates that the child scenegraph is declared in a separate file. Currently, this can be another ScenegraphXML file or a geometry cache using Alembic.

Since one ScenegraphXML file can reference another, one feature of the system is that you can have multiple levels of referencing.

Each instance in the ScenegraphXML file can also have the following additional information:

A 3D transform (Xform) represented using a 4x4 matrix (1 6 floats).

Bounding box data (6 floats: minx, maxx, miny, maxy, minz, maxz).

Level of detail data, used to control switching between different representations of an asset.

Level of detail data can be either in the form of string 'tags' or floating point 'weight' values (or both).

Paths to proxy geometry files, such as for use in Katana's OpenGL viewer.

Arbitrary metadata using float, float lists, or strings.

Float and float list values in the ScenegraphXML files can be animated using simple single values per frame. These values are held in associated channel data XML files, with a separate file per frame. Any values that are animated are indicated in the ScenegraphXML file by a channel index value, giving the index within the file for the animated value, or the index of the first value for a list.

At the root of the ScenegraphXML is a list of the top level instances of the scenegraph hierarchies described by the file.

Note:  Using ScenegraphXML all the geometry needs to be held in geometry caches. The XML files themselves can only hold hierarchical scenegraph structure, not actual geometry. In the current implementation the geometry caches have to be in Alembic format. See Data Format Description for more information on how the data is structured in the XML files.

Note:  ScenegraphXML is provided as a reference example only. It is not intended for production use and is not supported.