Katana 7.0v1 Release Notes

Release Date

01 November 2023

Previous Releases

Katana 6.0v3 Release Notes

What's New in Katana 7.0

These release notes describe changes from Katana 6.0v3 to 7.0v1.

For a high-level overview of important changes in the Katana 7.0 line, please see the accompanying What's New in Katana 7.0 document.

New Features

OpenVDB in Hydra

  • 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.

Attributes Tab

  • 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:

    • Either a Kind or Type icon will be shown to the left of a USD location path name
    • Users can interchange between any pre-selected Katana or USD location using the history dropdown menu located to the right of the location path name in the Attributes tab.
    • Location attribute values now show both USD Attribute or Relationship values
    • State Badges will adjust to reflect whether the USD attribute value has been either Authored (L in yellow) or Defaulted (D in gray)
    • Selecting the help button (? to the left of each attribute value) will show the Attribute description

Scene Explorer

  • 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.

    • No arrow: The location does not have payload
    • White arrow: The location has an unloaded payload
    • Black arrow: The location has a loaded payload

    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:

    • Red = None, is an exclusive inheritance blocker (the location with this rule is not loaded or descendants)
    • Yellow = One, is an inclusive inheritance blocker (the location with this rule is loaded but not descendants)
    • Purple = All, implies descendants are loaded, except for the above
    • Light blue = There is no rule set at that location, but the location is loaded. This can happen because:
      • There is an upstream "All" rule, or
      • There is a downstream "One/All" rule.

    Note:  Blocked inheritance can be overridden if a descendent is to be loaded (with a One or All rule). This is only feasible in USD.

    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:

    • White = a prim is inactive
    • Black = a prim is active

    Whereas the background color represents the various states, therefore:

    • Red = a prim is inactive and thus excluded from their USD stage
    • Yellow = a prim is active and thus included in their USD stage

    Note:  A cyan dot over the Active Prim Working Set icon indicates that a rule had been specified at that location.

USD Native

  • 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.

    • IMPORTANT NOTE: At this time users cannot customize the blue stripe on any Native USD node.
  • Merge node changes The Merge node is now a SuperTool which merges both Geolib and USD nodes. Merge nodes in Katana projects created with previous versions of Katana are upgraded when the project is loaded. The old Merge node parameters are now under a GeolibMerge group parameter but the use of getParameter to access them is backwards compatible, i.e. both mergeNode.getParameter('showAdvancedOptions') and mergeNode.getParameter('GeolibMerge.showAdvancedOptions') are equivalent.

    Calls to getSourcePort on nodes immediately downstream of the new Merge SuperTool will return the final internal node to this SuperTool and not the Merge node itself.

  • Native USD Nodes are now available in Katana

    • UsdActiveSet, UsdAttributeSet, UsdMetadataSet, UsdRelationshipSet, UsdTransformSet, UsdVariantSet
      • These nodes allow for setting attribute or metadata on prims with overrides.
    • UsdSublayerAdd, UsdInheritSet, UsdReferenceSet, UsdPayloadSet, UsdSpecializeSet
      • Part of the Local, Inherits, VariantSets, References, Payload, Specializes (LIVRPS) composition structure, these nodes allow you to specify the settings for each composition arc on one or more prims as an override, with the exception of UsdSublayerAdd, which simply adds the provided asset as a sublayer.
    • UsdLayerWrite, UsdPythonWrite
      • These are more expansive nodes which allow complete customisability of what's getting written to the node's engine layer via a simple parameter interface.
      • UsdPythonWrite has been hidden behind an environment variable KATANA_ENABLE_USDPYTHONWRITE_NODE to ensure it does not cause unwanted slowdown at render time due to it spawning a Python interpreter as part of its Engine.
    • UsdPrimCreate
      • Allow creation of a prim, and specifying its PrimSpec. Can also specify the ConcreteType of the Prim, and populates its attributes.
    • UsdSchemaSet
      • Provides a fully dynamic way of finding available schemas and provides an auto-populated interface for applying them to prims on the stage.
    • UsdPrimvarSet
      • This node provides a simple way to set the attributes and metadata necessary for defining primvars on a prim.

    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.

    • An example: UsdPolygonCreate node and PolygonEngine can be found under plugins/Src/UsdProcessingEngine

