Katana 5.0v4 Release Notes

Release Date

18 August 2022

Previous Releases

What's New in Katana 5.0

These release notes describe changes from Katana 5.0v3 to 5.0v4.

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

Feature Enhancements

Instancing

  • ID 512508 - When the same location was used multiple times in an instance source array, only the instances of the first occurrence would be displayed in the Viewer tab.

Configuration

  • ID 510752 - A new KATANA_PYTHONWARNINGS environment variable has been added to allow the Python warnings module to be set for Katana sessions. This can be set to any value supported by the warnings module simpleFilter method.

Curves

  • ID 514440 - - Curve widths with primitive interpolation were not written to `geometry.constantwidth`.

    - Katana did not pass width values stored in `geometry.arbitrary.width` to Hydra.

    - UsdIn wrote widths to `geometry.point.width` for non vertex interpolation. UsdIn will now match AlembicIn's behaviour and if these are not of `vertex` interpolation, they will be written to `geometry.arbitrary.width`.

    For example:
    float[] widths = [0,...,n] (
                interpolation = "varying"
            )
    

    and

     float[] widths = [0,...,n] (
                interpolation = "uniform"
            )

    These will be imported in Katana as geometry.arbitrary.width.

Node Types

  • A misleading docstring has been removed from NodegraphAPI's CreateNode function.

Performance

  • A bottleneck in the LiveRenderFilters Op has been addressed, which could slow down Live Renders notably when the scene graph locations being evaluated were deeply-nested.

    Additionally, Foundry::Katana::Util::Path::GetLocationStackStringView(), a string view-based implementation, has been added to the Plug-ins API, which should be preferable over the legacy Foundry::Katana::Util::Path::GetLocationStack() function.

  • Superfluous exceptions raised from FileSeq::isFileSequence() [that were always caught and disposed] were diminishing performance in some cases.

  • File Sequence pattern matching was impacting performance in some cases where regular expressions were constructed for each subject.

  • The behaviour for Foresight+ from 4.5v1 to 4.5v3 (and in 5.0v1 to 5.0v3) was to batch scenegraph attribute updates. The default behaviour from 4.5v4 is to stream those updates to provide initial changes to the renderer faster. In 4.0, or if Foresight+ is disabled, the updates are always streamed.

    To allow customers to revert to the batching behaviour we added a `KATANA_LIVE_RENDERING_BATCH_UPDATES` environment variable. See the Dev Guide for more details.

Bug Fixes

Coding and Debugging Improvements

  • ID 510894 - When the Home key was pressed in a code text editor while a selection existed, the selection would not be deselected if the text cursor happened to be already at the start of the line.

Curves

  • ID 513556 - When rendering curves that were imported through AlembicIn, the curve interpolation scope translate correctly to Katana attributes.

  • ID 513613 - When viewing curves in the Viewer tab, HdInterpolationFaceVarying was being used for curves of type vertex. This has been changed to now use HdInterpolationVarying.

  • ID 514589 - When importing bezier curves through UsdIn, no geometry.vstep attribute was set. This is now set automatically to 3.

  • ID 514618 - When importing bezier curves through the AlembicIn node, no geometry.vstep attribute was set. This is now set automatically to 3.

Foresight+

  • ID 508822 - Foresight+ Live Renders did not receive updates for WorkingSetTerminalOpDelegate Ops. The WorkingSetTerminalOpDelegate now necessarily configures Ops using the provided Geolib runtime transaction in its appendOp() method, not an untracked transaction committed as part of the update() method. An effect of this is that the delegate's cached Ops are updated only when they are re-applied.

  • ID 512713 - When adding or removing AOVs during a Live Render with RenderMan, the list of AOVs for the Catalog Item in the Monitor tab wouldn't update. (This was a regression from the 4.0 line)

GafferThree

  • ID 506908 - When changing a parameter value of a GafferThree light via the Material subtab in the GafferThree node's parameters after having flushed Katana's cache, the parameter UI would become unresponsive. (This was a regression in Katana 4.0v8)

Hydra Viewer

  • ID 505169 - When viewing curves of scope vertex in the Viewer tab, the curves were considered to have the wrong number of values.

    The mapping between USD Vertex and Varying interpolation styles to Katana geometry.arbitrary.<group>.scope attribute from a UsdIn node for curves has been changed to align with interpolation formula used in GeoLib3 when viewing and rendering the data.

    Old mapping for curves:

    • USD Vertex translates to scope Vertex
    • USD Varying translates to scope Point

    New mapping for curves:

    • USD Vertex translates to scope Point
    • USD Varying translates to scope Vertex
  • ID 509844 - When a primitive's location had errored, the primitive was disappearing and did not reappear in the Viewer tab when the error was fixed. (This was a regression from the 4.0 line)

  • ID 512589 - When curve attributes were changed, they were not updated in the Viewer tab without flushing caches.

