19 May 2017
A new type of layer is now available for use in ViewerAPI-based Viewer tabs: GLManipulatorLayer. The layer can be added in order to activate OpenGL-based manipulators including the new GLTranslate, GLRotate, and GLScale manipulators.
A GLManipulatorLayer can be added to a ViewportWidget using the following code:
viewportWidget.addLayer("GLManipulatorLayer", "some_layer_name");
Translation Manipulator: supports transformations along 3 individual axes.
Rotation Manipulator: supports rotations in the 3 axis and in 2 degrees of freedom using the central handle.
Scale Manipulator: supports scaling along 3 individual axes and uniformly in all 3 dimensions using the central handle. In cases in which a translation is applied after the scale, the pivot where the manipulator is placed will not be the origin of the manipulated locations in order to keep the manipulator in the same place while dragging.
A few API changes were introduced in order to support the new manipulators:
ViewerDelegateComponent objects can now block and override functionality from existing ViewerDelegate and ViewerDelegateComponent objects. If location events on certain locations are being processed by the existing Viewer, a ViewerDelegateComponent can now block that processing, so that its own implementation can override it. For example, in a Viewer that processes a specific type of light location in its ViewerDelegate and ViewerDelegateComponent objects, a new ViewerDelegateComponent can tell the previously registered ones and the delegate itself not to process the location events relative to that light type. To that end, the signatures of location event functions on the ViewerDelegateComponent class have been modified (see API Changes below).
Two new example ViewerDelegateComponent objects were added to the ExampleViewer implementation:
The following functions of the ViewerDelegateComponent class now all return boolean values indicating whether the respective event has been handled and should no longer be processed by other ViewerDelegateComponent objects or a ViewerDelegate itself:
TP 250273 - The CameraControlLayer can now to look through a scene graph-based camera by returning a scene graph location when Viewport::getOption() is called with the "cameraLocation" option ID.
TP 271012 - When loading a new Katana project, instances of ViewerDelegate classes stopped receiving location creation/deletion events.
TP 273909 - The Viewer API had a dependency on the OpenEXR library for some of its types, and was polluting the global namespace with them.
TP 274864 - A ViewerDelegate instance's destructor was not being called when a ViewerAPI-based Viewer tab was closed, leading to memory leaks. This fix does not require any change in any Viewer plug-in's code.
TP 275722 - Removing the HUDLayer caused OpenGL errors in the Monitor tab.
TP 275772 - Example Viewer: when open alongside other OpenGL-based tabs, such as the Viewer, Monitor or Node Graph, activating or deactivating manipulators caused GL errors and various erroneous behaviour in the Example Viewer tab.
TP 275894 - Example Viewer: some mesh faces were not drawn when a previously-drawn mesh had a smaller number of faces.
TP 275900 - ScenegraphLayer has been renamed to SceneLayer.
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.
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 this directory path 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.
TP 99555 / BZ 46405 - After removing an active Interactive Render Filter (IRF), subsequent interactive renders failed with an exception.
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 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 274510 - Calling the Geolib Runtime's getOpFromOpId() function could crash Katana.
TP 273439 - Modifications of global Graph State Variables during a Live Render had no effect.
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 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 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.
Copyright © 2017 The Foundry Visionmongers Ltd.