Skip to content

Releases: GafferHQ/gaffer

Gaffer 1.3.16.4

05 Jun 19:10
Compare
Choose a tag to compare

Fixes

  • SceneWriter : Fixed writing of locations with names that are not valid USD identifiers.
  • LightPositionTool : Fixed bug that caused the target / pivot positions to be removed when placing a light with Z scale not equal to 1.0.

Gaffer 1.4.5.0

29 May 17:54
Compare
Choose a tag to compare

Features

  • ShaderTweaks : Added support for creating ShaderTweakProxy nodes that allow making input connections to the original network.
  • 3Delight : Added interactive Viewer renderer.

Improvements

  • SetFilter, StandardAttributes, StandardOptions : Added syntax highlighting and auto-complete for set expressions.
  • NodeEditor, UIEditor, PythonEditor : Added popup hint for the Ctrl+Return shortcut.
  • CodeWidget : Added highlighting of braces and operators.
  • RenderPassEditor : Added preset menu for choosing a render pass type from the list of available registered types. An "auto" type is included in the list when an auto type function has been registered.
  • OptionTweaks : Tweak value plugs can now access metadata registered globally to option:{tweakName}, where {tweakName} is the value of the tweak's name plug.
  • Spreadsheet : Added support for metadata to be automatically forwarded from plugs downstream of a column's out plug to the column's default row.

Fixes

  • CodeWidget :
    • Removed unwanted \n prefix in lines passed to Completers.
    • Prevented spurious emission of editingFinishedSignal() when showing the completions menu.
    • Prevented the completion menu from popping up inappropriately when the highlighter was changed.
  • MultiLineTextWidget :
    • Fixed rendering of disabled widgets, which now show faded text.
    • Fixed behaviour of editingFinishedSignal() to match TextWidget : it is now also emitted when the text is activated (see activatedSignal()).
  • MultiLineStringMetadataWidget : The Ctrl+Return shortcut now updates the metadata value immediately.
  • UIEditor : The Ctrl+Return shortcut now updates the button code immediately.
  • Cryptomatte :
    • Fixed errors when the input image didn't contain the main RGBA channels.
    • Fixed inaccurate hash.
  • SceneAlgo : Fixed exception handling for Python render adaptors. Previously an exception during adaptor construction caused a SystemError.
  • InteractiveRender :
    • Fixed crash triggered by a render adaptor depending on its renderer input to adapt the scene globals.
    • Removed unintentional ability for render adaptors to change the renderer being used.

API

  • TextWidget : Added selectedText() convenience method.
  • MultiLineTextWidget : Added setSelection() and getSelection() methods.
  • SetExpressionPlugValueWidget : Added new editor for set expressions, with syntax highlighting and auto-complete.
  • RenderPassTypeAdaptor : Added autoTypeFunction() method.

Gaffer 1.4.4.0

22 May 20:15
Compare
Choose a tag to compare

Features

  • RenderPassEditor :
    • Added type column for configuring specific passes to render with a predefined type. We provide default configurations of a number of render pass types, these can be modified to suit specific workflows via the RenderPassShader node or by registering new types and processors via the RenderPassTypeAdaptor in a startup file.
    • The default render pass type configurations include :
      • A "shadow" type for catching shadows cast by caster locations on catcher locations.
      • A "reflection" type for catching reflections cast by caster locations on catcher locations. The roughness of the reflective material can be configured per catcher location by creating a user:renderPass:reflectionCatcher:roughness float attribute.
      • A "reflectionAlpha" type for catching reflection mattes cast by caster locations on catcher locations. The colour of the matte can be configured per caster location by creating a user:renderPass:reflectionCaster:color Color3f attribute.
  • RenderPassShader : Added new node for overriding a shader used by a render pass type.

Improvements

  • 3Delight :
    • Added support for multipart EXR renders by using the same file name parameter on multiple outputs.
    • Added support for scalarformat, colorprofile, filterwidth and arbitrary custom NSI outputlayer and outputdriver attributes.
    • Updated the default output presets to include scalarformat, colorprofile, filter and filterwidth output parameters.
  • LightPositionTool : Changed the pointer to notEditable when using keyboard combinations that do not apply to the current tool mode.
  • LightEditor : Added the ability to register columns for editing any parameter in a light's shader network. The parameter to edit is registered in the form shaderName.parameterName when calling GafferSceneUI.LightEditor.registerParameter.
  • PathFilterUI : Added the ability to drag and drop scene paths onto Box and Reference nodes. Doing so will create a new PathFilter with the selected paths if none is connected, or update an existing connected PathFilter.

