Release Notes for Katana 2.6v1

Release Date

24 May 2017

System Requirements

Qualified Operating Systems

  • Windows 7 64-bit
  • Linux CentOS/RHEL 6

Hardware Requirements

  • A graphics card which supports OpenGL shader model 4.0

New Features

Viewer API

Katana now includes an API for creating 3D viewers with support for integrating (custom) 3D graphics technology with Katana's user interface. This API is being used by Foundry to develop a new built-in 3D viewer, which is scheduled to ship in a future Katana release. Customers can use the Viewer API to integrate their own viewer technology into Katana, should they wish to do so. Please consult the accompanying KATANA Viewer API: Getting Started Guide for a technical overview of the new Viewer API.

Note:  Foundry anticipates the Viewer API available in KATANA 2.6v1 will be subject to minor revisions in 2.6 v-releases before it stabilises and ships alongside a new built-in Viewer in a future KATANA version. Customers integrating their own Viewer technology at this stage should be prepared to re-compile their Viewer plug-ins against subsequent KATANA 2.6 v-releases.

Viewer Manipulator Interaction Improvements

Viewers based on the new Viewer API benefit from a mechanism that protects against out-of-date location events while using a manipulator (typically seen as geometry switching back and forth between new and old transforms). The Viewer API suspends processing of Geolib location events during manipulation, and until any resulting node graph change is processed.

NOTE: While in Manual 3D Update Mode, following a manipulation, viewer updates are suspended until the user triggers a manual update.

Runtime Changes

  • FnGeolib.GeolibRuntime.commit() now returns an integer commit ID. Additionally, a runtime's most recent commit ID can be obtained using the new method, FnGeolib.GeolibRuntime.getLatestCommitId().

  • As soon as a Geolib3 Runtime transaction is committed, all calls to FnGeolib.GeolibRuntime.Client.getLocationEvents() are now guaranteed to produce only location events that are up to date with the committed changes.

  • The return value of FnGeolib.LocationEvent.isLocationDataCurrent() was dependent on arbitrary circumstances at the point at which the location event was retrieved, and so provided no reliable information. This method is now deprecated and returns False in all circumstances, and shall be removed in a future release. To determine at any point in time if the location data provided by the most recent location event for a specific location is known to be current for the most recent Geolib3 Runtime commit, use the new FnGeolib.GeolibRuntime.Client.isLocationDataCurrent(locationPath) method.
    • The method takes an optional commitId argument that can be used to specify an earlier commit ID. The default of -1 indicates that the latest commit ID should be used. If specified, the method returns True if location data is known to be current for, or more recent than, the given commit ID.
    • This method is useful for determining if the runtime is done computing an active location, but getLocationEvents() did not produce a location event for it because the location has not changed.

Nodes3DAPI Changes

  • Nodes3DAPI.ManualUpdate() is now a legacy alias of the newly added Nodes3DAPI.CommitChanges().

  • It is now possible to register for a single-shot callback when pending node graph changes are committed to Geolib3 for processing, by calling Nodes3DAPI.RegisterCommitIdCallback(commitIdCallback). The callback is issued with a commit ID as its only argument, which may be zero, indicating that no changes were committed (either because no node graph changes were pending, or because the changes did produce a commit ID).

Documentation Improvements

  • The Online Help's Environment Variables topic has been moved to the Developer Guide. Variables are now categorised, and read-only variables (such as KATANA_RELEASE) are distinguished from user-configurable variables.

  • Content from the Online Help's NodegraphAPI topic has been integrated into the Developer Guide. This brings together descriptions, examples and API references.

  • The API reference for Parameter objects has been split into sections covering different parameter types and use cases.

  • TP 240791 - The first part of developer documentation for widget types has been added to the Developer Guide.

  • TP 126093 / BZ 51296 - Documentation of .args files has been moved to the Developer Guide and substantially expanded. The documentation includes a description of the overall format, an XML schema, a listing of widget types and their supported hints, and usage notes for shaders, procedurals and GenericAssign.

