Skip to content

Releases: GafferHQ/gaffer

Gaffer 1.3.4.0

28 Sep 12:00
Compare
Choose a tag to compare

Improvements

  • Viewer : Added per-purpose control over which locations are shown in the viewer, according to their usd:purpose attribute.
    • The Drawing Mode dropdown menu can be used to to choose the visible purposes.
    • The default purposes can be specified in a startup file using Gaffer.Metadata.registerValue( GafferSceneUI.SceneView, "drawingMode.includedPurposes.value", "userDefault", IECore.StringVectorData( [ "default", "proxy" ] ) ).
  • StandardOptions : Added includedPurposes plug, to control which locations are included in a render based on the value of their usd:purpose attribute.
  • 3Delight : Added additional output presets.

Fixes

  • GraphEditor : Removed dynamic raster-space sizing of focus icon, as it caused excessive overlap with other nodes at certain zoom levels and on certain high resolution displays (#5435).
  • StringPlugValueWidget : Fixed bug handling Esc.
  • Arnold : Fixed unnecessary opaque attribute deprecation warnings. These are now only emitted in the case that opaque has been explicitly turned off.
  • ShaderUI : Fixed bug causing identical but independent shaders in a shader network from being included in the shader browser.
  • Encapsulate :
    • Fixed bug where global attributes (from the point of encapsulation) were baked into the contents of the capsule instead of being inherited naturally (from the node being rendered).
    • Fixed motion blur so that global settings are now taken from the downstream node being rendered, not from the input to the Encapsulate node.

API

  • SceneTestCase : Added assertScenesRenderSame() method.
  • RenderController : Added missing updateRequired() Python binding.
  • CapturingRenderer :
    • Added capturedObjectNames() method.
    • Added capturedName() and capturedLinkTypes() methods to CapturedObject class.

Build

  • Fixed compilation with Boost versions prior to 1.74.

Gaffer 1.2.10.4

27 Sep 17:45
Compare
Choose a tag to compare

Fixes

  • GraphEditor : Removed dynamic raster-space sizing of focus icon, as it caused excessive overlap with other nodes at certain zoom levels and on certain high resolution displays (#5435).
  • StringPlugValueWidget : Fixed bug handling Esc.
  • Arnold : Fixed unnecessary opaque attribute deprecation warnings. These are now only emitted in the case that opaque has been explicitly turned off.
  • ShaderUI : Fixed bug causing identical but independent shaders in a shader network from being included in the shader browser.

Gaffer 1.3.3.0

20 Sep 09:03
Compare
Choose a tag to compare

Features

  • 3Delight :
    • Added support for VDB volume objects.
    • Added support for vdbVolume shader.
    • Added support for volumeshader and displacementshader attributes.
    • Added support for spline parameters in shaders.

Improvements

  • SceneReader : Added support for reading from in-memory USD stages using a filename of the form stageCache:{id}.usd where {id} specifies a stage which has been inserted in the UsdUtilsStageCache.
  • Resample, Resize, Blur, ImageTransform : Improved performance, resulting in a 3x speedup in an obscure case, and a 5-10% speedup in more common cases.
  • ImageSampler : Added interpolate plug to control interpolation. Previously created ImageSamplers are unaffected, but interpolation is off by default for newly created ImageSamplers.
  • 3Delight :
    • Moved shaders to 3Delight/Shader menu and removed outdated shaders from the menu.
    • Shaders (including light shaders) are only loaded from the osl subdirectory of the 3Delight installation.
    • Primitive variables named uv are now automatically renamed st for compatibility with the uvCoord shader's expectation.
    • Added a default uvCoord shader during internal shader network preprocessing to shader parameters that do not have an input connection.
  • SetEditor : Added columns for controlling the Visible Set membership of set members. These allow the current members of a set to be included or excluded from the Visible Set by clicking within the Set Editor's Inclusions and Exclusions columns.

Fixes

  • SceneReader :
    • Fixed handling of invalid values on the following USD attributes :
      • PointBased : positions, normals, velocities, accelerations.
      • Curves : widths.
      • PointInstancer : ids, protoIndices, orientations, scales, velocities, accelerations, angularVelocities.
      • Points : ids, widths.
        Invalid values are now ignored with a warning, instead of loading as invalid primitive variables.
    • Fixed treatment of unconnected material outputs. If they were "authored" but not connected to a source, they were incorrectly being treated as valid attributes, and were being loaded as empty ShaderNetworks which caused problems elsewhere.
  • DispatchDialogue : Changed the button label for the results display from "Ok" to "Close".
  • Viewer : Fixed display of infinite values in the pixel inspectors. These were being incorrectly displayed as nan instead of inf.
  • OptionTweaks : Fixed bug that prevented multiple tweaks being made to the same option in one node.

API

  • SceneAlgo :
    • Added findAll() method, for finding all scene locations matching a predicate.
    • Added findAllWithAttribute() method, for finding all scene locations with a particular attribute.
  • ThreadState : Added process() method.
  • Process : Added const overload for handleException() method. The non-const version will be removed in future.
  • ContextMonitor : Added Statistics::variableHashes() method, allowing introspection of specific variable values.

Build

  • MacOS : Fixed compilation with Clang 13.
  • Cortex : Updated to version 10.5.2.0.

Gaffer 1.2.10.3

20 Sep 13:06
Compare
Choose a tag to compare

Fixes

  • DispatchDialogue : Changed the button label for the results display from "Ok" to "Close".

Gaffer 1.3.2.0

30 Aug 09:15
Compare
Choose a tag to compare

Features

  • LightTool : Added manipulator for quad lights.
  • Collect : Added a utility node for collecting the values of arbitrary inputs across a range of contexts.

Improvements

  • Viewer :
    • Added visualisation of light filters for USD lights.
    • Added support for USD lights and shaders in the floating inspector panel.
    • Improved support for looking through USD spot lights.
  • ShaderTweaks/ShaderQuery : Added presets for USD light and surface shaders.
  • Test app :
    • The -category argument now accepts a space-separated list of categories, optionally containing wildcards.
    • Added -excludedCategories and -showCategories arguments.
    • Added information about performance test timings to the output stream.
  • LightToCamera : Added support for USD spot lights.

Fixes

  • Viewer :
    • Fixed crash when visualising lights with a light filter intended for a different renderer.
    • Fixed visualisation of Cycles point light size.
    • Fixed visualisation of Arnold light gobo textures with scaled UV coordinates.
  • Arnold :
    • Fixed screen window export for Lentil cameras.
    • Fixed writing of image metadata for empty strings and strings containing spaces. This fixes the malformed line "string 'gaffer:context:ocio:config'" warning.
  • Application : Fixed the -threads argument to clamp the number of threads to the number of available hardware cores (#5403).
  • CompareFloat, CompareColor, CompareVector : Worked around crashes in OSL's batched shading system (#5430).
  • PlugValueWidget : Fixed search for auxiliary plugs of output plugs. In this case, the inputs are now searched instead of the outputs.
  • GafferUI : Fixed TableView bug causing the horizontal scrollbar to potentially overlap the last row (#5328).
  • Dispatch App : Fixed bug that prevented setting specific dispatcher plug values from the command line (#5434).

API

  • ThreadMonitor : Added new class for tracking the threads used to perform processes.
  • PlugAlgo : Added findSource() method.
  • TestRunner :
    • Added CategorisedTestMethod decorator used to assign categories to test methods.
    • Added categories() static method to return the list of available categories in a test suite.
    • Added filterCategories() static method to skip tests according to included and excluded categories.

Documentation

  • Removed release notes for versions prior to 1.0.0.0.

Gaffer 1.2.10.2

30 Aug 09:00
Compare
Choose a tag to compare

Fixes

  • Arnold : Fixed screen window export for Lentil cameras.
  • Application : Fixed the -threads argument to clamp the number of threads to the number of available hardware cores (#5403).
  • CompareFloat, CompareColor, CompareVector : Worked around crashes in OSL's batched shading system (#5430).
  • GafferUI : Fixed TableView bug causing the horizontal scrollbar to potentially overlap the last row (#5328).
  • Viewer :
    • Fixed visualisation of Cycles point light size.
    • Fixed visualisation of Arnold light gobo textures with scaled UV coordinates.
  • Dispatch App : Fixed bug that prevented setting specific dispatcher plug values from the command line (#5434).

Gaffer 1.3.1.0

09 Aug 14:42
b951b75
Compare
Choose a tag to compare

Features

  • USDShader : Added a node for loading shaders from USD's SdrRegistry. This includes shaders such as UsdPreviewSurface and UsdUVTexture, which are now available in the USD/Shader section of the node menu.
  • USDLight : Added a node for defining UsdLux lights. This is available from the USD/Light section of the node menu.
  • SceneReader, SceneWriter : Added limited support for reading and writing Usd Volume prims.

Improvements

  • LightEditor : Added section displaying UsdLux shadow parameters.
  • Cycles : Added support for UsdLux lights.
  • LightTool : Added support for editing animated plugs.
  • Median, Erode, Dilate : Improved performance significantly for wide filters. Measured improvements of 100x faster for Erode/Dilate, and 10x faster for Median.

Fixes

  • SceneWriter : Fixed writing of UsdLux lights.
  • Viewer : Fixed visualisation of shaping cones for UsdLux lights, which were previously drawn at half the correct angle.
  • DisplayTransform : Fixed missing view presets when display is at the default value (#5392).
  • Arnold
    • Fixed translation of vector typed outputs defined as vector <name> in an output definition.
    • Fixed translation of shadow:enable and shadow:color parameters on UsdLux lights, which were previously ignored.
  • LightTool : Fixed bug causing non-settable plugs to be enabled, such as plugs with an expression as input or those using the default spreadsheet row for their value. This generated the error ERROR : EventSignalCombiner : Cannot set value for plug {plug} except during computation.
  • LightEditor : Fixed toggling values in cases where inherited light attributes were set by a script context variable without including a default.
  • GLWidget : Fixed rare crash when showing a GLWidget for the first time.
  • BranchCreator : Fixed bug which could cause inconsistent hashes to be generated.
  • Cycles :
    • Fixed rendering of meshes with faceted normals, which were previously being rendered as smooth. This applies to meshes without an N primitive variable, and meshes where N has Uniform or FaceVarying interpolation. Note that Cycles has no native support for FaceVarying interpolation so that in this case all faces are rendered faceted.
    • Fixed translation of Uniform N primitive variables. These are now available to be queried from the standard Ng attribute in Cycles.
  • ImageSampler : Fixed handling of exceptional floating point values. Now returns inf if inf values are present in the image, rather than 3.4e38.
  • Merge :
    • Fixed the Difference operation to return correct values for exceptional floating point values. Now there is 0 difference between inf and inf, or NaN and NaN. Additionally, there is infinite difference between NaN and any other number, so assertImagesEqual will correctly report NaNs that don't belong.
    • Fixed the Divide operation to return 0 for 0/0. This is consistent with how we previously handled fully black tiles, and avoids introducing NaN values which create problems in compositing.
  • Median/Erode/Dilate : Fixed possible crash bug if there were NaNs in the input image.
  • ValuePlug : Fixed bug which caused ComputeNode::computeCachePolicy() to be called unnecessarily for input plugs in some circumstances. This could affect performance, particularly when the plug belonged to a node implemented in Python.

API

  • OptionalValuePlug : Added a new plug type that pairs an enabled BoolPlug with a value ValuePlug.
  • Shader : Added support for using OptionalValuePlug to represent optional parameters.

Build

  • Cortex : Updated to version 10.5.1.0.

Gaffer 1.2.10.1

09 Aug 09:08
Compare
Choose a tag to compare

Fixes

  • Viewer : Fixed visualisation of shaping cones for UsdLux lights, which were previously drawn at half the correct angle.
  • Arnold
    • Fixed translation of vector typed outputs defined as vector <name> in an output definition.
    • Fixed translation of shadow:enable and shadow:color parameters on UsdLux lights, which were previously ignored.
  • BranchCreator : Fixed bug which could cause inconsistent hashes to be generated.
  • LightEditor : Fixed toggling values in cases where inherited light attributes were set by a script context variable without including a default.

Gaffer 1.3.0.0

13 Jul 16:21
Compare
Choose a tag to compare

Features

  • MeshNormals : Added a new node for adjusting mesh normals.
  • VolumeScatter : Added a new node for scattering points throughout a volume.
  • Cycles : Updated to version 3.5.0.
  • LightTool : Added 3d viewer tool for manipulating lights. Manipulation of spot light cone and penumbra angles is currently supported.

Improvements

  • 3D Viewer :
    • Added OpenColorIO colour management.
    • Added exposure, gamma and solo channel settings.
    • Ancestors and siblings of locations included in the Visible Set are no longer drawn while their ancestors are collapsed.
    • Added red wireframe colour to the bounding box of locations excluded from the Visible Set.
  • UVInspector : Added exposure, gamma and solo channel settings.
  • ImageReader : The colorSpace widget now displays the name of the assumed colorspace when in Automatic mode.
  • ImageReader, ImageWriter : The colorSpace menu is now filtered using the file-io category, if the current OpenColorIO config provides it.
  • ImageReader, OpenImageIOReader : Added fileValid BoolPlug that outputs True if the required file exists for the current frame.
  • OpenColorIO :
    • Updated default config to ACES Studio 1.3.
    • Added openColorIO plug to ScriptNode, allowing the OpenColorIO config, working space, variables and display transform to be customised on a per-script basis.
    • Improved colorspace menus :
      • Organised colorspaces into submenus by family.
      • Removed unwanted title-casing, so that names are now displayed verbatim.
      • Added control over the presence of roles by registering openColorIO:includeRoles metadata to the relevant plugs.
    • Improved View display transform menu :
      • Ordered menu items to match the order in the OpenColorIO config.
      • Removed "Default" view.
      • Added menu options for changing the current Display.
      • Allowed the available views to be filtered using an openColorIO:activeViews metadata value registered on the View's displayTransform.name plug. Values should be space-separated names, optionally containing wildcards.
    • OpenColorIOContext : Added a new node that creates Gaffer context variables to define the OpenColorIO config used by upstream nodes. This allows different OpenColorIO configs to be used in different Gaffer contexts.
    • OpenColorIOTransform :
      • Improved performance.
      • Improved detection of no-op transforms, such as when converting between colorspace aliases like scene_linear and ACEScg.
    • ColorSpace : Defaulted the input and output space to the current working space.
    • DisplayTransform : Defaulted the input space to the current working space, and the display and view to the defaults defined by the current OpenColorIO config.
    • ArnoldColorManager : Improved defaults to match Gaffer's current OpenColorIO configuration.
  • Seeds :
    • Renamed to Scatter.
    • Added sampling of primitive variables from the source mesh onto the scattered points, controlled using the new primitiveVariables plug.
    • Added referencePosition plug to allow point distribution to be fixed on animated meshes.
    • Added uv plug to allow the space within which the points are scattered to be controlled.
    • Added support for density primitive variable values above 1.
    • Improved numerical accuracy.
    • Improved performance.
  • VectorDataPlugValueWidget : Computation errors are now reflected by a red background colour.
  • VectorWarp : Added Bilinear filter, for faster but lower quality warping.
  • Dilate, Erode, Median, Resample, Resize, ImageTransform, Blur, VectorWarp : Improved performance significantly. For example, a Blur with a large radius is now almost 6x faster.
  • RotateTool : Added the ability to rotate an axis whose plane of rotation is parallel or nearly parallel to the view.
  • OptionQuery : Added support for querying generic IECore::Object values using an ObjectPlug.
  • HierarchyView :
    • Added support for inclusion and exclusion of leaf level locations to the Visible Set.
    • Added F shortcut to expand ancestors and frame selected paths. This replaces the previous behaviour of automatic updates to expansion and framing in the HierarchyView on selection change.
  • CyclesOptions :
    • Added useLightTree plug.
    • Added path guiding options.
  • CyclesAttributes :
    • Added emissionSamplingMethod plug.
    • Added isCausticsCaster and isCausticsReceiver plugs.
  • Render : Improved clearing of the compute and hash caches prior to rendering, potentially providing more memory to the renderer. Note that clearing is now only performed in the execute and dispatch apps.

Fixes

  • UVInspector : Removed display transform from UV wireframes and grid.
  • Viewer :
    • Gamma is now applied after the display transform, not before.
    • Fixed image viewer's active tile indicators from becoming stuck when a computation was cancelled.
  • Expression : Fixed parsing of Python expressions combining subscripts ([]) and context methods (#3088, #3613, #5250).
  • ConnectionCreatorWrapper : Fixed bug which forced PlugAdder derived classes to implement updateDragEndPoint() unnecessarily.
  • Plug : Fixed bug which caused stale values to be retrieved from the cache for plugs that had been renamed.
  • ValuePlug : Fixed results when graph edits and computes are interleaved within a DirtyPropagationScope (#1971).
  • OpenColorIOTransform : Fixed error processing deep image tiles containing no samples.
  • Seeds :
    • Fixed duplicate points at triangle edges.
    • Fixed handling of points exactly at the density threshold.
  • ObjectSource, Group : Prevented the creation of locations with invalid names - .., ... or anything containing / or a filter wildcard.
  • BranchCreator : Prevented the use of ... and other filter wildcards in the destination.
  • TranslateTool : Fixed dragging in a plane parallel to an orthographic view. Translation in that case now behaves the same as dragging an axis.
  • Window : Fixed handling of **kw constructor arguments. These were being passed to the QWidget constructor where they caused errors, instead of being passed to the ContainerWidget base class.
  • PresetsPlugValueWidget : Fixed label update for context-sensitive presets.
  • PlugValueWidget : Fixed value update when auxiliary plugs depend on the context but the primary plugs do not.
  • Cycles : Fixed handling of cycles:shader:volume_sampling_method and cycles:shader:volume_interpolation_method attributes, which were being ignored previously.
  • OptionQuery : Fixed bug which allowed duplicate queries to be added in the UI.

API

  • GraphComponent :
    • Added an oldName argument to nameChangedSignal() slot signature.
    • Added a nameChanged() protected virtual method, which can be overridden to receive notifications of name changes before
      they are made public by nameChangedSignal().
    • Colon (:) is now an allowed character in names.
  • View : Added DisplayTransform add-on class which can be used to add colourspace management to any View.
  • ViewportGadget : A post-process shader can now be applied to any layer, not just the main one.
  • SceneGadget : Added setLayer() and getLayer() methods, which allow the destination Gadget::Layer to be specified.
  • TestCase : Added ignoreMessage() method, to register messages that should not be treated as test failures.
  • OpenColorIOTransform : Automated image pass-throughs when the transform() method returns a no-op. Derived classes no longer need to implement their own pass-through.
  • OpenColorIOTransformUI :
    • Added support for openColorIO:categories and openColorIO:includeRoles metadata to colorSpacePresetNames(). These may be registered on a per-plug basis to control the colorspaces shown for that plug.
    • Added support for openColorIO:extraPresetNames and openColorIO:extraPresetValues metadata to add presets not defined by the OpenColorIO config.
  • OpenColorIOAlgo : Added a new namespace that allows the OpenColorIO config and working space to be defined via the Gaffer context.
  • OpenColorIOConfigPlug : Added a new plug type to aid in configuring the OpenColorIO context for a ScriptNode.
  • ImageReader/ImageWriter : Added a config argument to the DefaultColorSpaceFunction definition. This is passed the OpenColorIO config currently being used by the node.
  • ValuePlug :
    • Added Python bindings for derived classes' ValueType type alias.
    • Added now argument to clearHashCache() method.
  • Color4fVectorDataPlug : Added a plug type for storing arrays of Color4f.
  • TypedObjectPlug : Added default value for direction and defaultValue constructor arguments.
  • VectorDataWidget : Added setErrored() and getErrored() methods to control an error state. Errors are reflected by a red background colour.
  • PlugLayout :
    • Added support for layout:minimumWidth metadata.
    • Tabs are now hidden if all their child plugs are hidden by layout:visibilityActivator metadata.
  • PlugValueWidget :
    • Added typeMetadata argument to create() to use an alternative key to plugValueWidget:type when looking up widget type.
    • Added _valuesDependOnContext() method which may be overridden by derived classes.
  • PresetsPlugValueWidget : Added presetsPlugValueWidget:customWidgetType metadata, to allow the type for the custom widget to be specified.
  • TabbedContainer : Added setTabVisible() and getTabVisible() methods.
  • Removed use of RTLD_GLOBAL for loading Python modules.
  • SceneAlgo : Added validateName() function.
  • Sampler : Added visitPixels() method, which provides an optimised method for accessing all pixels in a region.
  • Handle::AngularDrag : Added isLinearDrag() method.
  • Widget : Added per-widget control over colour display transforms via new setDisplayTransform(), getDisplayTransform() and displayTransform() methods.
  • VisibleSet : Added `Visibl...
Read more

Gaffer 1.2.10.0

13 Jul 16:15
Compare
Choose a tag to compare

Improvements

  • EditScopeUI : Added the ability to turn off visibility of selected objects in the viewer using the Ctrl+H shortcut.

Fixes

  • Instancer : Fixed bug that could cause the scene:path context variable to be leaked into the evaluation of prototypes.set in rare circumstances.
  • NumericPlugValueWidget (#5335) :
    • Fixed bug causing the cursor position to be reset to the end if the number of digits in the plug value changed while incrementing/decrementing with the keyboard up/down arrow keys.
    • Fixed bug causing the cursor position to be reset to the end when incrementing an animated plug.
    • Fixed intermittent --- values when drag-changing an animated plug value.
  • EditScopes : Fixed bug where the enabled state of AttributeEdits, OptionEdits and SetMembershipEdits did not have any effect. This fix will only apply to newly created AttributeEdits, OptionEdits and SetMembershipEdits.