Fixes

  • SceneReader, SceneWriter : Fixed handling of Arnold-specific parameters on UsdLux lights.
  • SceneWriter : Fixed import of treatAsPoint and treatAsLine parameters on UsdLux lights.
  • Linux : Fixed crashes at startup on platforms - including RHEL 9.4 - with a more recent glibc (#5856).
  • LightPositionTool : Fixed bug that allowed a non-light object to be moved by clicking or dragging the target or pivot.
  • OptionQuery : Fixed bug which allowed the scene:path context variable to leak into the context used to evaluate the globals.

API

  • ShaderPlug : Added parameterSource() method returning the ValuePlug responsible for generating a parameter in a shader network.
  • ParameterInspector : Added the ability to inspect parameters on any shader in a light or shader's shader network.
  • RenderPassTypeAdaptor :
    • Added registration methods for defining render pass types and processors.
    • Added registerAutoTypeFunction() method to define a function used to automatically derive the render pass type from the render pass name when the renderPass:type option value is "auto".

Gaffer 1.4.3.0

10 May 17:44
Compare
Choose a tag to compare

Features

  • 3Delight : Added "3Delight Cloud" renderer, for rendering using the 3Delight cloud.

Improvements

  • Arnold : If it exists, an ai:volume attribute is preferred over an ai:surface attribute when resolving shaders for volumes.
  • Cycles :
    • Updated the UI of Cycles shaders and lights for ease of use and to match Blender conventions.
    • Hide certain parameters based on UI selections.
    • Renamed and reordered parameters and created sections to match Blender.
    • Changed all the Cycles items in the Gaffer tab menu to title case.
  • PythonCommand : Added standard popup menu to command widget in NodeEditor.

Fixes

  • Arnold :
    • Fixed rendering of ai:volume shaders loaded from USD (#5830).
    • Renamed Arnold/Globals/Imager menu option to Arnold/Globals/Imagers so that the actual ArnoldImager node menu option wasn't overwritten.
  • CodeWidget : Fixed errors handling highlights which spanned more than one line, such as triple-quoted strings in the PythonEditor.
  • NodeEditor : Fixed broken layouts caused by computation errors in plugs used by section summaries.
  • ColorChooserPlugValueWidget : Fixed bug that allowed the editing of locked plugs and nodes.

API

  • SceneAlgo : Added mechanism for scoping render adaptors to specific clients and/or renderers.

Build

  • Fixed issue where gaffer wrapper may not exist when calling usdGenSchema from a clean build.

Gaffer 1.3.16.3

10 May 17:42
Compare
Choose a tag to compare

Fixes

  • ColorChooserPlugValueWidget : Fixed bug that allowed the editing of locked plugs and nodes.

Gaffer 1.4.2.0

30 Apr 19:02
Compare
Choose a tag to compare

Features

  • ContactSheet : Added new node for creating contact sheets from multiple input images.
  • LightPositionTool : Added Diffuse mode for placing lights along the normal of the target position.

Improvements

  • TweakPlug : ListAppend, ListPrepend and ListRemove modes are now supported for string values. In this case, the string is treated as a space-separated list.
  • Cycles :
    • Changed default value for principled_bsdf.specular_ior_level to 0.5, matching Blender.
    • Added support for uv.tangent and uv.tangent_sign primitive variables to assist in rendering with normal maps (#5269).
  • AttributeQuery, PrimitiveVariableQuery, ContextQuery, OptionQuery, ShaderQuery : Added support for querying arrays of length 1 as their equivalent scalar types.
  • CodeWidget : Added Ctrl+L shortcut for selecting all text on the current line.
  • AttributeTweaks, CameraTweaks, ShaderTweaks, OptionTweaks, PrimitiveVariableTweaks :
    • Added support for a {source} token which is substituted with the original value when tweaking a string in Replace mode.
    • Added tooltips documenting the tweak modes.
  • 3Delight : Added automatic render-time translation of UsdPreviewSurface shaders to 3Delight.
  • USDLight :
    • Added Arnold-specific extension parameters.
    • Added parameter tooltips.
  • LightEditor : Added columns for Arnold-specific parameters on USD lights.
  • Switch : Added deleteContextVariables plug.

Fixes

  • Viewer : Fixed Cycles shader balls.
  • TweakPlug : Fixed incorrect results and potential crashes in list modes.
  • USD : Fixed Unsupported value type "StringData" for parameter "input" warning when converting UsdTransform2d shaders with no in connections to Arnold.
  • File Browser : Windows only : Fixed bug in HiddenFilePathFilter that caused sequences to be treated as though they are hidden files (#5810).

API

  • PlugAlgo : setValueFromData() and canSetValueFromData() now support conversion of arrays of length 1 to their equivalent scalar types.
  • BoxPlug : Added Python bindings for ValueType, PointType and ChildType type aliases.
  • RenderPassEditor : Added deregisterColumn() method.
  • DocumentationAlgo : Added table and strikethrough support to markdownToHTML().
  • LightEditor : Added columnName parameter to registerParameter() method, matching the behaviour of RenderPassEditor.registerOption().
  • USDShader : Added support for loading from the UsdSchemaRegistry as well as from the SdrRegistry. This is now used when loading UsdLuxLights.
  • PlugLayout : Added support for activators in Boxes and extension nodes by allowing layout:activator:activatorName metadata to contain a Python string to be executed. Execution is performed in an environment where a parent variable refers to node or plug represented by the layout, and from which plug values can be obtained.
  • ContactSheetCore : Added a new node to do provide the basis for networks that create contact sheets from multiple input images.

Build

  • MacOS : Fixed issue where Python.framework may not be found when building with a prebuilt dependencies package.

Gaffer 1.3.16.2

30 Apr 19:01
Compare
Choose a tag to compare

Fixes

  • File Browser : Windows only : Fixed bug in HiddenFilePathFilter that caused sequences to be treated as though they are hidden files (#5810).

Gaffer 1.4.1.0

22 Apr 22:56
Compare
Choose a tag to compare

Features

  • MeshTessellate/MeshType : Added support for special-purpose subdiv options: interpolateBoundary, faceVaryingLinearInterpolation, triangleSubdivisionRule.

Improvements

  • Group : Added sets plug, to control what sets the group belongs to.
  • USD : Added automatic render-time translation of UsdPreviewSurface shaders to Cycles.
  • SetEditor : Added support for dragging a set name onto a node in the Graph Editor to create or modify a connected SetFilter node. Holding Shift while dragging will add to the set expression. Holding Control will remove from the set expression. Only set expressions with a simple list of sets are supported. Expressions with boolean or hierarchy operators are not supported.
  • GraphEditor : Improved pointer used to indicate when dropping a location would find the source node.
  • RenderPassEditor :
    • Added "Camera Inclusions" and "Camera Exclusions" columns, providing control over the camera visibility of scene locations in each render pass.
    • Added "Matte Inclusions" and "Matte Exclusions" columns, providing control over the scene locations used as holdout mattes in each render pass.

Fixes

  • NameSwitch : Fixed NodeEditor tab order, so that the Settings tab precedes the Advanced tab.
  • NodeAlgo : Fixed presets inheritance for promoted plugs with multiple outputs.
  • TaskNode / GafferCortex : Fixed missing GIL releases that caused hang at ImageEngine.

Build

  • Cortex : Updated to version 10.5.7.0.
  • OpenEXR : Updated to version 3.1.13.
  • USD : Added sdrOsl, for inclusion of OSL shaders in the Sdr Registry.

Gaffer 1.3.16.1

22 Apr 22:54
Compare
Choose a tag to compare

Fixes

  • NodeAlgo : Fixed presets inheritance for promoted plugs with multiple outputs.
  • TaskNode / GafferCortex : Fixed missing GIL releases that caused hang at ImageEngine.

Gaffer 1.4.0.0

15 Apr 20:03
Compare
Choose a tag to compare

Note : This release introduces linux-gcc11 builds which are only compatible with Linux distributions using glibc 2.28 or higher.
These specific linux-gcc11 builds are intended for testing purposes while we upgrade our toolchain and dependencies to better align
with VFX Platform 2023, and should be considered "beta" in advance of a stable release in Gaffer 1.5.

Features

  • Arnold : Added support for Arnold 7.3. Note that a minimum of 7.3.1.0 is required, meaning that 7.3.0.0 is not supported.
  • Cycles :
    • Updated to version 4.0.2.
    • Added support for CUDA and Optix devices (GCC 11 and Windows builds only).
  • Dispatcher : Dispatchers are now TaskNodes, allowing them to be nested in a task graph. Possibilities include :
    • Using a LocalDispatcher and a Wedge to launch multiple TractorDispatcher jobs.
    • Using a nested LocalDispatcher to perform a group of tasks on a single blade within a TractorDispatcher job.
  • SelectionTool : Added select mode plug. When set to anything except Standard using the SelectionTool causes the actual scene location selected to potentially be modified from the originally selected location. Selection modifiers work identically for deselection. Currently, two selectors are implemented :
    • USD Kind : When selecting, the first ancestor location with a usd:kind attribute matching the chosen list of USD Kind will ultimately be selected. USD's Kind Registry includes Assembly, Component, Group, Model and SubComponent by default and can be extended via USD startup scripts.
    • Shader Assignment : When selecting, the first ancestor location with a renderable and direct (not inherited) shader attribute will ultimately be selected. This can be used to select either surface or displacement shaders.
  • GraphEditor : Added X shortcut for removing connections between nodules. Hold X then left click to remove all connections under the cursor. Hold X then left drag to draw a line, all connections that intersect with the line will be removed once the drag is ended (#788).
  • LightPosition Tool : Added a variation on the shadow placement tool to place highlights. Lights are positioned such that they will create a specular highlight at the target point.
  • DeepSlice : Added a new node for clipping out part of an image based on depth.
  • MeshTessellate : Added a new node for increasing the polycount of subdivision meshes.
  • ImageInspector : Added a new panel for inspecting image format, metadata and channel statistics.

Improvements

  • Arnold :
    • OSL shaders with connections from multiple outputs are no longer duplicated on export to Arnold.
    • Gaffer's native OpenColorIO config is now automatically translated to Arnold. Use an ArnoldColorManager node to override this behaviour.
  • ArnoldShader : Added parameter tooltips based on help metadata provided by Arnold.
  • CyclesOptions : Improved device selection UI.
  • 3Delight :
    • Added NSI screen static sampling pattern option (dl:staticsamplingpattern).
    • Added support for layerName parameter in output definitions.
    • Added support for filter parameter in output definitions.
    • Added camera overscan support.
    • Added support for reading dl: and user: attributes from shaders.
    • Added importanceSampleFilter plug to DelightOptions, providing denoiser-compatible output.
    • Added support for external procedurals.
    • Matched DelightOptions default values for oversampling and shadingSamples to 3Delight's own default values.
    • NSI scene description export format is now based on file extension - .nsi for binary and .nsia for ASCII.
  • EditScope : Added a summary of edits in the NodeEditor, with the ability to select the affected objects and quickly navigate to the processor nodes.
  • GraphEditor :
    • The source node for any location can be located by dragging the location into the GraphEditor from the Viewer or HierarchyView.
    • Removed all renderer-specific Render and InteractiveRender nodes from the node menu. These nodes still exist for backwards compatibility with old scenes, but the generic Render and InteractiveRender nodes should now be used instead.
    • Improved logic used to connect a newly created node to the selected nodes.
  • GraphComponent : Node and Plug names may now start with a numeric digit.
  • LocalDispatcher :
    • Added a new dockable LocalJobs editor, to replace the floating window previously accessible via the "Execute/Local Jobs" menu item.
    • Task output is now shown in the UI.
    • Jobs are no longer removed from the UI as soon as they complete.
    • Incomplete jobs are now killed automatically when the application is closed, after prompting to confirm that shutdown should go ahead.
  • LightPositionTool : The tool is now only visible for members of the __lights set, instead of all objects.
  • Catalogue : Added imageNames output plug, containing the names of all images in the Catalogue. Among other things this can be used to drive a Wedge or ContactSheet node and a CatalogueSelect.
  • ImageReader : Added fileValid = False metadata to images from missing frames, when missingFrameMode is Black or Hold.
  • Collect : Added the ability to collect StringVectorData inputs.
  • Toolbars : Changed hotkey behavior to toggle any tool on and off. Exclusive tools such as the Translate and Crop Window tools activate the first tool (currently Selection Tool) when they are toggled off.
  • CropWindowTool : Added Alt + C for toggling both the crop window tool and the relevant crop window enabled plug.
  • TaskList, FrameMask : Reimplemented in C++ for improved performance.
  • Cache : Increased default computation cache size to 8Gb. Call Gaffer.ValuePlug.setCacheMemoryLimit() from a startup file to override this.
  • Dispatcher : Reduced internal overhead of dispatch() call, with one benchmark showing around a 3x speedup.
  • ScriptWindow : Added "Save" option to dialogue shown when closing a window containing unsaved changes.
  • Resize :
    • Added support for deep images.
    • Added "Nearest" filter.
  • Shuffle :
    • Reimplemented to match ShuffleAttributes and ShufflePrimitiveVariables.
      • Any number of shuffles can be added using the UI.
      • Wildcards can be used to match multiple source channels, and expressions can be used to map them to destination channels.
      • Source channels can optionally be deleted after shuffling.
      • Overwriting of destination channels can optionally be avoided.
    • Added missingSourceMode plug to determine behaviour when a source channel doesn't exist.
  • NodeEditor : Improved image channel selectors :
    • Added "Custom" option, to allow strings to be entered manually.
    • Added right-click context menu.
  • Switch : Added connectedInputs output plug.
  • Backdrop : Improved drawing order for nested backdrops :
    • Larger backdrops are automatically drawn behind smaller ones, so that nested backdrops will always appear on top.
    • Added a depth plug to assign a manual drawing depth for the rare cases where the automatic depth is unwanted.
  • ImageStats : Added areaSource plug, allowing area to be driven by the input display window or data window.
  • ScenePlug, ImagePlug : Child plugs are now serialisable. Among other things, this enables them to be driven by expressions (#3986).
  • Premultiply : Added useDeepVisibility plug, which weights samples according to their visibility based on the opacity of samples in front.
  • ImageReader : Improved multithreading of EXR reads. This can result in a performance improvement of around 4X for large images.
  • Added OIIO config that disables OIIO threading by default. This simplifies our threading model, and has no impact on performance for our main use cases. If read performance of Gaffer compositing using non-EXR formats, such as Tiff, is important to you, you may want to add your own config to turn OIIO threading back on.
  • Wireframe :
    • Improved performance ~3x.
    • Improved cancellation responsiveness.

Fixes

  • Arnold :
    • Fixed rendering of shaders imported from HtoA via USD.
    • Fixed USD export of shaders to use outputs:out instead of outputs:DEFAULT_OUTPUT.
    • Fixed rendering of osl shaders using the code parameter.
  • Cycles :
    • Fixed hangs and crashes when using non-default session modes such as SVM shading.
    • Fixed failure to render background light in batch renders (#5234).
    • Fixed failure to update when reverting a background shader to previous values.
  • 3Delight :
    • Fixed failure to change sampling pattern per frame.
    • Fixed Resolution Multiplier support.
    • Fixed UI visibility of angle parameter for distant lights, which was previously hidden.
    • Fixed export of Varying primitive variables on meshes (#5781).
    • Fixed loading of surface shaders such as dlStandard so that they can be connected to the inputs of shaders such as dlLayeredMaterial.
  • Widget :
    • Fixed bug that prevented Gadgets from receiving drops from another application.
    • Fixed errors when dragging from another application onto widgets that didn't expect it.
  • Gadget : Fixed access to DragDropEvent.sourceWidget and DragDropEvent.destinationWidget from Python slots connected to a Gadget's DragDropSignals.
  • GraphGadget : Fixed unwanted highlighting of nodes when custom drag & drop handlers were active.
  • Viewer : Fixed selection overlay glitches with an Arnold skydome_light and an empty selection.
  • GafferTest, GafferImageTest : Fixed import of these modules if the Gaffer module had not been imported previously.
  • ViewportGadget : Fixed selection issues with Intel GPUs (#901, #2788).
  • TransformTool : Fixed alignment of green "value changed" icon for orientation plugs.
  • PlugAlgo :
    • Updated canSetValueFromData(), setValueFromData() and getValueAsData() with support for missing types.
    • Fixed prom...
Read more