Feature Enhancements

  • TP 56329 / BZ 28400 - The getSettings() and applySettings() functions of the BaseTab class have been implemented for the Scene Graph and Catalog tabs, in order to retrieve and restore the widths of columns in those tabs when saving and loading a layout of panes for Katana's main window.

  • TP 95858 / BZ 44731 - State badges of Enableable Parameter Groups in the Parameters tab can now be single clicked to toggle between a local assignment and a default value or incoming value. Related to this, with the implementation of TP 263821, menu items for choosing a particular value state are now available in the context menu of parameters.

  • TP 128650 / BZ 51670 - Menu commands that generate debug output files (.rib, .ass, etc) now include the name of the renderer in the menu command text.

  • TP 170931 - Keyboard shortcuts registered to Katana's main window can now be used from floating windows. This includes all main menu, toolbar and timeline shortcuts, as well as shortcuts registered through KeyboardShortcutManager against the main window and keyboard shortcuts of custom Live Render commands.

  • TP 235488 - The appearance of connections between ports of nodes in the Node Graph tab has been improved with the following changes:

    1. Labels are now drawn slightly further away from connections, so that they're easier to read.
    2. Labels are now drawn above or underneath connections, so that they don't collide with the shapes of the nodes they connect to.
    3. Labels for ports near connections that are bent are now drawn angled above the connections, instead of drawn at a right angle.
    4. Labels for output ports are now drawn angled next to the connection when highlighting a connection, not horizontally near the output port.
    5. Connections that represent dependencies of Render nodes on other nodes in the node graph are now drawn with a dotted line when being highlighted.
    6. Outlines of one end of connections are now dimmed along with the fill color when highlighting the corresponding other end of the respective connection.
    7. The appearance of arrow heads has been refined to be drawn with a black outline instead of a shadow.
    8. Labels of shading node ports that represent shader parameters that are nested in pages are no longer drawn with the names of all pages in one long text by default. Instead, the names of pages appear above the name of the respective port/parameter in additional lines.
    9. Labels between shading nodes are no longer drawn if the nodes involved are very close to each other.
  • TP 248613 - The Qt style sheet plug-in used for Katana has been modified to make the alternate base color 2% darker than the UI base color instead of 3% brighter as before. This makes item rows in list widgets and tree widgets easier to read. In addition, many more list widgets and tree widgets now use alternating row background colors, to increase readability of lists and trees of items in the UI.

  • TP 253422 - Trial licenses can now be downloaded and installed from the Katana licensing dialog.

  • TP 263821 - The context menu of parameters in the Parameters tab has been modified to include menu items representing value states under a separator titled Value State. The new section is similar to the existing Value Mode section, whose menu items can be used to switch a parameter's value between Constant, Expression, and Curve value modes.

  • TP 266175 - The Include Proxy Children... context menu for cells in Working Set columns includes scene graph locations with proxies attributes into the respective Working Set. The new API entry provides the same functionality as the menu:

    UI4.Util.WorkingSets.IncludeProxyChildrenInWorkingSet(locationPaths, workingSetName)
    
  • TP 266186 - A section titled Reveal Locations with Working Set States has been added to the Expand Branch To submenu in the context menu of locations in the Scene Graph tab, containing menu items that correspond to Working Set columns in the tab: Viewer Visibility, Render, and Live Render Updates. When choosing one of the Working Set menu items, the ancestor locations of locations that have Working Set states set for them in the corresponding Working Set will be expanded to reveal those locations.

  • TP 266190 - The Expand To and Select Proxy Children command has been added to the context menu of scene graph locations to expand the scene graph to locations with proxy data.

    Note:  Due to a longstanding bug affecting selection of objects in the scene graph (TP 248590), Katana may not select all locations after expanding. As a workaround, running the command twice will result in locations expanded and selected.

  • TP 270350 - A Python script has been added to the plugins/Resources/Examples/UIPlugins directory that allows users to quickly create PrimitiveCreate nodes with their name and type set to match a specific type of primitive. Add the Examples directory to the KATANA_RESOURCES environment variable, launch Katana and press P in the Node Graph tab to access this menu.

  • TP 270785 - The handling of keyboard shortcuts in the Node Graph tab has been revised to correctly consider the state of modifier keys. Previously, combinations like Ctrl+D for example triggered the disabling/bypassing of nodes, even though the D key without modifier keys is defined for that command. This change allows user-defined keyboard shortcuts (usually registered through KeyboardShortcutManager) to use variants with modifier keys for other purposes.