Performance

  • 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:

    • Dependency protecting (default)
      • The Cook Dependency Tracking (CDT) runtime variant tracks cook dependencies so that the periodic scene data eviction process is able to preserve only data whose re-use is anticipated for any current scene traversal, and (optionally) most recently used (MRU) data.
      • IMPORTANT NOTE:
        • Renderer plug-ins that cache Scene Graph Iterators can cause problems with CDT eviction due to over-protection. Scene Graph Iterator based cook protection can be disabled by setting the KATANA_GEOLIB_CDT_ITERATOR_PROTECTION_ENABLED environment variable to ”0”, in which case Render Settings should be configured to enable some level of MRU cook protection instead (set to protect more cooks than the number of render threads).
    • Continual
      • This runtime variant enforces a hard limit on the size of the scene data cache, specified as a fixed number of Cook Results (each representing a Scene Graph Location at a given Op), or alternatively, automatically based on available system memory and user-specified parameters. Eviction operates on a per-thread Least Recently Used (LRU) basis.
    • Relaxed (previous standard)
      • This runtime variant is the previous Geolib3-MT standard.

    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:

    • Cache pre-population is not implemented.
    • CookInterface::prefetch() is a no-op: Op cook dependencies are evaluated on demand.
    • No scene data is preserved indefinitely by default.

    Removal of the Experimental Runtime

    The Geolib3-MT (Experimental) runtime has been removed in favor of the above Cache Eviction Modes.

    Note:  For all geolibRuntimes the the following environment variable was defined in Katana's renderboot process KATANA_GEOLIB_RENDER_METHOD_TYPE. This will only be set during a render and will present three possible values (‘diskRender’ , ‘previewRender’ or ‘liveRender’); otherwise it will be empty.

VFX Reference Platform CY2023

  • As part of this release we have updated to VFX Reference Platform 2023. Some highlights of the specific versions are included below but for a complete list, please refer to the Developer Guide.

    VFX Reference Platform 2023 Katana 7.0
    GCC 11.2.1 11.2.1
    glibc 2.28 2.28
    Windows Toolset Visual Studio 2022 Visual Studio 2022
    Windows SDK 10.0.19041 10.0.19041
    Python 3.10.x 3.10.10
    Qt 5.15.x 5.15.2 (modified)
    PyQt 5.15 5.15.9
    OpenEXR 3.1.x 3.1.4
    OpenSubdiv 3.5.x 3.5.0
    Alembic 1.8.x 1.8.3
    OpenColorIO 2.2.x 2.2.1
    Boost 1.80 1.80
    Intel TBB 2020 Update 3 2020 Update 3

    Outside of the VFX Reference Platform, we have also updated to USD 23.05

Feature Enhancements

3Delight

  • The version of 3Delight that bundled with Katana has been upgraded from version 2.9.8 to version 2.9.53. For more information, refer to the 3Delight for Katana Changelog.

Hydra Viewer

  • The Katana Scene Delegate will now return light parameters via the `getMaterialResource()` as a `HdMaterialNetworkMap`, in addition to, the `getLightParamValue()` methods.

  • Toggling the Display > Default Lights checkbox supports removing and adding lights in the Viewer from the USD scene graph.

  • Objects from the Katana scene graph can be snapped to both Katana and USD Native scene objects.

  • Due to performance issues with terminal warnings from USD 23.05, `USD_SHADE_MATERIAL_BINDING_API_CHECK` has been set to `allowMissingAPI` by default. Any value set in the local environment will override this. Older USD Native USD stages missing UsdMaterialBindingAPI on Prims with `material:binding` will no longer create terminal warnings when parsing through the UsdImagingDelegate.

