Releases: GafferHQ/gaffer
Releases · GafferHQ/gaffer
Gaffer 1.3.6.0
Features
- LightTool :
- Added manipulator for disk and point light radii.
- Added manipulators for cylinder length and radius.
- Tools Menu : Added "Metadata/Clean Up" menu item to optimise file size by removing redundant metadata.
Improvements
- CollectScenes : Improved performance when computing sets, with a 3x speedup being seen in one particular benchmark.
- LightTool : Changed spot light and quad light edge tooltip locations so that they follow the cone and edge during drag.
- Arnold : Improved speed of translation of encapsulated scenes when using many threads.
- CollectImages : Added
addLayerPrefix
plug, to allow the layer prefix to be omitted in the case that the input images are already prefixed. - OSL Expression : Added support for getting an element of an array context variable using
contextElement( variableName, index )
orcontextElement( variableName, index, defaultValue )
. Negative indices can be used to get elements relative to the end of the array.
Fixes
- ValuePlug : Fixed hangs and poor performance caused by plugs depending on upstream plugs with an identical hash (#4978).
- Filter : Fixed bug which allowed the
scene:path
context variable to "leak" upstream via theFilter.enabled
plug. This caused unnecessary evaluations of the input, and also provided a loophole via which the filter result could be made inconsistent with respect to descendant and ancestor matches. - Windows :
- Fixed a bug preventing anything except strings from being copied and pasted.
- Fixed likely cause of crash when resizing Spreadsheet column width (#5296).
- Reference : Fixed rare reloading error.
- PlugLayout : Fixed lack of update when
layout:customWidget:*
metadata changes. - Dispatch app : Removed unnecessary and misleading "Execute" button.
- SceneAlgo : Fixed history queries for
ScenePlug.object
in networks with nodes derived fromObjectProcessor
. These include :CameraTweaks
,ClosestPointSampler
,CollectPrimitiveVariables
,CopyPrimitiveVariables
,CurveSampler
,DeleteCurves
,DeleteFaces
,DeletePoints
,MapOffset
,MapProjection
,MeshDistortion
,MeshNormals
,MeshSegments
,MeshTangents
,MeshToPoints
,MeshType
,Orientation
,PointsType
,PrimitiveSampler
,PrimitiveVariables
,ReverseWinding
,ShufflePrimitiveVariables
andUVSampler
(#5406). - Metadata : Fixed redundant copying of metadata when promoting plugs.
- OpenColorIO : Fixed hang when opening a script which didn't yet have the
openColorIO.config
plug. - Context : Fixed bug preventing the retrieval of
V2iVectorData
,V2fVectorData
,V3iVectorData
andV3fVectorData
from a context.
API
- Process : Added
acquireCollaborativeResult()
method, providing an improved mechanism for multiple threads to collaborate on TBB tasks spawned by a single process they all depend on. - ValuePlug : Added
Default
CachePolicy and deprecatedStandard
,TaskIsolation
andLegacy
policies. - Metadata :
- Added
RegistrationTypes
enum that allows the different types of registrations to be identified. - Added improved
registeredValues()
andvalue()
overloads that provide finer-grained queries based on the type of registration. - Deprecated
instanceOnly
andpersistentOnly
arguments in favour of newregistrationTypes
arguments. - Prevented
renameable
anddeletable
metadata from being copied during plug promotion.
- Added
- MetadataAlgo : Added
deregisterRedundantValues()
method.
Build
- Cortex : Updated to version 10.5.3.0.
Gaffer 1.3.5.0
Features
- ImageScatter : Added a new node for scattering points across an image, with density controlled by an image channel.
Improvements
- Viewer : Changed the default image comparison (wipe) mode from
Over
toReplace
. - Spreadsheet :
- Popups for string cells and row names are now sized to fit their column.
- Added "Triple" and "Quadruple" width options to the spreadsheet row name popup menu.
- Node : Improved performance when casting Python-derived types to ComputeNode.
Fixes
- ValuePlug : Fixed performance regression (introduced in 1.3.1.0) getting values from plugs without an input connection. This could severely affect scene generation times in some cases.
- NameSwitch : Fixed bug which prevented drag and drop reordering of rows with an input connection.
- PythonEditor :
- Fixed output for
print()
calls with multiple arguments, which was previously spread across multiple lines. - Fixed bug that prevented editors being destroyed at the right time.
- Fixed output for
- FileSystemPath : Fixed bug on Windows where paths on an exFAT partition were not considered valid.
API
- Sampler : Added
populate()
method, which populates the internal tile cache in parallel, and subsequently allowssample()
to be called concurrently.
Gaffer 1.2.10.5
Fixes
- NameSwitch : Fixed bug which prevented drag and drop reordering of rows with an input connection.
- Scatter : Fixed loading of Scatter nodes saved from Gaffer 1.3+ (where the Seeds node was renamed to Scatter).
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.