This document describes notable changes introduced in Katana 6.5:
Native USD Nodes are now available in Katana
More details on the above nodes can be found in their help dialogs.
Incorporation of a Native USD Framework for more customization
Support for utilising custom USD for the USD Native workflow in Katana has been implemented in this release. The source for FnUsdAbstraction, and a readme detailing how to build and use your own custom USD (via the abstraction library) is found within the Katana install under /plugins/Resources/Src/FnUsdAbstraction. This allows use of your own USD in place of Katana's FnUsd library for Native USD workflows. This does not replace the Hydra and UsdImaging libraries used yet.
If you utilise your own USD, you'll also need to rebuild KatanaUsdPlugins to ensure the USD data can be accessed when converting from in memory USD as part of the UsdProcessingEngine, and the UsdInOp used in the UsdToKatana node. If a custom Renderer is used as a Viewport Render Delegate, for importing/exporting USD material or light shaders via UsdIn, UsdToKatana or UsdMaterialBake; the NdrDiscoveryPlugin will have to be available to the KatanaUsdPlugins built against the external USD (for import/export via KatanaUsdPlugins), as well as FnUSD internal to Katana (for Viewer rendering).
In addition, a new CommonNodeInterface and common traversal system, which handles traversal of nodes implementing different processing trees was also added.
NodeUSD is a new Node class for handling USD Native processing andhas a similar interface as NodeGeolib3. NodeUSD nodes use the same Parameter setup, but instead of appending Ops to the OpChain, they append Engines to an EngineChainInterface via _getEngineChain. You may not mix Geolib Ops and USG Engines on the same node. However, you may use SuperTools to combine both. Engines take a set of EngineArgs which can be created using the helper class EngineArgsBuilder. This takes the frameTime, and is utilised when building multiple sample times for rendering and for the future, exporting.
A NodeUSDAPI was added as an interface to the USD Native logic. This can be used to get the UsgSceneManager, which provides access to the currently viewed USD Stage. Manual modifications to this stage will be lost when a re-composition is required by the Node Graph; thus a read only use case is best.
Addition of a new Engine Plug-in system
This allows building custom NodeUSD nodes and custom Engines, which are closely related to Ops in Geolib3, to enable studio specific capabilities to a native USD workflow. The core difference is that Engines will output their own SdfLayer rather than operating on individual hierarchy locations. An Engine can read its incoming Stage data if required, at the cost of additional compositions. This can be done by retrieving the sharedInputEngine(i) and requesting its rootLayer. We recommend masking this rootLayer when creating a stage for inspection, in order to reduce composition time and memory consumption. Engines can operate on a single time sample, or on multiple samples which will be provided by the EngineArgs. The time samples which need to be processed per engine evaluation can be retrieved from the GeomSceneContext.
UI Improvements
Defaulted Native USD Nodes can be distinguishable from Katana nodes with a light-blue background and a blue stripe down the left hand side of the node when placed in the Node Graph tab to improve the readability. Further customization to the background of these nodes can be done in the Colors menu in the Node Graph tab.
Multi-Threaded Live Rendering Updates
Foresight+ Live Render updates are now generated using multi-threaded scene evaluation. This feature may be disabled by setting the KATANA_FORESIGHT_PLUS_RUNTIME environment variable to “classic”.
Cache Eviction Modes
The Geolib3-MT runtime can now use one of three distinct scene data management strategies, and defaults to one of the two new strategies. They are exposed in Render Settings as the following Cache Eviction Modes:
Properties of the New Modes
In addition to their own characteristics, the new cache eviction modes (‘Dependency protecting’ and ‘Continual’) differ from the existing (‘Relaxed’) mode in the following ways:
Removal of the Experimental Runtime
The Geolib3-MT (Experimental) runtime has been removed in favor of the above Cache Eviction Modes.
Introducing expansion-based loading in addition to further controls for loading USD locations in the USD working sets! By default all USD working sets, except Live Rendering, will be disabled. While in this mode, users will be able to view USD location data through deferred recursive expansion of their scene tree. However, this will be disabled when the following working sets are enabled.
USD Viewer Visibility Working Set: When enabled, USD location visibility to the Hydra viewer will be driven by this working set. The states in which each location is viewed will act in the same manner as on the Katana side. Therefore locations can be either included with or without inheritance, or excluded with or without inheritance, matching the same workflow as the Viewer Visibility Working Set seen in the Scene Graph tab. Important to note, if a child location is explicitly included then ancestors will also be visible regardless of their current state.
Payload Working Set: When enabling the Payload Working Set, users can control the loading of each payloads in accordance with USD’s definition of Payload rules; and these will be visualised in the following manner:
To determine if a USD has a payload, and whether that payload is either loaded or unloaded, will be represented in the working set icon as an arrow.
The background color behind the payload arrow indicates which Payload rule is set at each location. These rules are in accordance to the USD definition of Payload rules and are visualised in the working set icon as follows:
Active Prim Working Set: When this working set is enabled, a user can control whether a USD prim is included or excluded from their stage using this working set. The workflow to represent how a prim is loaded and included in your USD stage will be the same as the Payload Working Set. Therefore, to determine whether a USD prim is either active or inactive will be presented by the power icon. When the power icon is:
Whereas the background color represents the various states, therefore:
The Attributes tab now shows USD property values!
Any selected USD location made in the Scene Explorer tab will show its property values in Katana's existing Attributes tab.
As part of this feature, the Attributes tab has been repurposed to show the appropriate information for any selected USD location. Therefore the following will now be supported in the Attributes tab:
Added support for OpenVDB Volumes in Hydra, UsdVol importing via UsdIn and UsdToKatana, and new Volume attribute conventions which can be found in the developer-guide AttributeConventions/OtherTypes.
Copyright © 2024 The Foundry Visionmongers Ltd.