Hydra Viewer: USD Scene Delegate

  • Toggling the View > Volumes checkbox supports volumes in the Viewer from the USD scene graph.

Katana <> Nuke

  • Support for Nuke 14.1 and Nuke 15.0 has been added to the Nuke Bridge.

    Nuke 15.0 only supported since Katana 7.0.

Performance

  • The Render Settings have been extended to support the two new caching strategies for the Multi-Threaded runtime, Geolib3-MT. The new caching strategies are Dependency protecting (default), Continual and Relaxed (the default caching strategy available prior to Katana 7.0). The following new attributes and defaults are created to support these new caching strategies:

    Shared:

    • cacheEvictionMode: 'Dependency Protecting'

    For Dependency protecting:

    • sceneTraversal.cache.evictionTriggerTimeInterval: 1000
    • sceneTraversal.cache.evictionTriggerCookCount: 0
    • sceneTraversal.cache.mruCookProtectionCount: 0

    For Continual:

    • sceneTraversal.cache.cacheLimitingMode: 'Fixed cache size'
    • sceneTraversal.cache.cacheSize: 1000000
    • sceneTraversal.cache.lightMemoryLevel: 70
    • sceneTraversal.cache.lightEvictionCount: 1
    • sceneTraversal.cache.mediumMemoryLevel: 80
    • sceneTraversal.cache.mediumEvictionCount: 2
    • sceneTraversal.cache.heavyMemoryLevel: 90
    • sceneTraversal.cache.heavyEvictionCount: 3

    Katana files created on versions prior to 7.0 will be upgraded to reflect the previous caching strategy to ensure functional equivalence. When loaded into Katana 7.0, cacheEvictionMode will be set to 'Relaxed'. The 'Geolib3-MT (Experimental)' runtime is no longer supported.

Rendering

  • ID 524536 - Registering a custom, renderer-specific node (or SuperTool) in the Network Material context would prevent the Node Graph tab's layered menu from being populated with existing renderer-specific shading nodes.

Scene Explorer

  • It is now possible to toggle the splitter orientation in the Scene Explorer via the Katana or USD tree view header context menu. The splitter position and orientation is now saved in the layout.

  • The USD tree in the Scene Explorer tab now shows the pseudo-root ('/') as the root prim location.

  • WorkingSet instances can now be initialised with a given root path, defaulting to '/root', the Geolib root path, if not provided. It is now an error to use paths that are not part of the tree with the given root.

  • The default Katana layouts (Lighting, Lookdev, Monitor, Rendering) now include a Scene Explorer Tab over a Scene Graph Tab.

  • When the USD Visibility Working Set column is enabled, it applies Visibility rules and behaviour equivalent to that of the Katana Scene Graph. The states Included, IncludedWithChildren, Excluded and ExcludedWithChildren can be set at locations in this Working Set. Imageable prims at Included locations are visible.

    Note:  Imageable prims at locations with Included descendants will be visible, regardless of their local rule.

  • When the USD Visibility Working Set column is disabled (default), only expanded locations will be visible in the viewer.

    Note:  For instanced primitives, the location which defines the instance or instancer must be exposed for the instanced prims to be visible.

  • Render, Live Render and Visibility working set icons have been updated.

  • Icons in the Scene Explorer now convey working set state and USD native properties more consistently.

    • When the working set is inactive a grey circle surrounds it and the icon is desaturated. When the working set is active a black circle surrounds the icons representing state.
    • Working set locations now have a background colour only if there is a local state, or if they inherit a state or derive a state from a descendent.
    • For the Payload and Active Prim working sets (USD only), the foreground glyph indicates whether the location is loaded/active respectively. The glyph will either be absent (there is no payload), or black (indicating it is loaded / active) or white (incidating it is unloaded / inactive).

UI

  • PyQt5 and PyQt5WebEngine updated to 5.15.9 and 5.15.6 respectively.

  • The blue sidebar on USD nodes would not dim with the node.

