Gaffer 1.6 release: Difference between revisions

From Gaffer Wiki
Jump to navigation Jump to search
Created page with "<blockquote>Note : Gaffer 1.6 is currently in alpha, with a stable release planned for September 2025.</blockquote> The current alpha release is [https://github.com/GafferHQ/gaffer/releases/tag/1.6.0.0a3 1.6.0.0a3], and a consolidated set of changes from all alphas can be found below. == Features == * '''Arnold''' : Added multi-layer EXR support. All outputs with the same filename are now written to the same file via a single output driver. * '''Cycles''' : Updated to..."
 
mNo edit summary
 
Line 1: Line 1:
<blockquote>Note : Gaffer 1.6 is currently in alpha, with a stable release planned for September 2025.</blockquote>
<blockquote>Note : Gaffer 1.6 is currently in alpha, with a stable release expected for September 2025.</blockquote>


The current alpha release is [https://github.com/GafferHQ/gaffer/releases/tag/1.6.0.0a3 1.6.0.0a3], and a consolidated set of changes from all alphas can be found below.
The current alpha release is [https://github.com/GafferHQ/gaffer/releases/tag/1.6.0.0a3 1.6.0.0a3], and a consolidated set of changes from all alphas can be found below.

Latest revision as of 10:58, 16 August 2025

Note : Gaffer 1.6 is currently in alpha, with a stable release expected for September 2025.

The current alpha release is 1.6.0.0a3, and a consolidated set of changes from all alphas can be found below.

Features

  • Arnold : Added multi-layer EXR support. All outputs with the same filename are now written to the same file via a single output driver.
  • Cycles : Updated to version 4.4.0.
  • DiskBlur : Added image node for doing fast variable-radius blur. Will be used as core of upcoming focal blur node.
  • SceneInspector :
    • Rewrote using the same framework as LightEditor, AttributeEditor and RenderPassEditor.
    • Added EditScope support, with in-place editing of attributes, options and shader parameters. Editing for other properties is planned for future versions.
    • Improved comparison abilities, including the added ability to compare two render passes.
    • Added subsections for options and attributes, splitting them by category.
    • Added column resizing, including automatic resizing to show long attribute names.
    • Added inspection of all shaders and parameters in shader networks.
    • Added more detailed inspection of meshes and curves.
    • Added more detailed inspection of primitive variables.
  • ImageSelectionTool :
    • Added new tool that allows selecting scene paths based on an image. Works with both Catalogue images and images on disk. Has two requirements : anid AOV (added using theID preset on anOutputs node), and a render manifest (added using StandardOptions > Render Manifest > File Path ).
    • Also supports picking instance IDs, using aninstanceID aov. Supported when rendering an instancer that is encapsulated ( USD instancers rendered to Arnold are encapsulated by default ).
  • ColorInspectorTool : Moved the Viewer's colour inspectors into a dedicated tool, selected from the toolbar on the left.
  • OSLObject : Added the ability to usepointcloud_search() andpointcloud_get() to query geometry from arbitrary scene locations.
  • CameraQuery : Added a new node to query camera parameters (#6431).

Improvements

  • DeleteAttributes : Optimised case where all attributes are deleted. The input attributes are no longer accessed at all in this case.
  • ShaderAssignment : Thescene:path context variable is now available in Switches connected directly to theShaderAssignment.shader input. This allows different shaders to be assigned to different locations using a single ShaderAssignment node. Please note that thescene:path context variable remains unavailable to the individual shader nodes themselves for performance reasons.
  • 3Delight, Cycles, OpenGL : Added support for custom EXR metadata, usingheader:* parameters on the output definition.
  • RenderManAttributes, RenderManOptions : Plugs now respect minimum and maximum values specified by RenderMan.
  • RenderManShader : Improved GraphEditor labels for parameter RGB and XYZ components.
  • Cycles :
    • Improved responsiveness for Viewer camera updates when using Cycles as the viewport renderer. One benchmark shows around a 10x improvement in frame rate.
    • Added support forlayerName parameter in outputs, to control the naming of channels in EXR outputs.
  • StandardOptions :
    • Added render manifest option.
    • Addedrender:cameraInclusions,render:cameraExclusions,render:matteInclusions, andrender:matteExclusions options.
  • CyclesMeshLight : Improved presentation ofcameraVisibility andlightGroup plugs in the Node Editor.
  • VisualiserTool : Added visualisation of labels for uniform primitive variables, face indices and curve indices.
  • PathListingWidget :
    • Improved formatting of Box and Matrix values.
    • Improved performance when showing colour values.
    • Added support for showing spline values.
  • GafferUI : Added support for drag and dropping numeric vector data onto numeric vector plugs of compatible types ( For example, dropping a list of ints onto a FloatVectorDataPlug ).
  • Switch : Optimised disabled switches using a direct internal connection, even when theindex is not constant.
  • RenderMan : Added dedicated viewport visualisers for RenderMan lights.
  • Viewer : AddedAdd image comparison mode.
  • LocaliseAttributes : Added support for localising global attributes, controlled by the newincludeGlobalAttributes plug.
  • AttributeTweaks, ShaderTweaks : Global attributes are now localised whenlocalise is enabled and no matching attribute is found at the target location or any of its ancestors.
  • AttributeQuery, ShaderQuery : Global attributes are now queried wheninherit is enabled and no matching attribute is found at the target location or any of its ancestors.
  • SphereLevelSet : Improved performance when evaluating the bounding box.
  • RenderPassMenu : Added a search menu which displays only the render passes matching the search text. The search menu can be disabled by registering the following metadata in a startup file.Gaffer.Metadata.registerValue( Gaffer.ScriptNode, "variables.renderPass.value", "renderPassPlugValueWidget:searchable", False ).
  • RenderPassEditor, AttributeEditor, LightEditor, SceneInspector : Improved presentation of VectorData types in the Inspect popup.
  • CompoundDataPlugValueWidget : Removed unnecessary nesting from the menu for adding plugs.
  • Arnold : Improved readability of shader node names as they appear in statistics and.ass files. They are now formatted asshader:{handle}:{uniqueId} where{handle} is the Gaffer node name of the assigned shader, or if loaded from USD, the prim name.
  • PrimitiveInspector : Addedlocation widget for selecting the location to be inspected.
  • OptionalValuePlugValueWidget : The widget for theenabled plug can now be customised usingplugValueWidget:type metadata.
  • PathListingWidget : Improved formatting of TypedVectorData.

Fixes

  • LocalDispatcher, SystemCommand,gaffer env : Fixed unwanted upper-casing of environment variable names on Windows (#6371).
  • OpenGLAttributes : The default values of attribute plugs now correctly reflect the default behaviour of the OpenGL renderer.
  • Arnold : Fixed default behaviour ofai:abort_on_license_fail option with Arnold 7.3 and above.
  • Cycles :
    • Fixed bugs handling identical cameras with different transforms.
    • Fixed handling ofcycles:volume_precision attribute, which was previously being ignored.
    • Fixed bugs handling unknown VDB grid types.
    • Fixed potential crash rendering VDB objects.
    • Fixed potential threading-related crashes.
  • RenderPassEditor : Fixed default values displayed fordl:oversampling anddl:quality.shadingsamples options.
  • PlugLayout : Fixed bug resolvinglayout:index metadata.
  • ScriptNodeAlgo : Stopped polluting the ScriptNode context withui:* variables. Warnings are now emitted by the UI if anything else causes similar pollution.
  • Checkerboard : Fixed crash when evaluated for non-existent channel name.
  • PathListingWidget :
    • Prevented emission ofupdateFinishedSignal() when a new update is pending anyway.
    • Fixed potential threading-related crash.
  • LightEditor, RenderPassEditor, AttributeEditor :
    • Fixed missing history entries when two edits have the same source plug.
    • Fixed potential crashes inShow History....
    • Fixed potential UI lag inShow History....
    • Fixed flickering in history window when scrubbing the timeline.
  • RenderPassEditor : Fixed error when deleting a pass while a history window was open for it.
  • OptionalValuePlugValueWidget : Fixed handling of keyword constructor arguments. In particular this meant thatparenting arguments did not work.
  • ScenePathPlugValueWidget :
    • Fixed context used to evaluate the scene. This is now focus-aware, so the scene browser only shows locations that are available with respect to the current focus.
    • Fixed bugs that prevented usage inEditor.Settings nodes.
  • SceneReader : Fixed bug reading USD cameras without authored shutter attributes. Previously, the loaded camera would have an unwanted shutter parameter, but now the shutter parameter is correctly omitted.
  • SceneWriter : Fixed bug writing cameras without a shutter parameter to USD. Previously shutter attributes were authored with default values, but now the shutter attributes are not authored at all.
  • ImageReader : Fixed color-space handling for secondary RGB layers. Previously color transformations were only being applied to the mainRGB channels and not tosomeLayer.RGB (#6524).
  • ContextQuery : RemovedCreate Context Query... menu item from plugs where it was not relevant.
  • Menu : Executing a non-searchable menu item from a searchable menu no longer causes it to appear as the last used action in the menu's search field.
  • PathListingWidget :
    • Fixed ordering ofselectionChangedSignal() emission fromsetColumns() call. It is now emitted whengetColumns() returns the new columns, not the old ones.
    • Fixed unwanted vertical scrolling caused bysetColumns().
    • Columns set to automatically stretch now equally share available space when a PathListingWidget's columns are updated viasetColumns().
  • LightEditor, RenderPassEditor, AttributeEditor :
    • Fixed unwanted vertical scrolling when switching tabs.
    • Fixed flickering when switching tabs.

API

  • Gaffer module : Addedenvironment() method, returning a dictionary containing all current environment variables. Unlikeos.environ, this preserves case on Windows.
  • GafferScene::RenderManifest : Added class for representing mapping of ids to paths in renders. Supports reading EXR and cryptomatte manifests, and writing EXR manifests.
  • Metadata :
    • AddedregisterValues() function that registers multiple metadata entries from a dictionary of string targets.
    • UpdatedtargetsWithMetadata() function to support matching multiple targets.
  • MetadataAlgo : AddedcreatePlugFromMetadata() function.
  • RenderController : AddedrenderManifest() method.
  • ImageGadget : Added support for showing selected and highlighted ids. Controlled usingsetIDChannel,setSelectedIDs, andsetHighlightID.
  • ShadingEngine : Added support for passing custom pointclouds to theshade() call.
  • SceneAlgo :
    • applyCameraGlobals() now always applies therender:overscan[Top/Bottom/Left/Right] options to the camera if they exist in the scene globals.
    • applyCameraGlobals() now applies therender:depthOfField option to thedepthOfField camera parameter. ThefStop camera parameter is no longer overridden to0.0 when therender:depthOfField option isFalse or not specified.
  • ScenePlug : Added optionalwithGlobalAttributes arguments tofullAttributes() andfullAttributesHash().
  • VectorDataWidget : Added optionalmaximumVisibleRows argument.
  • Path : AddedcontextProperty() method.

Breaking Changes

  • Arnold :
    • Removed support for Arnold 7.2.
    • RemovedGafferArnoldUI.GPUCache.populateGPUCache() function.
  • ArnoldAttributes, CyclesAttributes, DelightAttributes, OpenGLAttributes, StandardAttributes, USDAttributes : Attributes plugs have been renamed to match the name of their attribute (e.g.attributes.visibility is nowattributes.scene:visible). Compatibility configs have been provided to allow these nodes to be loaded from scripts saved in earlier Gaffer versions.
  • ArnoldOptions, CyclesOptions, DelightOptions, StandardOptions : Option plugs have been renamed to match the name of their option (e.g.options.renderCamera is nowoptions.render:camera). Compatibility configs have been provided to allow these nodes to be loaded from scripts saved in earlier Gaffer versions.
  • ArnoldOptions : Changed the default value of theai:texture_max_memory_MB plug to 4096 to match Arnold's default.
  • StandardNodule : Removed deprecatedsetCompatibleLabelsVisible().
  • DeleteAttributes : Changed base class and marked asfinal.
  • Wrapper : Thegaffer wrapper on Linux no longer allows a custom Python build to be used. If you wish to use a custom Python, callpython _gaffer.py instead.
  • RenderPasses, DeleteRenderPasses : Renamed TypeId enum values toRenderPassesTypeId andDeleteRenderPassesTypeId.
  • OpenGLAttributes : The default values of the attribute plugs authoring thegl:primitive:bound,gl:primitive:outline,gl:primitive:points,gl:primitive:pointColor,gl:primitive:wireframe, andgl:primitive:wireframeColor attributes have changed to match the default behaviour of the OpenGL renderer. Scripts loaded from previous Gaffer versions with these plugs enabled and set to the default value will see a difference in OpenGL renders.
  • SceneTestCase : RemovedassertBoxesEqual() andassertBoxesAlmostEqual() methods.
  • RenderController : RemovedpathForID(),pathsForIDs(),idForPath() andidsForPaths(). UserenderManifest() instead.
  • Catalogue, CatalogueSelect, Display : Moved from GafferImage module to GafferScene.
  • StandardAttributes : Changed the default value of thelinkedLights plug to "defaultLights". Scripts loaded from earlier Gaffer versions containinglinkedLights plugs set to the previous default of "" will need to be updated as those plugs will now default to "defaultLights".
  • ImageView : Changed image comparison hotkey from <kbd>Q</kbd> to <kbd>K</kbd> ( <kbd>Q</kbd> now selects the selection tool in the image view, same as in the scene view ).
  • OSLObject, OSLImage, Expression : Removed support for file-based pointclouds.
  • ContextAlgo : Removed deprecated API. Use ScriptNodeAlgo instead, which has been available from Gaffer 1.4.13.0 onwards.
  • ScriptNodeAlgo : Reimplemented using Metadata rather than Context variables for storage. Use the ScriptNodeAlgo API instead of attempting direct access toui:* context variables.
  • SceneReader, SceneWriter : Changed handling of missing shutter parameters. See Fixes section for more detail.
  • StandardLightVisualiser : Removed protected methods for drawing visualiser elements. These are now part ofGafferSceneUI::Private::LightVisualiserAlgo. This namespace can be used by light visualisers, but is currentlyPrivate while the API details are being resolved.
  • AttributeTweaks : Tweaks withlocalise enabled and a mode ofCreateIfMissing will now not create an attribute if it is missing from the scene hierarchy, but exists in the globals.
  • AttributeQuery : Queries withinherit enabled will now return a result when querying an attribute that does not exist in the scene hierarchy, but does exist in the globals.
  • Arnold : Changed the naming of shader nodes in the generated Arnold scene.
  • Path : RemovedinspectionContext() method. UsecontextProperty( "inspector:context" ) instead.
  • SceneInspector :
    • RemovedsetTargetPaths() andgetTargetPaths() methods. Use thelocation andcompare.location settings plugs instead.
    • RemovedregisterSection() method.
    • RemovedDiff,SideBySideDiff,TextDiff,Row,Inspector,DiffRow,DiffColumn,Section,LocationSection,HistorySection andSetsSection classes.

Build

  • Boost : Updated to version 1.82.0.
  • Cortex : Updated to version 10.6.0.0a1.
  • Cycles : Updated to version 4.4.0.
  • FreeType : Updated to version 2.13.3.
  • LibRaw : Updated to version 0.21.4.
  • MaterialX : Updated to version 1.39.3.
  • Minizip : Updated to version 3.0.10.
  • OpenColorIO : Updated to version 2.3.2.
  • OpenEXR : Updated to version 3.2.4.
  • OpenImageIO : Updated to version 3.0.6.1.
  • OpenShadingLanguage : Updated to version 1.14.5.1.
  • OpenSubdiv : Updated to version 3.6.0.
  • OpenVDB : Updated to version 11.0.0.
  • Python : Updated to version 3.11.12.
  • PySide : Updated to version 6.5.6.
  • Qt : Updated to version 6.5.6.
  • Qt.py : Updated to version 1.4.6.
  • USD : Updated to version 25.05.01.