Bug Fixes

  • TP 99555 / BZ 46405 - After removing an active Interactive Render Filter (IRF), subsequent interactive renders failed with an exception.

  • TP 106738 / BZ 47800 - The 4 MB size limit for node graph clipboard data has been removed. Instead, if the text size of the XML representation of copied data is greater than 10 MB, the data is written to a temporary file in Katana's temporary directory.

    A progress dialog is now shown when copying large node graphs to the clipboard as part of a Copy or Cut operation. The progress dialog provides a Cancel button that can be clicked to cancel the respective operation.

  • TP 128682 / BZ 51677 - PrimitiveCreate nodes with their type parameter set to gnome produced a subdmesh location with duplicate edges connecting certain vertices, which could cause issues in certain renderers. The geometry's topology has been cleaned up and the polymesh location type is now used.

  • TP 198136 - CEL expressions including a '@myAttr == 0' component erroneously matched locations where myAttr is not present.

  • TP 234619 - Pressing F with the pointer hovered over the Scene Graph tab did not always frame the object selected in the viewer.

    Right-clicking an object in the context menu and choosing Show in Scene Graph would sometimes select previously-selected objects in addition to the object you intended to select.

  • TP 238660 - Attribute History incorrectly processed NodeTypeBuilder-based nodes that modify graph state. This affected only custom nodes performing the advanced action of making an explicit input request with a modified graph state.

  • TP 239293 - The ArbitraryOutputAttr class' isArray() method would return true if the arbitrary attribute group's isArray attribute was set to any value. It now returns true only if the attribute's value is 1.

  • TP 239843 - When performing a Disk Render using a custom method (not "diskRender") via Python, all renders after the first re-used the cached result of the first render.

  • TP 240435 - Katana no longer modifies certain environment variables at startup: PATH (Windows/Linux), LD_LIBRARY_PATH (Linux), or FONTCONFIG_FILE (Linux).

  • TP 248496 - Geolib3 runtime client: open but inactive scene graph branches were cooked if they intersected an ancestor of an active location. Such configurations are not encountered by Katana under normal use, but could result from programmatic use of Geolib3 runtime clients.

  • TP 248672 - GeolibRuntime::getOpFromOpId() returned NULL for valid Ops if they had not yet been committed, causing error messages.

  • TP 251610 - OpScript: Creating a data attribute by passing an empty Lua table to an FnAttribute constructor could corrupt the Lua interpreter and subsequently crash Katana. This bug affected expressions like DoubleAttribute({[0.0] = {}}) and DoubleAttribute({}).

  • TP 251615 - OpScript: the debug string representations of any data attributes with 0 values and 1 time sample were identical, even if the attributes had different sample times.

  • TP 252829 - Katana could crash during interactive renders due to data races in the destruction of objects that were part of connections between a renderer plug-in and Katana's Catalog system.

  • TP 253815 - Modifications of Interactive Render Filters (IRFs) during a Live Render did not affect the render.

  • TP 264177 - Keyboard shortcuts for maximizing/restoring tabs were inconsistent. Space is now used for this purpose across all tabs; the keyboard shortcut for swapping buffers in the Monitor tab is now S.

  • TP 267541 - (Windows only) Some built-in viewer shaders were not available.

  • TP 267710 - Ops that operate on pre-existing descendants of children that they create using copyLocationToChild() or replaceChildren(), failed to do so under certain cooking conditions.

  • TP 267885 - The scale of Viewer manipulators was affected by the camera position and orientation. This serious regression was introduced in Katana 2.5v5.

  • TP 268660 - (Windows only) Katana would crash if it exhausted available image memory and tried writing image data to disk.

  • TP 268665 - When deleting Group nodes, their send and return ports (which correspond to input and output ports) still pointed to the nodes that they were previously a part of. This could lead to crashes due to dangling pointers when rewiring the connections inside of Group nodes, for example as part of bypassing LiveGroup nodes.

  • TP 268746 - Custom columns in the Scene Graph tab did not show single-value integer, double or float attributes.

  • TP 270506 - When highlighting connections between shading nodes, undefined behavior could occur due to an uninitialized member variable in code for drawing connections between shading nodes.

  • TP 270548 - Environment variables in File Browser Quick Links (provided by the environment variable KATANA_FILEBROWSER_QUICKLINKS) were not resolved, resulting in invalid paths.

  • TP 271033 - (Windows only) A pointer truncation issue sometimes caused Katana to crash when performing a render.

  • TP 271161 - When calling the getCatalog() function for the Python representation of a Catalog tab, e.g. UI4.App.Tabs.FindTopTab('Catalog').getCatalog(), an exception was raised. The function was meant to return the instance of the CatalogWidget class that's used inside of the Catalog tab. The broken function has been replaced with a working getCatalogWidget() function, e.g. UI4.App.Tabs.FindTopTab('Catalog').getCatalogWidget().

  • TP 273566 - When attempting to render to an output file with a relative filename, e.g. foo.exr, to the current working directory, the render failed with an error message saying that a directory could not be created.

  • TP 274272 - The parameter UI of LookFileManager Override nodes that rely on incoming scene data (such as a Material node in edit mode) was not correctly populated.

  • TP 274296 - Katana dynamically linked against Log4cplus v1.0.2. It now uses static linking, so that the library's symbols don't leak and collide with versions that may be deployed in the Katana launch environment.

  • TP 274510 - Calling the Geolib Runtime's getOpFromOpId() function could crash Katana.

