Purpose
Purpose is an attribute that can be used to give a prim and its descendants a high-level “visibility flag” in context of rendering.
For example, if a prim has its purpose attribute set to render, it will be excluded from being drawn in a renderer that only wants to draw proxy prims.
In some sense, setting purpose could be considered Stage Traversal but for rendering.
Currently, only 4 values are supported by the purpose attribute:
| Purpose | Description |
|---|---|
default | The prim has no special rendering purpose and it will be included in all rendering paths |
guide | A prim tree marked with guide is generally used by interactive applications that have asked to show “guides”. Think of it as requesting to visualize controller geometry for rigs, skeleton data, etc |
proxy | Proxy is usually reserved for a lightweight representation of another object to be used in an interactive renderer such as a DCC viewport |
render | The “final quality” data to be imaged. Usually enabled for offline rendering or final quality rendering |
Unlike Kind. purpose cannot be extended with custom values!
As seen above, purpose is not an exclusive toggle! It is possible to have both proxy and render purposes active and their contents drawn to the screen.
/root/GEO has its purpose set to render, it will only be drawn when the active renderer requests prims with a render purpose.
/root/GEO_PROXY has its purpose set to proxy, it will only be drawn when the active renderer requests prims with a proxy purpose.


