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.0v6 Release Notes

Contents

- Feature Enhancements
- Bug Fixes
- Known Issues
- System Requirements

# Release Date

10 February 2022

# Previous Releases

- Katana 4.0v5 Release Notes

# What's New in Katana 4.0

These release notes describe changes from Katana 4.0v5 to 4.0v6.

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

### Coding and Debugging Improvements

- The behavior of the Home key in code editors has been changed; the cursor is now placed just before the first non-whitespace character, as opposed to being placed at the very start of the line.

- Auto-indentation capabilities (previously available only in the Python tab) have now been adopted by other code editors such as the Lua editor in OpScript nodes or the CMake/C++ editors in OpWrite nodes.

- Mechanism for aligning cursor to indentation width (previously available only in the Python tab) has now been adopted by other code editors such as the Lua editor in OpScript nodes or the CMake/C++ editors in OpWrite nodes.

- Pressing Ctrl / now toggles line comments in additional code editors, such as the Lua editor in OpScript nodes or the CMake/C++ editors in OpWrite nodes, where previously it was only available only in the Python tab.

- Lua built-in functions such as `ipairs()`, `pcall()`, or `tostring()` are now highlighted in the `LuaSyntaxHighlighter` class, used in the OpScript node type.

### Parameters

- ID 469498 - Limited support for pattern-based matching of locations is now possible in the Isolate node through a new isolateLocations parameter. The following wildcards are supported:

  - * (matches non or more characters)
  - ? (matches one character)
  - [...] (matches any of the individual characters listed in the square brackets)

  Some examples:

  - /root/* (matches all locations directly under /root)
  - /root/prim? (matches /root/primA & /root/primB but not /root/primCD)
  - /root/prim[123] (matches /root/prim1, /root/prim2 or /root/prim3)

- ID 470431 - A new Separator user parameter type which can be used to visually separate and group other user parameter entries is now available.

- ID 484772 - QLineEdit widgets now elides on the left when their size is too small to contain their contents.

- ID 491910 - Capsule widgets can now be added through the Edit User Parameters workflow. The UI supports modification of Capsule contents as well as setting selection exclusivity.

### Rendering

- 3Delight has been upgraded. For more information, refer to the Changelog - 3Delight - 3DL Docs (3delightcloud.com)

- ID 485099 - In order to allow renderer vendors and customers to make use of shadow linking updates during Live Renders, the geoShadowEnable integer attribute is now included in the localizedLightList group attribute, in addition to the existing path, enable, and parentEnable attributes.

### USD

- ID 499854 - Motion Samples are now read for UsdSkel assets when importing with UsdIn if available and the motionSampleTimes parameter is set with multiple fallback sample points

## Bug Fixes

### API/SDK Changes

- ID 486470 - `FnPlatform/StringView.h`, part of the Katana public API, was missing the `<ostream>` header.

### Coding and Debugging Improvements

- ID 485505 - General improvements and fixes for the indentation functionality in code editors (Tab key and Shift+Tab key sequence).

### Deprecated Features

- ID 421434 - The `SynchronousEventProcessingScope()` context manager that is provided by the `Utils.EventModule` module has been marked as deprecated. It has had no effect since Katana 3.1v1, and should no longer be used. It will be removed in a future minor or major release.

### GafferThree

- ID 472201 - When attempting to duplicate a light from a GafferThree that can't be duplicated, unhelpful errors with full python stack trace such as "RuntimeError: Package refuses to be adopted" were displayed.

- ID 476660 - When adding multiple renderers light shaders to a light location inside the GafferThree node, an error message would be written to the console.

### Hydra Viewer

- ID 471235 - When setting a subdivision level to a faceset, it wasn't respected in the Hydra Viewer. (This issue was a regression in Katana 4.0v1)

- ID 476538 - When expanding a faceset location with bounds while in Faces mode, Katana crashed. (This issue was a regression in Katana 4.0v1.)

- ID 479097 - When using multiple Viewer (Hydra) tabs in a layout and making changes to a built-in (virtual) camera followed by starting a Live Render, a Python exception was raised from an event handler for camera changes. (This issue was a regression in Katana 3.6v1.)

- ID 480327 - The viewerPickable parameter for a primitive was not taken into account in the Hydra Viewer. (This was a regression in Katana 4.0v1)

- ID 485147 - When using unsupported characters in expressions used for scene graph location names, notably hyphen-minus characters (`-`), a warning message was logged, and the corresponding objects in the Viewer tab were not displayed correctly. (This issue was a regression in Katana 4.0v1.)

- ID 494234 - Katana could crash while processing changes to displayed proxy geometry in a Viewer (Hydra) tab. (This issue was a regression in Katana 3.0v1)

### Hydra Viewer: Lighting Tools

- ID 490839 - When the Distance manipulator handle, part of the Lighting Tools manipulators, was used on geometry located far away from the world's origin, the manipulator handle was erratic and unpredictable.

### Logging

- ID 494847 - When Katana's CEL parser detected an unrecognized character, notably the hyphen-minus character `-` (ASCII code 45), a somewhat cryptic message was written to the terminal. That message has now been prefixed with `CEL Parser:`, to make the origin of the message a little clearer.

### Network Materials

- ID 481447 - When deleting shading nodes inside of NetworkMaterialEdit nodes, stale references to those shading nodes were left in the resulting material.nodes, material.interface, and material.layout attributes.

- ID 481978 - When using the Network Material context at higher resolutions, especially across multiple monitors and/or with a large number of shading nodes, the refresh rate was impacted. Re-draw performance has been improved by around 60%.

### Node Graph

- ID 94660 / BZ 44410 - When a Macro (that had been saved while its nodes were selected) was added to the node graph, and the nodegraph.autoConnectOnCreate preference was on, the auto-place mechanism would try to auto-connect the Macro to itself, as the nodes in the Macro were, in fact, selected, and therefore were a candidate for the auto-connection.

- ID 484614 - Within the Node Graph, Backdrop nodes can now be placed within another Backdrop node via the node creation menu.

### Node Types

- ID 71692 / BZ 36518 - The eventual name of imported macros are now officially not permitted to be equivalent to the name of the type of the node they represent. Attempting to name these the same will now throw a ValueError.

- ID 233078 - When a Material node in a MaterialStack node was being duplicated, while no view node had been set in the Katana node graph, an exception would be raised.

- ID 498748 - When the target face in an OrientConstraint node was small, the OrientResolver was unable to determine the orientation of the face. This limitation has now been relaxed greatly.

### Parameters

- ID 317214 - TeleParameter widgets did not respect the grid layout of surrounding parameter widgets, in terms of their label and edit widget alignment.

- ID 475375 - When dragging and dropping a material producing node onto a MaterialAssign node, the materialAssign parameter's badge would not be set to Local if it had previously been set to Default.

### Performance

- ID 480325 - When opening the context menu of a node in the Node Graph tab, a synchronous scene graph cook and a 'Manual 3D Update' were triggered, potentially freezing the UI. (This issue was a regression in Katana 3.5v1.)

  With changes introduced in Katana 3.5v1, the intention was to determine the availability of the menu command for starting a Preview Render with Profiling, depending on whether the Geolib3-MT Runtime was chosen in the render settings.

  Renders commissioned with runtime profiling enabled, but configured by render settings to use the Classic Geolib runtime (which were previously precluded by the context menu), now fail with an appropriate error message.

- ID 481971 - When minimizing the OUTPUT sidebar of a NetworkMaterialCreate node that has been entered in the Node Graph tab, CPU utilization unexpectedly spiked. (This issue was a regression in Katana 4.0v1.)

- ID 494852 - When using the Geolib3-MT runtime to traverse a scene with a Merge node as a leaf in the node graph and opTreeOptimizations turned on, a crash occurred.

- ID 497017 - Rendering with Geolib3-MT would occasionally fail in scenes containing Merge and Rename nodes for certain topographies.

### Python

- ID 376677 - General fixes and improvements in the Python tab's auto-completion mechanism.

### UI

- ID 469157 - When selecting a camera or light location through the picker button in the Viewer tab, check the Validate Locations checkbox to grey out any pruned or deleted locations.

- ID 470085 - When loading the FilteringExampleTab or NamePolishingExampleTab, an error occured. (This issue was a regression in Katana 4.0v1)

### USD

- ID 479726 - When setting the isolatePath parameter on a UsdIn node, and then trying to use a UsdInIsolate node, UsdIn failed with an error message: UsdIn: Failed to compute katana path for usd path

  The value of the isolatePath parameter is now prefixed onto the USD stage mask path set up by UsdInIsolate.

  When using isolatePath and UsdInIsolate in the same node graph, the mask created by UsdInIsolate (using Katana scene graph locations) did not take account of the UsdIn mask path which did not contain the locations cut out by setting UsdIn's isolatePath. This meant the USD stage was masked by locations which did not exist, causing errors.

- ID 479729 - When using a UsdInIsolate node to isolate a location that did not exist, Katana crashed.

- ID 482198 - When using the isolatePath parameter on a UsdIn node that is loading a USD asset that uses light lists, UsdIn failed with an error message: UsdIn: Failed to compute katana path for usd path

- ID 485326 - The Developer Guide Copyright Notice for USD now shows the correct text for the current USD version.

### Other Bug Fixes

- ID 193948 - When attempting to copy from the Scene Graph tab with an empty selection, an exception would be thrown.

- ID 475059 - If a value in the geometry.arbitrary.st.index attribute was out of range, Katana crashed without prior warning.

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

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