Known Issues

  • TP 277286 - (WIndows only) The Example Viewer fails to compile from source. To resolve the issue replace all instances of FN_OS_WINDOWS with _WIN32 in DrawableMesh.cpp.

  • TP 276024 - Example VIewer: objects recently shown in the scene graph sometimes fail to appear in the Example Viewer. This can be worked around by hiding and showing the Example Viewer tab.

  • TP 276016 - Example Viewer: when scale and rotation manipulators are activated they are placed at the world space origin. After being modified they snap to the object origin.

  • TP 275930 - Example Viewer: keyboard shortcuts for manipulators are not functional until the Manipulators menu has been opened for the first time.

  • TP 275878 - Example Viewer: when the view flag is removed from a node but not added to another (e.g. when the viewed node is deleted, or a new project is opened) the Example Viewer is not cleared.

  • TP 272409 - The File Browser's file sequence listings are populated according to a Foundry standard, rather than using the findSequence() method of the current File Sequence Plug-in. Files that are part of a sequence according to the File Sequence Plug-in, but not the Foundry standard, appear as individual files rather than a sequence.

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

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

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

  • TP 207623 - When entering a single number only in a Backdrop node, that number is not preserved when saving a Katana project or when copying and pasting that node.

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

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

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

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

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

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

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

  • TP 107038 / BZ 47853 - Indication of attribute source nodes (such as the yellow 'glow' in the Node Graph tab) is not yet implemented in Katana 2.

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

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

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

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

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

  • TP 84019 / BZ 40599 - Parameters that are added to LiveGroup nodes are wrongly discarded when performing a reload from source, leading to loss of data.

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

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

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

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

    For a workaround, the UpdatePrmanSettingNodes shelf script can be used. The script, available in the PRMan17 shelf, creates an AttributeScript node that converts display options, set using string attributes, to group attributes.

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

  • TP 71954 / BZ 36663 - It is not currently possible to sort notifications in the Notifications popup window.

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

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

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

  • TP 65242 / BZ 34870 - Katana doesn't support render output directory creation for shadow, merge and script output types.

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

  • TP 56545 / BZ 28549 - Main menu commands that create nodes, notably File > Import..., File > Import LiveGroup..., and Help > I want a pony, do not create the nodes in a Group or LiveGroup node that has been entered in a Node Graph tab, instead they create the nodes in the root level of the node graph document.

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

Save