UI Improvements

  • ID 373475 - Graph State Variable parameters wouldn't respect the 'widget' hint string if supplied.

    A new 'hiddenVariables' parameter has been added to the root node and the Project Settings tab. It accepts a comma separated list of variable names which you want hidden from the UI.

  • UsdIn* nodes have been to moved to a 3D Nodes > UsdIn category and all USD Native nodes are now categorized under a USD Nodes heading

USD

  • ID 533271 - When prim's purpose attribute was set to "guide", visibility was set to on(1).

  • Katana has been upgraded to use USD 23.05 by default.

USD Export using UsdMaterialBake

  • When baking materials with UsdMaterialBake node, MaterialBindingAPI was not applied to the Prim with the material binding Relationship.

USD Native

  • The UsdPythonWrite node no longer shows up in menus unless the environment variable KATANA_ENABLE_USDPYTHONWRITE_NODE is set to 1

  • A describe() method has been added to the Engine class to summarise a USD Native Engine and its arguments. The EngineRegistry class can describe any Engine and serialise it to a string in the JSON format.

    The EngineRegistry instance was added to the UsdProcessingEngine Python Module with two methods available: - getAllEngineNames() and describeEngine(engineName)

  • usd context has been added to aid in AssetAPI implementations when dealing with paths which will be parsed by USD's AR Resolver within the Native USD toolset. It is also accessible via the constant in `FnAssetSuite`, `kFnAssetContextUsd`.

  • A new UsdPrimvarSet node has been added to provide an easier way of setting prmvar data on prims.

  • Additional list editing options have been added to some of the composition nodes to allow the user to "reset to explicit" and "delete". These options are to supplement "prepend" and "append".

  • The Merge node has been refactored to collapse it down to a single node. This will stop any scenes saved in Katana 6.5 Alpha 1 and Katana 7.0 Alpha 1 from being loaded. Scenes saved in versions of Katana prior to 6.5 Alpha 1 and 7.0 Alpha 1 will load successfully.

  • UsdPrimCreate did not account for each Attribute's variability definition from the schema, and would set time samples for Attributes specified as uniform by the schema.

USD Nodes and Engines

  • Use the usdSceneExplorerLocationArray widget hint to enable similar functionality for importing and exporting selections to the existing scenegraphLocationArray widget for the USD section of the Scene Explorer tab.

UsdLux

  • ID 471827 - UsdLux radius/size/length attributes imported with UsdIn node did not work

Bug Fixes

Catalog

  • ID 555499 - Deletion of Render Catalog Items did not free image memory, neither immediately, nor during interprocess garbage collection (the time interval for which is set by KATANA_INTERPROCESS_GC_TIMEOUT_SECONDS, defaulting to 30 minutes).

GafferThree

  • ID 540205 - When adopting a template material for editing in one GafferThree node from another GafferThree node, the template material would not become editable and an error message would be logged in the Messages tab.

Hydra Viewer

  • ID 546798 - When a faceset included all the faces of a object, and a material was assigned to it, the material did not display correctly in Viewer

  • ID 548901 - When selecting RenderMan RIS in Viewer, Color temperature in lights did not work correctly.

  • ID 551682 - wrapS and wrapT could be ignored when rendering UsdUVTextures in the Viewer.

  • ID 552743 - Wireframes drawn around lights and bounding boxes were drawn as geometry by some Render Delegates, blocking the light in the Viewer tab.

Miscellaneous

  • ID 534463 - When using multiple Scene Graph and/or Scene Explorer tabs:

    • The view navigation History across multiple Scene Graph and/or Scene Explorer tabs is now shared.
    • The view navigation history now retains history of multiple selections.
    • The pop up menu for the navigation history now truncates the number of displayed items to 2 to improve readability.
    • The pop up menu for the navigation history allows you to "Clear Past" and "Clear Future" rather than just "Clear History".
  • ID 536774 - When more than one Parameter Panel tab was open, they all contributed to the navigation history, causing duplication.

    • The edit navigation history across multiple Parameter tabs is now shared.
    • The pop up menu for the navigation history now truncates the number of displayed items to 2 to improve readability.
    • The pop up menu for the navigation history allows you to "Clear Past" and "Clear Future" rather than just "Clear History".

