Search Tips

Search is based on keyword.

`Ex: "Procedures"`

Do not search with natural language

`Ex: "How do I write a new procedure?"`

Give Feedback Support Portal

# Katana 4.0v2 Release Notes

## Release Date

15 December 2020

## Previous Releases

- Katana 4.0v1 Release Notes

## System Requirements

### Officially Supported Operating Systems

- Windows 7 64-bit or higher
- Linux 64-bit operating system (CentOS/RHEL 6)

### Hardware Requirements

| Minimum | Recommended
--- | --- | ---
CPU | Dual-core processor
Storage | 1+ 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.3+ (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 M4000

- NVIDIA Quadro P4000

- NVIDIA Quadro K4000

- NVIDIA Quadro K6000

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.

## What's New in Katana 4.0

These release notes describe changes from Katana 4.0v1 to 4.0v2.

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

## Feature Enhancements

### 3Delight

- The version of 3Delight that we ship with Katana has been upgraded to version 2.3.7. For more information, please refer to the 3Delight for Katana Changelog.

### API/SDK Changes

- #### Support for Deprecating Node Types

  Node types can now be marked as deprecated by adding the `'deprecated'` node flavor to them, for example:

      NodegraphAPI.AddNodeFlavor('ScenegraphXml_In', 'deprecated')

  Nodes of node types that are marked as deprecated appear slightly dimmed in the node creation menu of the Node Graph tab, and their node type name appears with a yellow text color and a warning icon next to it in the Parameters tab.

  #### Support for Deprecating Importomatic Asset Types

  Custom Importomatic asset types can now be marked as deprecated by adding the new `Deprecated` class variable to a class that is derived from the `ImportomaticAPI.AssetModule` base class, for example:

       class ScenegraphXmlModule(ImportomaticAPI.AssetModule):

      +    Deprecated = True
      +
           def getAssetTreeRoot(self, node):
               return ScenegraphXmlTreeRoot(node)

  Assets of asset types that are marked as deprecated appear with their asset type name in a yellow text color in the tree view of assets of an Importomatic node that is edited in the Parameters tab.

  It's also possible to move the corresponding menu command for adding an asset of the particular type, for example Add ScenegraphXml, which is normally shown in the menu of the Add button in the user interface of an Importomatic node that is edited in the Parameters tab, to a new Deprecated section, by using the `deprecated` keyword argument in the corresponding `ImportomaticAPI.AssetModule.RegisterCreateCallback()` call, for example:

          ImportomaticAPI.AssetModule.RegisterCreateCallback(
              'Add ScenegraphXml', FindAndAddScenegraphXmlGeometry, deprecated=True)

- ID 462483 - A new Python API function named `GetTabs()`, which can be used for retrieving a list of tabs in the order in which they appear in the Katana UI, has been added to the `UI4.App.Layouts` module:

      UI4.App.Layouts.GetTabs(tabTypeName=None, includeFloating=True, includeDockWidgets=True)

  Parameters:

  - `tabTypeName` (`str` or `None`) – The name of a type of tab whose instances to return, or `None` to return tabs of all types.
  - `includeFloating` (`bool`) – `True` to return tabs that are contained in floating panes as well, otherwise `False`.
  - `includeDockWidgets` (`bool`) – `True` to return tabs that are contained in dock widgets as well, otherwise `False`.

  Returns:

  - `list` of `UI4.Tabs.BaseTab` or `QtWidgets.QWidget` – A list of widgets, typically tabs, optionally of a particular tab type, that are contained in the main window, in floating panes, and/or dock widgets (unless those are not included), in the order in which they appear in the Katana UI.

  Example:

      >>> mainWindowPythonTabs = UI4.App.Layouts.GetTabs('Python', includeFloating=False)
      >>> mainWindowPythonTabs
      [<__plugins22__.EnhancedTerminalTab.TerminalTab.EnhancedTerminalTab object at 0x7fcd537badf8>]

  Note: The new `UI4.App.Layouts.GetTabs()` API function is similar to the existing `UI4.App.Tabs.GetTabsByType()` function, but has awareness of the order in which the tabs appear in panes in the Katana UI, and provides keyword arguments for optionally excluding tabs in floating panes or in dock widgets, similar to other functions in the `UI4.App.Layouts` module.

### Deprecated and Removed Features

- The ScenegraphXML format has been deprecated. This includes ScenegraphXml_In nodes, as well as the ScenegraphXml asset type in Importomatic nodes.

- ViewerMaterialEdit nodes, which worked on an attribute convention of adding viewer shader source code in an attribute named material.viewerShaderSource at desired target locations in the scene graph, are now marked as deprecated. material.viewerShaderSource attributes were only respected in the legacy OpenSceneGraph-based Viewer tab, which was marked as deprecated in Katana 4.0v1, and will be removed in Katana 5.0v1.

### Hydra Viewer: Lighting Tools

- The Lighting Mode button's tooltip has been extended to describe how lights can be created and manipulated via mouse gestures and keyboard modifiers when Lighting Tools are turned on.

### Katana Queue

- ID 459635 - It is now possible to disable Katana Queue features by setting the new `KQ_DISABLED` environment variable to `1`. This will skip the registration of the Katana Queue farm plug-in, and not start the KQ daemon process or any of KQ's Agent processes during application startup.

  A new function has been added to the `kq` Python package that can be used to check whether KQ is disabled: `kq.IsDisabled()`

  Note: When disabling KQ, the Katana Queue tab will still be available in the UI, but will not list any KQ jobs for the duration of the Katana session.

### OpScript

- ID 127289 / BZ 51509 - The bindings for the `Imath` library that are available in the context of Lua in OpScript nodes have been extended with additional classes and functions:

  - Existing vector classes have been provided with the `==` and `~=` operators.
  - Existing vector and matrix classes have been provided with the `[]` operator (zero-based indices).
  - Existing matrix classes have been provided with new functions (e.g. `rotationMatrixWithUpDir()`), or overloads of existing functions (such as `extractSHRT()`).
  - `Imath.M33i` and `Imath.M44i` type definitions have been removed; their presence was rather accidental. The `ImathMatrix.h` file does not include the C++ type definitions for `int`, since performing matrix math on integer types would return insubstantial results.
  - A number of new classes have been added:
    - `Imath.Box2d`
    - `Imath.Box2f`
    - `Imath.Box2i`
    - `Imath.Box2s`
    - `Imath.Box3d`
    - `Imath.Box3f`
    - `Imath.Box3i`
    - `Imath.Box3s`
    - `Imath.Eulerd`
    - `Imath.Eulerf`
    - `Imath.Frustumd`
    - `Imath.Frustumf`
    - `Imath.FrustumTestd`
    - `Imath.FrustumTestf`
    - `Imath.Line3d`
    - `Imath.Line3f`
    - `Imath.Plane3d`
    - `Imath.Plane3f`
    - `Imath.Quatd`
    - `Imath.Quatf`
    - `Imath.Sphere3d`
    - `Imath.Sphere3f`
    - `Imath.V2s`
    - `Imath.V3s`
    - `Imath.V4s`
  - String representations for all classes have been provided.

  The Imath (OpScript) page has been added to the Katana Developer Guide, listing the `Imath` bindings that are now available in the context of Lua in OpScript nodes.

### Python

- ID 46194 / BZ 21042 - The Python tab now remembers the contents of the command area between sessions and when changing layouts.

  Note: When working with multiple Python tabs, and switching layouts, the stored Python code is distributed among the available Python tabs, in the order in which the Python tabs appear in the Katana UI. The contents of the command areas are stored in user preferences when a command area loses the input focus.

### Rendering

- ID 52346 / BZ 25161 - Modifying the render outputs that are included in an interactive render session (in UI mode) is now reflected in the available AOVs that are listed in the AOV selection menu of the Monitor tab.

### UI Improvements

- ID 124899 / BZ 51121 - Customizable keyboard shortcuts have been added to the commands for opening Katana projects that were recently opened, as listed in the File > Open Recent menu of the Katana main window. The default shortcuts for up to 10 recent files are Alt+Shift+<number key>, with number keys ranging from 1 to 0 (for the tenth file), the same as in Nuke.

  Tip: For more information on customizing keyboard shortcuts, refer to the Managing Keyboard Shortcuts page in the Katana Developer Guide.

### USD

- The evaluateUsdSkelBindings checkbox was added to the parameter interface of UsdIn nodes, adding support for importing bound and rigged models with the UsdSkel schema. When turned on, the skinning will be applied to each prim that is bound to a skeleton.

## Bug Fixes

### Gaffer

- ID 456657 - Adopted Master Materials that were created in previous releases of Katana, e.g. Katana 3.6v3, were not updated to the new Template Material naming in Katana 4 correctly, leading to warning messages being logged, and those edit packages becoming unusable. (This issue was a regression in Katana 4.0v1.)

### Geolib

- ID 449983 - A use-after-free memory access issue in Geolib3-MT optimization pass has been fixed.

### Hydra Viewer

- ID 408322 - Katana could crash when, with proxy geometry visible in a Viewer (Hydra) tab, changes to Graph State system args (such as frame time or Graph State Variables) were very closely followed by flushing of caches.

- ID 454031 - Changes of color to the default shader, such as via ViewerObjectSettings or attributes such as geometry.arbitrary.displayColor.value, did not display correctly in Solid or FlatShaded view modes. (This issue was a regression in Katana 4.0v1.)

- ID 458555 - When viewing USD assets with UVs with a point scope, textures were not displayed correctly.

### Hydra Viewer: Lighting Tools

- ID 456548 - Scrollbars in the Lighting Tools' parameter UI in the Viewer (Hydra) tab were overly transparent, making them hard to see and interact with.

- ID 457523 - When a parameter in the Lighting Tools UI was clicked, its value was clamped to its [min, max] range, even if no attempt was made to modify the value by dragging.

- ID 457564 - When making changes to the appearance of parameters in the Lighting Tools UI while the Viewer (Hydra) tab was maximized, the input focus unexpectedly moved to the In frame input widget on the Katana timeline.

- ID 457815 - When a light was included in the Viewer Visibility Working Set, but its ancestors were not, the Lighting Tools Layer, part of the Viewer (Hydra) tab, would not draw the arrow handle of the light. This arrow handle is normally drawn at the light's center of interest when the Lighting Tools are turned on.

### Network Materials

- ID 449956 - When changing the value of the sceneGraphLocation parameter of a NetworkMaterialEdit node while viewing its contents in two Node Graph tabs simultaneously, a Python exception was raised, corrupting Katana's undo history.

- ID 453701 - When attempting to initiate a drag-and-drop action for nodes inside of NetworkMaterialCreate or NetworkMaterialEdit nodes using the Ctrl+B shortcut, a Python exception was raised.

- ID 454884 - When viewing locked Shading Groups inside of a NetworkMaterialEdit node, Backdrop nodes were occasionally incorrectly positioned.

- ID 455245 - When entering a NetworkMaterialEdit node that targets a Network Material that was exported and imported via USD, connections from a contained UsdPreviewSurface node to the terminals in the right-hand sidebar were not established correctly.

- ID 457524 - Tags of ShadingGroup nodes inside of NetworkMaterialCreate nodes were not correctly reconstructed from a Katana project, potentially leading to incorrect coloring and invalid connections being made, or valid connections being rejected.

- ID 458833 - When shading nodes were copy-pasted into a NetworkMaterialEdit node, the material's nodes attribute could fail to update.

### Node Graph

- ID 438929 - When selecting a Backdrop node, nearby, non-intersecting nodes above and below it were unexpectedly also selected. (This issue was a regression in Katana 3.2v1.)

### OpScript

- ID 457926 - The string representation of the `SampleAccessor` class in Lua stated a wrong number of values in the `valueCount` field.

### Python

- ID 457821 - When launching Katana in an environment with `PYTHONPATH` set to a directory containing a `sitecustomize.py` script for site-specific configuration of the Python interpreter, paths added to `sys.path` were wrongly added again when launching render processes, either directly, or via Katana Queue, leading to configuration/setup issues.

  The `KATANA_INTERNAL_PYTHONPATH` environment variable now no longer contains paths that may have been the result of site-specific configuration using `sitecustomize.py` scripts, but rather contains the paths given in `PYTHONPATH` directly. The description of the environment variable on the Environment Variables page in the Katana Developer Guide has been updated accordingly.

### Rendering

- ID 453448 - (Windows only) When choosing the 3D Rendering > Pause Render or 3D Rendering > Resume Render command from the Rendering main menu, a Python exception was raised. (This issue was a regression in Katana 4.0v1.)

- ID 460315 - When using the Disk Render with Dependencies command from the context menu of a Render node with multiple inputs, a Python exception was raised, and the render failed to start. (This issue was a regression in Katana 4.0v1.)

### Scene Graph

- ID 461726 - When configuring a custom column for color attribute data to appear in the Scene Graph tab using Katana's preferences, the resulting column was added to the tab, but wrongly remained blank. (This issue was a regression in Katana 3.1v1.)

### UI

- ID 84084 / BZ 40639 - When dropping scene graph locations onto the Add Locations button of a Scenegraph Location Array widget, or choosing a Replace with... command from the widget's menu, the displayed scene graph locations were not updated correctly. (This issue was a regression in Katana 1.5v1.)

- ID 459565 - When entering the keyboard shortcut of the built-in Undo or Redo command from Katana's Edit main menu (Ctrl+Z or Ctrl+R) as the keyboard shortcut for a new shelf item, they keyboard shortcut was wrongly not flagged as already being used for a built-in command.

  As part of addressing this issue, it is now possible to customize the keyboard shortcuts used for Undo, Redo, and Preferences in the Edit main menu using the `shortcuts.xml` configuration file. For more information, refer to the Managing Keyboard Shortcuts page in the Katana Developer Guide.

## 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 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 84019 / BZ 40599 - Parameters that are added to LiveGroup nodes are wrongly discarded when performing a reload from source, leading to loss of data.

- 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 437433 - When repeatedly changing the value of the sceneGraphLocation parameter of a NetworkMaterialEdit node, the node may fail to populate its contents, and exceptions may be 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 429206 - Parameter expressions when promoted from shading nodes in a NetworkMaterialCreate node are of a constant value, relative to the resolved expression at time of creation.

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

- ID 427353 - NetworkMaterialEdit nodes support editing of network materials that were created by NetworkMaterialCreate nodes only, not network materials that were created with legacy shading nodes in the classic node graph context.

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

- ID 410474 - In a NetworkMaterialCreate context, shading nodes appear to shake during view state changes if the node's width is adjusted.

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

### Rendering

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

### Miscellaneous

- ID 337653 - Katana logs deprecation warnings when loading the `PyMockAsset`, `PyMultiMockAsset`, and `PyMockFileSeq` shipping example Asset API plug-ins.

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

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