Skip to content

Releases: GafferHQ/gaffer

Gaffer 1.5.4.0

28 Jan 11:07
Compare
Choose a tag to compare

Features

  • HierarchyView : Added ability to store and recall the Visible Set in named bookmarks that are saved with the script.
  • TensorToMesh : Added new ML node for converting a suitable tensor into a 3d mesh.

Improvements

  • AttributeEditor : Added "Select Affected Objects" menu item to the "Linked Lights" and Arnold "Shadow Group" columns.
  • AttributeEditor, LightEditor, RenderPassEditor : Added Ctrl + Enter shortcut to edit the selected cells, enabling the edit if necessary.
  • ScriptNode : Added support for serialising metadata registered on a ScriptNode.

Fixes

  • AttributeEditor : Fixed display of fallback value for linkedLights attribute.
  • AttributeEditor, LightEditor, RenderPassEditor :
    • Fixed bugs which prevented edits being made in "Source" scope when there was a downstream edit in an EditScope (#6172).
    • Fixed warning messages when attempting to disable a non-existent edit.
    • Fixed warning message which referred to "None" rather than the "Source" scope.
  • PythonEditor : Fixed bug preventing values from being inserted when dragging most VectorData types into the PythonEditor.

API

  • RenderPassEditor : Added optional index argument to registerOption() and registerColumn(). This can be used to specify the column's position in the UI.
  • Metadata : Added targetsWithMetadata() function, returning all the string targets which match a pattern and have a specific metadata key.
  • VisibleSetData : Implemented save() and load().
  • ScriptNodeAlgo : Added functions for managing VisibleSet bookmarks.

Gaffer 1.4.15.5

28 Jan 11:03
Compare
Choose a tag to compare

Fixes

  • PythonEditor : Fixed bug preventing values from being inserted when dragging most VectorData types into the PythonEditor.

Gaffer 1.5.3.0

17 Jan 09:59
Compare
Choose a tag to compare

Features

  • PrimitiveVariableTweaks : Added node for tweaking primitive variables. Can affect just part of a primitive based on ids or a mask.
  • Menu Bar : Added a "Render Pass" menu to the Menu Bar that can be used to choose the current render pass from those provided by the focus node.

Improvements

  • Shader, ShaderPlug : Added support for ContextProcessor, Loop and Spreadsheet nodes to be used inline between shader nodes and as the terminal node connected to
    ShaderAssignment and other shader-consuming nodes.
  • VisualiserTool : Changed dataName input widget for choosing the primitive variable to visualise to a list of available variable names for the current selection.
  • Tweaks nodes : Moved list of tweaks to a collapsible "Tweaks" section in the NodeEditor.
  • Viewer :
    • The shading mode menu icon now updates to indicate when a non-default shading mode is in use.
    • Added the ability to toggle between default shading and the last selected shading mode by Ctrl + clicking the shading mode menu button.
  • PythonEditor : Added workaround for slow code completion caused by poorly performing Python property getters.
  • PlugLayout :
    • A warning widget is now displayed when an invalid custom widget is registered.
    • layout:customWidget:<name>:width and layout:customWidget:<name>:minimumWidth metadata registrations are now supported for custom widgets.
  • RenderPassEditor :
    • Render passes deleted or disabled by render adaptors registered to client = "RenderPassWedge" are now shown as disabled. To differentiate these from user disabled render passes, an orange dot is shown in the corner of the disabled icon and the tooltip describes them as automatically disabled.
    • Changing the current render pass is now undoable.

Fixes

  • VisualiserTool :
    • Fixed bug where the value dragged from the visualiser would be slightly different from the initial value on button press (#6191).
    • Fixed error when trying to visualise data unsupported data.
  • TweakPlug : Fixed preservation of geometric interpretation when tweaking V3f values.
  • Shader :
    • Fixed handling of multiple consecutive Switch nodes in a shader network.
    • Fixed leak of private scene:shader:outputParameter context variable.
  • ApplicationTest : Extended grace period when testing process name on slower hosts.
  • OpDialogue : Fixed DefaultButton handling.

API

  • TweakPlug : Added applyElementwiseTweak() method, for tweaking elements of a *VectorData.
  • IECoreArnold, IECoreDelight : Added support for config files installed on GAFFER_STARTUP_PATHS.
  • IECoreArnold::ShaderNetworkAlgo : Added attributeName arguments to SubstitutionFunction and SubstitutionHashFunction. This is an ABI break, which would not normally be allowed without a change of major version. We are making a rare exception in this case, with the following justifications :
    • The API is esoteric and was introduced extremely recently, so we believe nobody to be depending on it yet.
    • Without the ABI change, the API isn't usable for its original intended purpose anyway.
    • Backward compatibility is not trivial to maintain in this case.
  • PlugAlgo : Added contextSensitiveSource() method.
  • ShaderPlug : Added Python binding for parameterSource() method.
  • ScriptNodeAlgo : Added setCurrentRenderPass(), getCurrentRenderPass(), and acquireRenderPassPlug() methods.

Gaffer 1.4.15.4

17 Jan 09:46
Compare
Choose a tag to compare

Fixes

  • USDLayerWriter :
    • Fixed silent failures when unable to create the output file (#6197).
    • Fixed leak of usdLayerWriter:fileName context variable.
  • PathFilter :
    • Fixed bug preventing display of "Select Affected Objects" menu item in the row name column of promoted Spreadsheets.
    • Fixed bug preventing use of "Select Affected Objects" menu item in the row name column of Spreadsheets with enabledRowNames connected to the paths plug of a PathFilter.
    • Fixed error when using "Select Affected Objects" on Spreadsheet cells connected to the paths plug of a PathFilter.

Gaffer 1.5.2.0

13 Dec 09:31
Compare
Choose a tag to compare

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.

Gaffer 1.4.15.3

13 Dec 09:13
Compare
Choose a tag to compare

Fixes

  • ArrayPlug : Fixed loading of promoted plugs saved from Gaffer 1.5+.
  • 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.
  • RandomChoice : Fixed errors right-clicking on non-value plugs in the NodeEditor.

Gaffer 1.5.1.0

22 Nov 14:44
Compare
Choose a tag to compare

Features

  • EditScope : Introduced the Global Edit Target, providing script-level control over the target used by editors. The Global Edit Target can be set from a new "Edit Target" menu in the menu bar, which displays all available edit targets upstream of the focus node.
    • Editors now follow the Global Edit Target by default, allowing for a simpler experience when switching multiple editors to a common target.
    • Individual editors can be overridden to use a specific edit target where necessary. An overridden editor can return to following the Global Edit Target via the new "Follow Global Edit Target" menu item.
    • While following the Global Edit Target, an editor's Edit Scope menu will shrink to only display an icon. When an Editor is overridden to a specific edit target, the menu grows to display the name of the target.

Improvements

  • Instancer :
    • Added inactiveIds plug for selecting primitive variables to disable some instances.
    • Added support for 64 bit integer ids (matching what is loaded from USD).
  • DeletePoints : Added modes for deleting points based on a list of ids.
  • Light Editor, Attribute Editor, Spreadsheet : Add original and current color swatches to color popups.
  • SceneView : Added fallback framing extents to create a reasonable view when SceneGadget is empty, for example if the grid is hidden.
  • ColorChooser :
    • Added an option to toggle the dynamic update of colors displayed in the slider and color field backgrounds. When enabled, the widget backgrounds update to show the color that will result from moving the indicator to a given position. When disabled, a static range of values is displayed instead.
    • Holding the Control key now constrains dragging in the color field to a single axis.
  • EditScope :
    • Simplified the Edit Scope menu UI :
      • Removed the dark background.
      • Changed the menu button color to be always blue.
      • Removed the "Navigation Arrow" button from the right side of the Edit Scope menu. Its actions have been relocated to a "Show Edits" submenu of the Edit Scope menu.
      • Hid the label. It can be made visible for a specific plug by registering editScopePlugValueWidget:showLabel metadata with a value of True.
    • Renamed "None" mode to "Source" and added icon.
    • The "Source" menu item now displays a checkbox when chosen.
    • Added a "No EditScopes Available" menu item that is displayed when no upstream EditScopes are available.
    • Increased menu item icon sizes.
    • A lock icon is now displayed next to read-only nodes.
  • RenderPassEditor : Changed the current render pass indicator to yellow to match other context-related UI elements.
  • GraphEditor : Moved "Show Input Connections" and "Show Output Connections" to "Connections" sub-menu and added "Show Input Labels" and "Show Output Labels" items.

Fixes

  • Render, InteractiveRender : Added default node name arguments to the compatibility shims for removed subclasses such as ArnoldRender.
  • GafferUITest : Fixed assertNodeUIsHaveExpectedLifetime() test for invisible nodes.
  • OpDialogue : Fixed postExecuteBehaviour handling.
  • LocalDispatcher : Fixed job status update when a job was killed immediately after being launched.
  • gaffer view : Fixed default OpenColorIO display transform.
  • AnimationEditor : Fixed changing of the current frame by dragging the frame indicator or clicking on the time axis.
  • ImageWriter : Matched view metadata to Nuke when using the Nuke options for layout. This should address an issue where EXRs written from Gaffer using Nuke layouts sometimes did not load correctly in Nuke (#6120). In the unlikely situation that you were relying on the old behaviour, you can set the env var GAFFERIMAGE_IMAGEWRITER_OMIT_DEFAULT_NUKE_VIEW = 1 in order to keep the old behaviour.
  • OSLObject : Fixed getattribute() to support 64 bit integer data, such as an instanceId primitive variable loaded from USD. Since OSL doesn't provide a 64 bit integer type, values are truncated to 32 bits.
  • MeshSplit : Vertex order is now preserved.
  • DispatchDialogue : Removed _DispatcherCreationWidget from shown nodes.

API

  • Int64VectorDataPlug : Added new plug type for passing vectors of int64.
  • OpenColorIOConfigPlugUI :
    • Added connectToApplication() function.
    • Deprecated connect() function. Use connectToApplication() instead.
  • SceneEditor : Added editScope() method.
  • Image : Added optional image argument to createSwatch() static method.
  • StandardNodeGadget : Added support for nodeGadget:inputNoduleLabelsVisible and nodeGadget:outputNoduleLabelsVisible metadata for setting nodule labels always on. If the metadata entry is not set or False, labels will be visible only when they are hovered over.

Build

  • Cortex : Updated to version 10.5.11.0.

Gaffer 1.4.15.2

22 Nov 11:03
Compare
Choose a tag to compare

Caution : Due to GitHub Actions no longer being compatible with CentOS 7 containers, the build process for the gcc9 builds has changed. The new builds should be entirely equivalent to earlier builds, but please notify us should any oddities appear.

Fixes

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

Gaffer 1.5.0.1

31 Oct 11:21
Compare
Choose a tag to compare

Fixes

  • CyclesShader : Fixed broken presets menus.
  • Windows :
    • Fixed handling of shader colour component to float connections in Cycles.
    • Added CORTEX_STARTUP_PATHS to match the Linux wrapper.
  • PlugPopup : Fixed error when displaying a popup with no PlugValueWidget.
  • Instancer : Fixed issue where wrong prototypes were sometimes used in encapsulated renders.

Gaffer 1.4.15.1

31 Oct 11:06
Compare
Choose a tag to compare

Fixes

  • PlugPopup : Fixed error when displaying a popup with no PlugValueWidget.