Network Materials

  • ID 544035 - Network Material Edit nodes would delete the renderer specific GlobalStatments attribute group if they had been set upstream. (This issue was a regression in Katana 6.0v1.)

  • ID 545860 - When using a NetworkMaterialEdit node on imported Materials, only default values were being displayed for parameters on Shading Nodes.

NetworkMaterialEdit

  • ID 554857 - When using the NetworkMaterialEdit node to view promoted parameters, the Sources and Order tab of the Material Interface would not show the correct information, and an error would be shown in the terminal.

NodeGraph

  • ID 551314 - When hovering over a node in the Node Graph tab and pressing Enter, the feature did not consistently allow renaming of the node.

OpScript

  • ID 519465 - Error messages from the Imath.Frustum class are now more informative. For Katana >= 6.0 added additional exception throwing function prototypes for aspectExc, normalizedZToDepthExc and screenRadiusExc.

Parameters

  • ID 541856 - When a parameter in a node type configured with the EnableableParameterPolicy was deleted while being visible in a widget and set to show the node's default value, a crash could occur.

Performance

  • ID 538939 - Live Renders would become unresponsive and stop processing updates following a change to the render camera.

  • ID 551504 - Flushing caches during a Live Render would cause error messages to be printed and the Live Render to stop responding to updates.

  • ID 552996 - Geolib3-MT in 'Dependency protecting' cache eviction mode could fail to protect the last cooked location's scene data from time-interval-triggered eviction.

  • ID 553343 - Geolib3-MT in 'Dependency protecting' cache eviction mode could clear all scene data on eviction when Op Tree Optimizations are enabled.

  • ID 554413 - Live Renders using the 'Dependency protecting' cache eviction mode could randomly crash during initialisation.

  • ID 554593 - Live Renders using Geolib3-MT could randomly crash when there were a lot of or expensive Ops which were not thread-safe.

Python

  • ID 411783 - When triggering LiveGroup pre and post publish callbacks, the behaviour was inconsistent between them being triggered in the UI and through Python.

  • ID 505743 - Updated usage of PyQt to remove implicit conversions of float to integers.

  • ID 542592 - When using Katana with a Python 3 version, Python parameter expressions with some mathematical (>=, <=, >, <, ^, &, |, >>, <<) operators would fail. (This issue is a regression in Katana 5.0v1.)

Scene Explorer

  • ID 544072 - A tooltip now appears when you hover the mouse over the headers of working set columns in the Scene Explorer tab, which provides a brief description of their respective functionality.

  • ID 544716 - When Katana was closed with a detached Scene Explorer tab, a QBasicTimer warning was displayed.

  • ID 546072 - Render Only Selected Objects now renders children of the selected locations. This is equivalent behaviour to the Scene Graph tab.

  • ID 546301 - USD locations with payloads are now shown in the Scene Explorer tab's search results, regardless of whether they are loaded.

  • ID 547266 - Selections in the Scene Explorer tab wouldn't highlight the entire row.

  • ID 550807 - The Scene Explorer tab would attempt to search for locations when typing after it has focus, this interfered with other hotkeys, such as for framing to the current selection in the Viewer tab ('F').

  • ID 552053 - Restoring a USD or Katana view after loading a saved layout where it was collapsed no longer results in a hidden view or unexpected behaviour.

  • ID 552251 - USD Native light visibility did not update on changes to Viewer Visibility scope.

  • ID 554180 - The USD Viewer Visibility Working Set did not respect the Excluded state on descendants of locations with the IncludedWithChildren state.

