1.5.2.0

Caution

The GafferML features introduced in this release are considered experimental, and are not subject to the usual backwards compatibility guarantees that apply to the rest of Gaffer.

Features

  • GafferML : Added a new module with the following nodes for running machine learning models via ONNX Runtime :

    • DataToTensor : Converts Gaffer data to tensors.

    • Inference : Loads ONNX models and performs inference using an array of input tensors.

    • ImageToTensor : Converts images to tensors for use with the Inference node.

    • TensorToImage : Converts tensors back to images following inference.

  • VisualiserTool : Added tool to 3D viewer for visualising primitive variables on meshes.

Improvements

  • MergeScenes : Removed unnecessary temporary contexts.

  • RenderPassEditor :

    • Added support for entering custom values in the Type column. Custom types can be later configured with a downstream NameSwitch selecting based on the value of the renderPass:type option.

    • Columns that edit options now include the option name in their header tooltip.

    • Improved description of render:cameraExclusions and render:matteExclusions options.

Fixes

  • MergeScenes : Fixed bug handling input connections not originating from the output of another node. These could cause locations provided by other inputs to lose all their properties.

  • PathFilter : Fixed bug allowing dropping paths onto read-only PathFilter nodes in the graph.

  • VectorDataWidget : Fixed bug allowing dropping paths onto read-only widgets.

  • GraphEditor : Fixed errors when dragging an unknown file type into the GraphEditor.

  • Widget : Fixed event.sourceWidget for DragDropEvents generated from a Qt native drag within the same Gaffer process. This will now reference the GafferUI.Widget that the Qt source widget belongs to, if any.

  • Catalogue : Fixed bug which “stole” drags that crossed the image listing but which were destined elsewhere, for instance a drag from the HierarchyView to a PathFilter in the GraphEditor.

  • GadgetWidget : Fixed signal handling bug in setViewportGadget(). This could cause the widget to attempt to redraw unnecessarily when the old viewport requested a redraw.

  • EditScope : Fixed error updating the Global Edit Target in read-only files.

  • RandomChoice : Fixed errors right-clicking on non-value plugs in the NodeEditor.

API

  • PlugLayout : Activations may now depend on the presence of certain plugs, as they are now reevaluated when child plugs are added and removed.

  • IECoreArnold::ShaderNetworkAlgo : Added a new API to allow just-in-time substitutions to be made when translating shaders to Arnold. Use with care.