Skip to content

Releases: GafferHQ/gaffer

Gaffer 1.5.8.0

07 Mar 19:13
Compare
Choose a tag to compare

Features

  • ShuffleImageMetadata : Added a new node for shuffling image metadata.

Improvements

  • CyclesAttributes : Added volumePrecision and volumeVelocityScale plugs.

Fixes

  • Cryptomatte : Fixed handling of PxrCryptomatte output, and other files with less conventional metadata formatting.
  • VisualiserTool : Changed viewer shortcut to L to fix conflict with the pinning shortcut.
  • RenderPassMenu : Fixed handling of the addition and removal of the render pass plug.
  • Cycles : Fixed crash when rendering volumes (#5824).

Gaffer 1.5.7.0

04 Mar 10:02
Compare
Choose a tag to compare

Features

  • USDLight : Added Cycles-specific light parameters.
  • USD : Added automatic expansion of USD PointInstancers at render time.
    • This can be controlled on a per-instancer basis using a gafferUSD:pointInstancerAdaptor:enabled boolean attribute.
    • Which point cloud primitive variables are promoted to user attributes can be controlled using a gafferUSD:pointInstancerAdaptor:attributes string attribute.
    • May be disabled entirely with GafferScene.SceneAlgo.deregisterRenderAdaptor( "USDPointInstancerAdaptor" ).
  • Viewer : Added "Expand USD Instancers" item to the Expansion menu. Defaults to on for all renderers except OpenGL.
  • Instancer : Added support for prototype paths that are relative to an instancer. When using the same scene connected to both in and prototypes, this allows relocating an instancer together with its prototypes to a different location in the hierarchy. Prototype paths beginning with "./" are treated as relative, or you can set the environment variable GAFFERSCENE_INSTANCER_EXPLICIT_ABSOLUTE_PATHS to treat any path not beginning with "/" as relative (this may be the default in the future).

Improvements

  • 3Delight : Added light muting support.
  • Arnold : Added support for specifying the name of a shader in the node menu using Arnold's ui.name metadata. This improves the formatting of the OpenPBR Surface menu item.
  • VisualiserTool : Added new visualisation for vector (V3f) data.
    • The vectorScale plug can be used to scale the vector line. The Shift + + and Shift + - keyboard shortcuts can also be used to change the scale.
    • The vectorColor plug can be used to change the color of the vector line.
    • The vector value being visualised for the vertex nearest the cursor is shown next to the vertex.
  • NameSwitch : Added enabledNames output plug.
  • ColorSwatchPlugValueWidget : Changed the display transform of the color chooser dialogue to match that of the ColorSwatchPlugValueWidget creating it instead of the script window.
  • Instancer : Improved hashing of instancer capsules. Prevents unnecessary recomputation of instancers when editing something unrelated.

Fixes

  • SceneWriter : Fixed writing of animated attributes and bounds to USD.
  • NumericPlug : Fixed serialisation of plugs with infinite min/max values, for example the promoted outputs of an ImageStats node.
  • VisualiserTool : Changed viewer shortcut to P to fix conflict with the Transform Tool.
  • Render Pass menu : Fixed bug evaluating image nodes in wrong context.
  • Instancer : Fixed obscure bug that could occasionally cause errors while interactively editing prototype hierarchy.

API

  • Attributes, Options : Added protected constructors for initialising from attributes/options defined by metadata.
  • ShaderUI : Added support for noduleLayout:visible and noduleLayout:defaultVisibility metadata, which can be registered via the Metadata API in the same way as userDefault.

Build

  • Cortex : Updated to version 10.5.13.0.

Gaffer 1.5.6.0

19 Feb 21:28
Compare
Choose a tag to compare

Features

  • AttributeEditor, LightEditor, RenderPassEditor : Added drag and drop editing. Edits can be created or updated by dropping a value into a cell. Cells representing a set expression or string array can be modified by holding Shift to append to an existing edit, or Control may be held to remove from an existing edit.

Improvements

  • ArnoldShader : Moved Arnold 7.3.7.0's new transmission_shadow_density parameters to a "Transmission" section of the UI.

Fixes

  • StandardNodeGadget : Fixed crash when animating a node's enabled plug (#6274).

API

  • SceneAlgo :
    • Added parallelReduceLocations() for implementing functions that need to combine results while traversing a ScenePlug.
    • Added hierarchyHash() for hashing all children of a scene location.
  • PathColumn : Added dragEnterSignal(), dragMoveSignal(), dragLeaveSignal() and dropSignal().

Gaffer 1.5.5.0

10 Feb 20:22
Compare
Choose a tag to compare

Features

  • Parent, Duplicate, Scatter : Added copySourceAttributes plug, to preserve inherited attributes when the destination is not parented below the source.
  • PromotePointInstances : Added a new node for selectively converting a subset of a USD PointInstancer to expanded "hero" geometry.
  • Annotations :
    • Added copy and paste of annotations. The right-click menu of an annotation allows you to copy the annotation. Pressing Control + V in the Node Editor will paste the annotation to the selected nodes.
    • Double clicking on an annotation now pops up the annotation editor dialogue.

Improvements

  • RenderPassEditor : Added ability to rename a render pass within the edit scope it was originally created in. A render pass can be renamed from the "Name" column via the "Rename Selected Render Pass..." menu item, double clicking on a cell or selecting a cell and pressing Enter or Return.
  • VisualiserTool :
    • Changed naming requirements for visualising primitive variables. Values in dataName now prefix the primitive variable name with primitiveVariable:. Setting dataName to vertex:index will display vertex indices.
    • Added mode plug. The available modes are :
      • Auto : Chooses the most appropriate mode based on the data and primitive type.
      • Color (Auto Range) : Float, integer, V2f and color data is displayed without modification. Vector data is remapped from [-1, 1] to [0, 1].
      • Color : Values are remapped from the range [valueMin, valueMax] to [0, 1].
      • Vertex Label : Values are displayed as a label next to each vertex.
    • When visualising data as vertex labels, the value for the vertex nearest the mouse cursor gets visual emphasis. This value is also used for drag and drop.
  • PrimitiveVariableTweaks : Added invertSelection plug.
  • Tweaks nodes : Added automatic conversion between numeric types. For example, an integer tweak value can now be applied to a float.
  • SceneWriter : Improved performance. Benchmarks rewriting complex scenes via a SceneReader->SceneWriter graph show around a 2x speedup.
  • USDLayerWriter : Improved performance, including a 50x speedup for one benchmark.
  • RenderPassMenu : Added configuration of the default state of "Hide Disabled" and "Display Grouped" via renderPassPlugValueWidget:hideDisabled and renderPassPlugValueWidget:displayGrouped metadata registered in a startup file. For example, "Hide Disabled" can be enabled with the following registration Gaffer.Metadata.registerValue( Gaffer.ScriptNode, "variables.renderPass.value", "renderPassPlugValueWidget:hideDisabled", True ).

Fixes

  • ContactSheetCore : Fixed bugs handling changes to the input and output image formats.
  • InteractiveRender : Fixed potential leak of scene:path context variable when computing the value for resolvedRenderer.
  • Dispatch app : Fixed poor UI layout in "Completed" dialogue state (#6244).
  • RenderPassEditor : Fixed errors when script is not parented to an Application.
  • MessageWidget : Fixed bug preventing the horizontal scroll bar from appearing when displaying messages with long lines.
  • VectorDataWidget, VectorDataPlugValueWidget : Fixed bug preventing dropping a single value onto the + and - buttons and the plug name.

API

  • EditScopeAlgo : Added renameRenderPass() and renameRenderPassNonEditableReason() functions.
  • SceneAlgo : Added parallelGatherLocations() function.
  • GraphGadget : Added annotationsGadget() function.
  • MetadataAlgo : Added annotations() variant accepting Gaffer::Metadata::RegistrationTypes. The default is All to match existing behavior and the previous annotations() variant is deprecated.
  • AnnotationsGadget : Added annotationAt() function.
  • AnnotationUI : Added contextMenuSignal() allowing customisations to the context menu for annotations.

Gaffer 1.4.15.6

10 Feb 20:22
Compare
Choose a tag to compare

Fixes

  • MessageWidget : Fixed bug preventing the horizontal scroll bar from appearing when displaying messages with long lines.
  • VectorDataWidget, VectorDataPlugValueWidget : Fixed bug preventing dropping a single value onto the + and - buttons and the plug name.

Gaffer 1.5.4.1

31 Jan 19:17
Compare
Choose a tag to compare

Fixes

  • OpenColorIO : Fixed UI Display Transform, which was not being applied correctly when a script was loaded.
  • LocalJobs : Fixed shutdown confirmation dialogue, which was no longer being shown when there were unfinished local jobs running.
  • Dispatch app : Fixed configuration bug which caused GafferSceneUI to be loaded unnecessarily (#6239).

API

  • ScriptWindow : Added instanceCreatedSignal().

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.