UI

  • ID 522847 - Attempting to Resize All to Contents in the Scene Graph tab's header would emit Python deprecation warnings.

  • ID 544287 - When Katana was launched in Rocky Linux 9 systems (or equivalent), help dialogs would appear empty as the QtWebEngineProcess failed to start.

  • ID 544721 - Changing the Parameter Hints on a Parameter using the ArrayFormWidget from being resizable to being of a fixed size caused the UI to incorrectly still show a scroll bar which when scrolled would cause index errors.

  • ID 549487 - Existing native USD nodes have changed their flavor from usd to nativeusd. Nodes which exhibit the nativeusd and not the 3d flavor are displayed with a blue sidebar. New native USD nodes need to be registered with the nativeusd flavor to display correctly.

  • ID 551320 - The node color picker would raise an exception or deprecation warning.

UI Improvements

  • ID 513811 - Removed error message caused by adding custom columns to the SceneGraph. (This issue was a regression in Katana 5.0v1.)

  • ID 545838 - When toggling the edit or view flag on nodes, the navigation history didn't store an empty state. These are now shown as <none>.

USD

  • ID 551053 - On Linux, when an external USD library was set up in Katana, part of the library would clash with Katana's Foundry-namespaced USD library, resulting in wrong or undefined output.

USD Import

  • ID 536034 - For a UsdSkel asset with multiple variantSets, if a variantSetName under the UsdInVariantSelect node was switched to a different one with the selection under the variantSelection field unchanged and belonging to the previous variantSetName, Katana crashed.

  • ID 536530 - Binding information on instanced UsdSkel prims imported through the UsdIn node will correctly apply to meshes when using the expanded instance mode.

USD Native

  • ID 544246 - When right-clicking a USD Native node, no Live Render option was present in the context menu.

  • ID 553266 - After using the Object Surface or Object Surface or Object Surface - Oriented to Normal snapping mode, picking locators in the viewer would fail to select the corresponding location.

  • ID 554192 - The Viewer tab was not respecting the Visibility attribute of USD prims in Katana.

USD Nodes and Engines

  • ID 544535 - The key tokens for conditional visibility for node parameters were incorrect in the dev-guide.

  • ID 549588 - When changes in the type parameter in UsdPrimCreate were undone, unexpected undo entries could be inserted in the undo history.

Known Issues

Catalog

  • ID 114182 / BZ 49288 - When exporting a Catalog item you need to specify the export folder path to an existing folder. If the folder you're trying to export to does not exist on disk Katana will fail to export. (This issue is a regression in Katana 2.0v1.)

Hydra Viewer

  • ID 427252 - Locators created via PrimitiveCreate nodes can be snapped to in all modes, rather than just the Lights, Cameras, and Locators mode.

  • ID 420882 - Changing between the Viewer (Hydra) tab's multipane layout options quickly can cause a crash or many error messages to be written to the terminal/console.

  • ID 380129 - Use of non-conformant GL anti-aliasing modes that employ supersampling reduces rendered point size by the supersampling scaling factor. Katana currently employs any reported anti-aliasing mode (up to a maximum sample count of 16): as a workaround, change the viewerHydra.antiAliasing preference to a lesser anti-aliasing mode.

  • ID 352167 - Textures loaded from Hydra shaders are not cleared or reloaded from disk when flushing caches.

Live Groups

  • ID 85118 / BZ 41152 - When editing parameters of a node that is part of a LiveGroup node and reloading the parent LiveGroup node, the UI state of the Parameters tab is reset. This includes scroll bar positions, selections of items, and selections of nested tabs (for example Object, Material and Linking tabs for a Gaffer node).

  • ID 84998 / BZ 41092 - When reloading a LiveGroup node's parameter interface and contents from its source, parameters of child nodes that are edited in floating panes disappear from those panes.

  • ID 84020 / BZ 40598 - Reverting a LiveGroup node does not revert its user parameters.

  • ID 84018 / BZ 40600 - Undoing a revert of an unpublished LiveGroup node does not restore the LiveGroup's editable and modified state.

  • ID 83061 / BZ 40237 - Nodes can be dragged into the Group bubble of a non-editable LiveGroup node.