Network Materials

  • ID 339147 - When rendering a location that overrides the material assign parameter, `getFlattenedMaterialAttr()` did not update component connection names when renaming node names. This means when connecting components of a port such as `outColor.r`, their values could be ignored by renderers.

  • ID 511468 - The appears as <...> info text label was not shown on certain exposed Network Material parameters. This information is now on for all promoted parameters, regardless of default name, page and label data.

NetworkMaterialEdit

  • ID 512173 - When saving a project with edits inside a NetworkMaterialEdit node, the parameter values were sometimes saved with inaccuracies.

Node Types

  • ID 509971 - When reloading a project, array-based user parameters were not properly preserved on LiveGroups and an error was reported. (This was a regression from Katana 4.0v4)

  • ID 510224 - When loading a macro with a variable multi-input shape like an OpScript node, they failed to load correctly. (This was a regression from 4.5v1 / 5.0v1)

  • ID 513493 - When reloading a project, vector-based user parameters were not properly preserved on LiveGroups and an error was reported. (This was a regression from Katana 4.0v4)

Performance

  • ID 509869 - In a Live Rendering session with Foresight+ enabled (used since Katana 4.5 by default), when many update events were generated in a single iteration, merging the update events for dispatching was a bottleneck.

  • ID 511271 - When a live manipulation in a viewer was produced with Foresight+ enabled (default since Katana 4.5), the UI could become sluggish if the node graph to Op Tree translation was expensive, which can be the case with large node graphs.

  • ID 511573 - When many locations were included in the Live Render Update Working Sets and updates are performed on a single or few locations, the Live Render took long to respond to those updates.

  • ID 512160 - When calling a number of Python methods, an error could occur due to the replacement of the old PyFnScenegraphAttr.

  • ID 513889 - When a Port Op Client was marked as dirty, it would force all Port Op Clients to be re-evaluated. Now only dirtied Port Op Clients are evaluated.

  • ID 515329 - When a Live Render was started with an Op graph that makes significant use of OpScript.Lua Ops, and with a non-trivial live scene from the outset (or early in the render process), the render could fail with a segmentation fault or other memory corruption. The issue only affected Foresight+ Live Rendering.

Rendering

  • ID 506319 - When using RenderOutputDefine node with colorSpace set to linear, there was a SyntaxError.

UI

  • ID 507052 - When using multiple monitors, the GSV dropdown menu would display incorrectly. (This issue is a regression in Katana 4.5v1.)

  • ID 508619 - When the user attempted to close Katana while having unsaved changes, the Quit dialog that prompts the user for confirmation could appear at odd positions in Linux systems, depending on the main window's size and position.

    (This was a regression introduced in Katana 4.5v1 after upgrading to Qt 5.12.)

UI Improvements

  • ID 126090 / BZ 51295 - When assigning a scenegraphLocationArray widget type in an .args file, it did not allow for adding extra paths when displayed in the UI.

  • ID 504202 - When changing the render camera during a Live Render with the Monitor Layer enabled, the Monitor tab would not automatically switch to the changed render camera.

  • ID 509120 - When using the main Katana UI to add or remove Viewer tabs from the layout, Katana could crash.

  • ID 509595 - When instantiating or showing a FilterablePopupFormWidget or something derived from one, an error would occur. (This was a regression from the 4.0 line)

USD

  • ID 501927 - KatanaUsdPlugins built externally would not build against Katana 5.0 due to not finding the correct Boost Python package.

    KatanaUsdPlugins built externally installed the UsdExport modules to the wrong location.

    KatanaUsdPlugins default PXR_LIB_PREFIX was set incorrectly when using Katanas USD at build time.

    KatanaUsdPlugins did not specify the `CMAKE_CXX_STANDARD`.

    KatanaUsdPlugins did not always find pyconfig.h correctly. KatanaUsdPlugins could not find the Linux TBB library when using Katana's TBB libraries.

    KatanaUsdPlugins did not define Katana's `PXR_PY_PACKAGE_NAME` correctly by default when using Katana's USD Libraries.

  • ID 506788 - When trying to bake a bxdf shader outputs using the UsdMaterialBake node, a warning would occur.

  • ID 508782 - Renamed all occurrences of PxrVt to Vt to remove Pxr prefix.

  • ID 509475 - When importing USD scenes with OSL shaders from Prman 24, warning messages about missing shaders were logged.

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

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.