13 April 2017
Katana now includes an API for integrating custom 3D viewers. This API is being used by Foundry to develop a new built-in 3D viewer scheduled to be released in a future Katana version. Should they wish to, customers can use this API to integrate their own viewer technology into Katana. Foundry anticipates the API will be subject to minor revisions before it ships alongside a new built-in Viewer in a future version. Please see the accompanying KATANA Viewer API: Getting Started Guide for technical details.
Viewers based on the new Viewer API now 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.
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.
Nodes3DAPI.ManualUpdate() is now a legacy alias of the newly added Nodes3DAPI.CommitChanges().
A number of additions to the Katana Developer Guide have been made:
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 Dev 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 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:
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 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.
A copy operation no longer writes to the selection clipboard buffer on Linux.
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, to avoid problems during rendering.
TP 198136 - CEL expressions including a '@myAttr == 0' component erroneously matched locations where myAttr is not present.
TP 234619 - Pressing F with the mouse 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"), 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.
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.
TP 268660 - (Windows only) Katana would crash if it exhausted available image memory and tried writing image data to disk.
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 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 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 work-flows 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.
Copyright © 2017 The Foundry Visionmongers Ltd.