Materials

  • ID 442604 - When "exploding" a NetworkMaterialEdit node in the Node Graph tab into its parts by selecting it and choosing Edit > Explode Selected Groups or pressing the U key, Python exceptions are raised.

  • ID 429775 - NetworkMaterialEdit nodes do not currently respect local Graph State changes, for example as performed by VariableSet nodes downstream.

  • ID 429302 - When editing a locked node inside a NetworkMaterialEdit node graph, the parameters will be shown at their default state.

  • ID 427408 - When entering a NetworkMaterialEdit node whose sceneGraphLocation parameter is empty, warnings are logged by the Geolib3 Runtime.

  • ID 423341 - In a NetworkMaterialEdit node graph, connections can be displayed incorrectly if a node's name begins with a number.

  • ID 402064 - In a ShadingGroup node graph, the connection between a Dot node and a shading node port can be wrongly colored in some cases.

  • ID 269449 - Choosing Edit Shader Parameters from the main wrench menu of Material nodes does not show wrench buttons next to shader parameters. This can be worked around by toggling the edit flag on the node. (This issue is a regression in Katana 2.5v1.)

  • ID 199304 - The namespace parameter on Material nodes wrongly allows the insertion of Unicode codepoints outside the ASCII range.

  • ID 191052 - Katana does not have any support for the texture reference object workflows of V-Ray for Maya.

Parameter Expressions

  • ID 188533 - Expressions linked to non-local parameters on not previously edited Material nodes can't be evaluated.

  • ID 105434 / BZ 47520 - Reference Expressions may not refer to dynamic parameters such as shader parameters.

  • ID 60457 / BZ 31790 - Setting an array or group parameter to an expression results in an invalid expression. Upon setting a valid expression (for example, an evaluation of an equivalent parameter on another node using getParam), the parameter is not immediately updated. To workaround this issue, close and reopen the parameter, or flush caches while the node is not edited.

Performance

  • ID 105424 / BZ 47518 - Expressions using getParam to link to dynamic parameters would fail if the dynamic parameters hadn't yet been cooked.

Python

  • ID 496659 - When loading a website into a PyQt5.QtWebEngineWidgets.QWebEngineView widget, warning and error messages may be issued by the underling Qt WebEngine classes, leading to certain websites not being displayed correctly, or not being displayed at all. (This issue is a regression in Katana 4.5v1 / Katana 5.0v1.)

  • ID 494168 - In the Katana Developer Guide, some members of C++ classes that are marked as friend incorrectly appear as friend friend. (This issue is a regression in Katana 5.0v1, and may be related to an issue in Breathe.)

Rendering

  • ID 524428 - Misleading error messages can be shown in the Render Log when live rendering with 3Delight.

  • ID 523574 - Sourcing an aces v1.3 colour profile can cause Katana to crash when rendering with renderer plugins that don't currently support aces v1.3

  • ID 381284 - The 3Delight renderer plug-in makes use of source material locations rather than resolved material attributes as a means of de-duplication. This can result in material data being lost when excluding material locations from the Render Working Set during a Live Render session.

  • ID 176598 - Use of nodes that modify Graph State Variables in Interactive Render Filters is not currently supported.

  • ID 74799 / BZ 36926 - The rendererSettings > displayOptions parameter of a RenderOutputDefine node for the PRMan renderer, shown when its type parameter is set to 'raw', cannot be set using the Parameters tab.

  • ID 70217 / BZ 36176 - The 2D node Disk Render Upstream Render Outputs option does not use the batch render method, batchRender, for upstream render nodes, instead using diskRender.

  • ID 70016 / BZ 36137 - Rendering repeatedly with a large number of AOVs consumes more and more memory, possibly leading to a crash when running out of memory.

  • ID 12517 / BZ 16168 - Only one Monitor tab may display the results of a Preview Render. The use of multiple Monitor tabs is not currently supported.

