Render Delegates in the Hydra Viewer

Render Delegates are a way to preview lighting, materials, and assets within the Hydra Viewer in the context of your renderer. Delegates allow you to get a richer preview of your work, without the need to set a render, and are fully customizable meaning you have control over the look and optimization of your delegate.

GL Render Delegate (default)

AVP Render Delegate

Katana currently ships with the Advanced Viewport (AVP) as an out-of-the-box GL delegate and can be accessed under the Render Delegate section of the Viewer tab.

Third-party render vendors that support Hydra Delegates can also be used within Katana, but their plugins will need to be loaded into Katana before they can be used.

Note:  For more information about loading plugins into Katana, and creating a launcher script, refer to these Support articles:
Linux: Creating a Katana Launcher Script for Linux
Windows: Creating a Katana Launcher Script for Windows

When using delegates belonging to third-party render vendors, if their shader is present in your project, the delegate automatically defaults to the corresponding shader. For example, a Renderman delegate automatically defaults to using a PxrSurface if it is present in your scene, regardless of any other vendor shaders that may be present. However, render delegates do still support basic materials and default lighting, so renderer-specific shaders are not a necessity.

Viewing USD Purposes

Within delegates, USD files with purposes set up can have their purposes enabled or disabled within the viewer. This allows you to pick and choose what you can and can’t see in the viewer and is useful for optimization.

Purposes can be enabled and disabled by navigating to Display > Purposes and toggling the tick box next to the name of each purpose.

Enabling or disabling purposes are useful for scene optimization. Certain purposes like Render tend to contain higher resolution assets and are heavier on processing as a result. Because of this, disabling Render purposes and enabling something like Proxy or Guide allows you to work on a scene without having to sacrifice performance.

All purpose

Only Render purpose

Only Proxy purpose

Only Geometry purpose

Note:  For more information on USD Purposes, see USD Terms and Concepts: Purpose.

Customizing Your Delegate

Delegates can be customized by accessing the Render Delegate Settings window, available in the Display tab. The settings available in the Render Delegate Settings window will be dependant on the delegate set to that renderer. For example, when set to GL, the settings will ve specific to the GL delegate, while settings specific to AVP will be available when AVP is set.

Delegate Settings for AVP and GL

Within the settings window, you can adjust the quality of the render in the viewer, as well as enable or disable reflections, shadows, and ambient occlusion.

Delegates can also be paused or stopped at any time. The stop/pause setting can be enabled or disabled by toggling Display > Render Delegates Toolbar.

Render delegates will only support stop or pause, but not both. Depending on the delegate, Katana will dynamically call the option that is supported and make it available to you, while the unsupported option is disabled. However, as stop/pause is not supported by GL rendering, these options will not be available when using the AVP or GL delegates.

Being able to pause and stop your delegate is useful, as it allows you to continue to work on heavy scenes without having to sacrifice performance. Once edits are made, you can unpause the delegate and any changes will be reflected in the viewer.

You are also able to modify how selected elements are highlighted within the Viewer when using GL renderer delegates, making selections easier to see. The selection color is also customizable, and can be changed by navigating to Edit > Preferences> Viewer and adjusting the parameter available under selectionColor.

At this time, standard selection modes and their customizable features are not supported when working with non-GL render delegates.