Gaffer 1.3.0.0 is now available. This release has a major focus on improvements to colour management, with the 3D and UV Viewers now colour managed, new workflows to configure OCIO at both the script and context level, and the ACES Studio OpenColorIO config now used by default. Gaffer 1.3 is a big step forward for all things colour.
In addition to the colour management improvements, the Gaffer 1.3.0.0 release also features significant improvements to image performance, new and updated nodes, a new light tool for manipulating spot lights in the Viewer, further improvements to expansion management, an update to Cycles 3.5, and a variety of other features, fixes, updates and improvements.
Read on for more details, and please refer to the releases page for downloads and the full list of changes.
- What’s new in Gaffer 1.3.0.0
Color Management Improvements
Updated Default OpenColorIO Config
Gaffer 1.3 uses the ACES Studio OCIO config by default.
info
linear-sRGB
to ACEScg
.For compatibility with existing projects, the previous OCIO config is still available and can be used by setting the $OCIO
environment variable to the openColorIO/config.ocio
file found in the Gaffer install directory, or configuring the openColorIO.config
plug in the script settings to Legacy (Gaffer 1.2)
.
Colour Managed 3D & UV Viewers
The Scene and UV Viewers now join the Image Viewer in being colour managed, with updated controls to set the View and Display, adjust the viewer exposure and gamma, and solo channels.
Gamma Adjustments applied after display Transform
Viewer gamma adjustments are now applied after the display transform. This behaves more like a “display-referred” exposure adjustment and matches common behaviour established in other compositing applications and players.
Script OpenColorIO Settings
The OpenColorIO settings have moved from the application Preferences
to the script Settings
, allowing per-script customisation of the OCIO configuration.
We have replaced the displayColorSpace
plug with a number of new plugs designed to allow greater control over a script’s OpenColorIO configuration.
Config
The config
plug defines the OpenColorIO config to use for the current script. This defaults to respecting the $OCIO
environment variable, falling back to the ACES Studio 1.3 config when $OCIO
is undefined.
Gaffer provides three OCIO configs out-of-the-box:
- ACES 1.3 CG Config
- ACES 1.3 Studio Config
- Legacy (Gaffer 1.2) – The default config provided in Gaffer releases prior to 1.3.0.0, and is equivalent to OCIO’s nuke-default config.
Working Space
The workingSpace
plug defines the color space in which Gaffer performs image processing. ImageReaders will automatically load images into this space, and ImageWriters will automatically convert images from this space.
This defaults to the scene_linear
role of the current OCIO config.
UI Display Transform
The colour transform used for showing colours in the UI – in swatches, colour pickers, etc. This is a combination of an OpenColorIO Display and View.
info
ImageReader Color Space “Automatic” Preset
The “None” preset has been renamed to “Automatic” and now updates to display the name of the automatically chosen colorspace for the file currently being read.
The list of presets displayed in the colorSpace
menu is now grouped by family and filtered using the "file-io"
category, if the current OpenColorIO config provides it.
OpenColorIOContext Node
OpenColorIOContext is a new node that creates Gaffer context variables to override the OpenColorIO config, working space and variables used by upstream nodes, allowing these to be varied by context.
The existing context
plugs on other OCIO nodes have been deprecated in favour of this node, which provides more functionality and can override multiple upstream nodes at once rather than having to edit the context
plugs on each individual node. These plugs will still be visible in existing scripts on nodes where they were already in use, but will be hidden on newly created nodes or nodes without context
overrides.
Improved Color Transform Performance
We’ve improved the performance of color transforms and the detection of no-op transforms when converting between the same colorspace via a different name (such as between “scene_linear” and “ACEScg”, which are equivalent in the default ACES 1.3 Studio Config).
Image Performance Improvements
We have significantly improved performance of image nodes that require bulk sampling of pixel data, such as Dilate, Erode, Median, Resize, ImageTransform, Blur & VectorWarp. For example, a Blur with a large radius is now almost 6x faster than it was in Gaffer 1.2.
VectorWarp
VectorWarp has a new Bilinear
filter
option, for faster but lower quality warping.
New and Updated Nodes
MeshNormals
The MeshNormals node can generate smooth (vertex), faceted (uniform), or mixed (face varying) normals, with additional control over the weighting
method used to calculate the normal and the thresholdAngle
used to determine whether a face varying normal should be faceted or smooth.
The name of the primitive variable containing the computed normal can be specified on the normal
plug, allowing for custom normal data to be generated without overwriting the original.
VolumeScatter
The VolumeScatter node can distribute points throughout a volume, with control over point density
and which grid
is used for distribution.
Scatter (a.k.a. the node formerly known as Seeds)
The Seeds node has been renamed to Scatter and includes faster performance and a variety of new features.
Scatter can now directly sample primitive variables from the source mesh onto the scattered points via the new primitiveVariables
plug.
A referencePosition
plug has been added to allow point distribution to remain consistent on animated meshes, for example using a Pref
primitive variable containing rest positions rather than P
.
A uv
plug has been added to specify the UV set used for point generation.
Scatter also includes:
- Support for density primitive variable values above
1
. - Improved numerical accuracy.
info
ImageReader fileValid
Plug
The ImageReader node has a new fileValid
plug that outputs True
if the required file exists for the current frame.
This joins the availableFrames
plug added in Gaffer 1.2.9.0 to simplify image QC networks and make it easier to report missing frames.
Light Manipulator
Spot lights can now be edited in the Viewer with the new Light Tool.
The light manipulator is available by pressing the A
shortcut or by enabling it from the Viewer tool bar.
With this initial release, spot light cone and penumbra angles can be adjusted. Quad light width and height adjustments are in development and will appear in a future release.
An arc is drawn while the cone or penumbra angle is being adjusted, this provides a visual guide to the current angle and reference to the previous value.
While hovering over or interacting with a light handle, the target plug or edit scope is displayed next to the mouse cursor.
Expansion Management
Gaffer 1.3 includes further expansion improvements, building on the changes released in Gaffer 1.2.
Leaf-level inclusion and exclusion
Visible Set inclusions and exclusions can now be applied to leaf level locations, allowing for even greater control over visibility of individual objects.
F
shortcut to expand and frame
Prior to Gaffer 1.3, selecting a scene location would result in all Hierarchy Views automatically expanding to and framing that location. We have now replaced this automatic behaviour with user-controlled updates via the new F
shortcut. Pressing F
while hovered over a Hierarchy View will expand the ancestors of all selected locations, and scroll to the first location found.
Red bounds for excluded locations
The bounding boxes of locations excluded from the Visible Set are now subtly tinted red in the Viewer as a hint that the location has been excluded and cannot be expanded.
Cycles 3.5
Cycles has been updated to 3.5 with improved light tree sampling of lights and emissive materials. Light tree sampling is enabled by default, and can be disabled via the CyclesOptions node. The emission sampling method can be adjusted via the CyclesAttributes node.
Gaffer 1.3 also adds support for rendering with path guiding. Path guiding is disabled by default, and can be enabled and configured via the CyclesOptions node.
Appleseed Removal
Since 2014, Gaffer has supported rendering with Appleseed, included out-of-the-box via an integration generously contributed by Esteban Tovagliari.
Unfortunately, as Appleseed hasn’t seen a release since the Appleseed 2.1.0-beta in 2019, maintaining its integration has become increasingly difficult, so we have removed Appleseed support in Gaffer 1.3. Gaffer continues to ship with an open source renderer out-of-the-box, now in the form of Cycles.
Many thanks to Esteban and the entire Appleseed team for all their contributions and for playing such an important role in Gaffer’s journey to this point.
Dependency Updates
USD has been updated to 23.05 and is now built with MaterialX 1.38.4.
OpenImageIO has been updated to 2.4.11.0.
OpenColorIO has been updated to 2.2.1.
OpenEXR has been updated to 3.1.7.
Imath has been updated to 3.1.7.
1.3.0.0 Release Notes
For a full list of improvements and changes in Gaffer 1.3.0.0 please refer to the release notes.