UI

  • ID 373702 - Clicking in the Viewport and pressing a shortcut whilst the mouse is hovered in another widget will still send the event back to the 'focused' Viewport widget, for shortcuts where the widget hovered over does not handle the shortcut.

  • ID 208802 - Closing the Histogram tab after use leaves the Monitor tab unable to display rendered images.

  • ID 123558 / BZ 50911 - When changing an array parameter's tuple count/size, any corresponding attributes are not properly updated in the Attributes tab.

  • ID 112544 / BZ 49051 - The Viewer tab may lose sync with the Scene Graph tab when changes to expansion state are interrupted.

  • ID 107038 / BZ 47853 - Indication of attribute source nodes (such as the yellow 'glow' in the Node Graph tab) is unavailable as of Katana 2.0v1.

  • ID 71965 / BZ 36691 - State badges are currently shown for attribute values of dynamic array child parameters, even though only their parent array parameter should appear with a state badge.

  • ID 65347 / BZ 34949 - Using Compiz can lead to text fields not receiving focus events correctly due to an incompatibility between Compiz and Qt. Depending on your configuration, disabling Compiz "desktop effects" may resolve the problem.

USD

  • ID 468287 - UsdIn is not retaining expanded view state information for shading nodes in a Network Material context.

Windows

  • ID 381692 - (Windows only) When logging out and logging back in again, the colors in the UI are incorrect. For example, certain parts of certain types of tabs may appear with a white background color. (This issue is a regression in Katana 3.1v1, possibly caused by QTBUG-52728 - Paint bug and palette errors after some events in Windows)

  • ID 344118 - (Windows only) When installing Katana and opting to install the bundled version of 3Delight, the installation of 3Delight is made by modifying system-wide environment variables such as KATANA_RESOURCES. Thereafter, launching any version of Katana will pick up this installation of 3Delight, which may be incompatible with the version of Katana being launched.

    Note:  This issue does not affect Linux, where a bundled 3Delight installation is tied to its corresponding Katana installation.

  • ID 218742 - (Windows only) Katana must be installed to a path no longer than ~140 characters. Attempting to install to a longer path results in an unintuitive error: "The system cannot find the path specified."

Miscellaneous

  • ID 84326 / BZ 40709 - The Alembic library does not support multiple process or thread access to an Alembic file. This means that a crash occurs when modifying an Alembic file outside Katana, while it's loaded in an open Katana scene. To avoid this, you must Flush Caches before attempting to update any modified Alembic files.

  • ID 80738 / BZ 39261 - Operations that lock and unlock nodes do not currently create entries in the Undo History, which can lead to an incorrect node graph state when undoing and redoing operations.

  • ID 70196 / BZ 36170 - Control keys (notably arrow keys) do not function as expected in shell mode.

System Requirements

Officially Supported Operating Systems

  • Windows 10 64-bit or higher
  • Linux 64-bit operating system (Rocky Linux 9)

Hardware Requirements

Minimum Recommended
CPU Dual-core processor
Storage 2.5+ GB available for installation
System RAM 1+ GB available
Graphics RAM 1+ GB available 2+ GB available
Display 800 x 600 1920 x 1080
OpenGL OpenGL 4.5+ (see note below)

Note:  AMD-based graphics cards are currently not supported.

Tested Workstation Hardware

The configurations listed below are those that Foundry have tested with Katana. Due to the constantly changing nature and wide variety of computer hardware available in the market, Foundry is unable to officially certify hardware. The list below can be used as a recommendation and does not guarantee that it meets your particular needs.

  • NVIDIA Quadro RTX 4000

  • NVIDIA Quadro RTX A4000

  • NVIDIA Quadro RTX A3000

  • NVIDIA Quadro P4000

Please download and install the latest graphics driver from the NVIDIA website.

If you encounter any issues, please contact Customer Support directly through the Support Portal at the following address: https://support.foundry.com.