Releases: GafferHQ/gaffer
Releases · GafferHQ/gaffer
Gaffer 1.3.4.0
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 theirusd: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 thatopaque
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()
andcapturedLinkTypes()
methods to CapturedObject class.
- Added
Build
- Fixed compilation with Boost versions prior to 1.74.
Gaffer 1.2.10.4
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 thatopaque
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
Features
- 3Delight :
- Added support for VDB volume objects.
- Added support for
vdbVolume
shader. - Added support for
volumeshader
anddisplacementshader
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 theUsdUtilsStageCache
. - 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 renamedst
for compatibility with theuvCoord
shader's expectation. - Added a default
uvCoord
shader during internal shader network preprocessing to shader parameters that do not have an input connection.
- Moved shaders to
- 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.
- PointBased :
- 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.
- Fixed handling of invalid values on the following USD attributes :
- 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 ofinf
. - 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.
- Added
- 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
Fixes
- DispatchDialogue : Changed the button label for the results display from "Ok" to "Close".
Gaffer 1.3.2.0
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.
- The
- 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.
- Added
Documentation
- Removed release notes for versions prior to 1.0.0.0.
Gaffer 1.2.10.2
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
Features
- USDShader : Added a node for loading shaders from USD's
SdrRegistry
. This includes shaders such asUsdPreviewSurface
andUsdUVTexture
, which are now available in theUSD/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 whendisplay
is at the default value (#5392). - Arnold
- Fixed translation of
vector
typed outputs defined asvector <name>
in an output definition. - Fixed translation of
shadow:enable
andshadow:color
parameters on UsdLux lights, which were previously ignored.
- Fixed translation of
- 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 whereN
hasUniform
orFaceVarying
interpolation. Note that Cycles has no native support forFaceVarying
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 standardNg
attribute in Cycles.
- Fixed rendering of meshes with faceted normals, which were previously being rendered as smooth. This applies to meshes without an
- ImageSampler : Fixed handling of exceptional floating point values. Now returns
inf
ifinf
values are present in the image, rather than3.4e38
. - Merge :
- Fixed the Difference operation to return correct values for exceptional floating point values. Now there is 0 difference between
inf
andinf
, orNaN
andNaN
. Additionally, there is infinite difference betweenNaN
and any other number, so assertImagesEqual will correctly reportNaN
s 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.
- Fixed the Difference operation to return correct values for exceptional floating point values. Now there is 0 difference between
- Median/Erode/Dilate : Fixed possible crash bug if there were
NaN
s 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 avalue
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
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 asvector <name>
in an output definition. - Fixed translation of
shadow:enable
andshadow:color
parameters on UsdLux lights, which were previously ignored.
- Fixed translation of
- 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
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 inAutomatic
mode. - ImageReader, ImageWriter : The
colorSpace
menu is now filtered using thefile-io
category, if the current OpenColorIO config provides it. - ImageReader, OpenImageIOReader : Added
fileValid
BoolPlug that outputsTrue
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'sdisplayTransform.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
andACEScg
.
- 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 anObjectPlug
. - 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.
- Added
- CyclesAttributes :
- Added
emissionSamplingMethod
plug. - Added
isCausticsCaster
andisCausticsReceiver
plugs.
- Added
- 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
anddispatch
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 (
[]
) andcontext
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 thedestination
. - 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 theQWidget
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
andcycles: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 tonameChangedSignal()
slot signature. - Added a
nameChanged()
protected virtual method, which can be overridden to receive notifications of name changes before
they are made public bynameChangedSignal()
. - Colon (
:
) is now an allowed character in names.
- Added an
- 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()
andgetLayer()
methods, which allow the destinationGadget::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
andopenColorIO:includeRoles
metadata tocolorSpacePresetNames()
. These may be registered on a per-plug basis to control the colorspaces shown for that plug. - Added support for
openColorIO:extraPresetNames
andopenColorIO:extraPresetValues
metadata to add presets not defined by the OpenColorIO config.
- Added support for
- 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 theDefaultColorSpaceFunction
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 toclearHashCache()
method.
- Added Python bindings for derived classes'
- Color4fVectorDataPlug : Added a plug type for storing arrays of
Color4f
. - TypedObjectPlug : Added default value for
direction
anddefaultValue
constructor arguments. - VectorDataWidget : Added
setErrored()
andgetErrored()
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.
- Added support for
- PlugValueWidget :
- Added
typeMetadata
argument tocreate()
to use an alternative key toplugValueWidget:type
when looking up widget type. - Added
_valuesDependOnContext()
method which may be overridden by derived classes.
- Added
- PresetsPlugValueWidget : Added
presetsPlugValueWidget:customWidgetType
metadata, to allow the type for the custom widget to be specified. - TabbedContainer : Added
setTabVisible()
andgetTabVisible()
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()
anddisplayTransform()
methods. - VisibleSet : Added `Visibl...
Gaffer 1.2.10.0
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 ofprototypes.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
andSetMembershipEdits
did not have any effect. This fix will only apply to newly createdAttributeEdits
,OptionEdits
andSetMembershipEdits
.