Level-of-Detail Groups
Levels of Detail (LODs) is used to allow an asset to have multiple representations. Katana can then be used to select which representation is used in a given render output.
Conventionally LODs are used to hold a number of asset versions each with a different amount of geometric complexity, such as a high level of detail to use if the asset is close to the camera and middle and low levels of detail if the asset is further away. By selecting an appropriate version of each asset to send to the renderer the overall complexity of a shot can be controlled and render times managed.
In Katana, LODs can also be used to declare completely different versions of an asset for different target outputs, such as a bounding volume representation for a volumetric renderer in addition to standard geometrical representations, such as polygon meshes, to be used by conventional scanline renderers or ray-tracers.
Multiple levels of detail for an asset are declared by having a level-of-detail group location that has a number of level-of-detail child locations. Each of these child locations has metadata to determine when that level of detail is to be used. Under each of these locations you have a separate branch of the hierarchy that declares the actual geometry used for that LOD representation of the asset.
The most common metadata used to determine which level of detail to use are tags or weights. Tags allow each level of detail to be given a 'tag' name with a string. Selection of which level of detail to use can be done using this tag name, such as select the level of detail called 'high' or 'boundingVolume'.
Weights allow a floating point value to be assigned to each level of detail. Selection can then be done by choosing the closest level of detail to a given weight value. This allows sparse population of levels of detail, for example not every asset might have a 'medium' level of detail, but if you select them by weight then the most appropriate LOD from whatever representations exist can be selected.
The LodSelect node can be used to select which one of the LODs to use using either tags or weight values. This uses a CEL expression to specify the LOD groups you want to base the selection on.
Some renderers, such a Pixar's RenderMan, have features to handle multiple LODs themselves. Selection of which LOD to use, and potential blending between the LODs as they transition, is done at render-time. This is specified by having range data associated with each LOD that describes the range of distances from camera to use that LOD for, and the transition range for any blending. LOD range data can be set up using the LodGroupCreate or LodValuesAssign nodes