Releases: GafferHQ/gaffer
Releases · GafferHQ/gaffer
Gaffer 0.46.2.0
Features
- Revamped OSL shaders (#2539).
- Added MultiplyVector, DotProduct, CrossProduct, RemapFloat, RemapColor, RemapVector,
FloatToColor, ColorToFloat, FloatToVector, VectorToFloat, ColorToVector,
Luminance, MixColor, MixVector, MixFloat, AddColor, AddFloat, AddVector,
DivideColor, DivideFloat, DivideVector, MultiplyColor, MultiplyFloat, MultiplyVector,
SubtractColor, SubtractFloat, SubtractVector, InvertMatrix, Length, Normalize,
PowFloat, RoundFloat, SinFloat, MatrixTransform, CompareColor, CompareFloat,
CompareVector, SwitchColor, SwitchFloat, SwitchVector, CoordinateSystemTransform,
CoordinateSystemMatrix. - Removed some old shaders, keeping compatibility by converting them to new shaders
during loading.
- Added MultiplyVector, DotProduct, CrossProduct, RemapFloat, RemapColor, RemapVector,
Gaffer 0.35.5.0-arnold5
Features
- Added a new
dispatch
application (#2601).- This app dispatches task nodes such as ImageWriters, SystemCommands and Render nodes,
either from within an existing .gfr file or by creating a script on the fly. This differs from the execute
app in that it performs a full dispatch via a dispatcher, rather than executing a single task node. - The
gui
mode of this app uses a more generalDispatchDialogue
which can be used by external
tools for customized dispatching.
- This app dispatches task nodes such as ImageWriters, SystemCommands and Render nodes,
Improvements
- Isolate/Prune/Parent : Improved performance when processing sets (#2595).
- Arnold Renderer : Improved performance when outputting shaders (#2595).
- ArnoldOptions : Turn on
parallel_node_init
by default (#2595).- This was a problem with Cryptomatte in Arnold 4, but appears to be safe in Arnold 5.
- SceneViewUI : Defer camera and light set computation until required (#2600).
- PlugLayout : Added support for embedded PlugLayouts (#2596).
- Application : Run startup files before evaluating args (#2601).
- Dispatcher : Added ability to deregister a dispatcher type (#2601).
- ErrorDialogue : Present more user friendly message (#2601).
Fixes
- SubGraph : Account for BoxIO in correspondingInput() (#2600).
- FormatPlug::acquireDefaultFormatPlug() : Fixed crashes if None is passed via
python bindings (#2600). - Arnold : Fixed NodeEditor layout of new standard_surface shader parameters (#2600).
- MessageWidget : Maintain indentation in tracebacks (#2601).
- LocalDispatcher : Fixed suppression of exceptions during foreground dispatch (#2601).
Build
- Fixed IE install script for Cortex 9.
Gaffer 0.46.1.0
Features
- ReverseWinding : Added new node that reverses the winding order of meshes (#2568).
- MeshDistortion : Added new node that calculates the distortion of a mesh from a
reference shape (#2568).
Improvements
- Stats app : Added
-sets
command line argument, to allow scene sets to be computed (#2572). - OSLObject : Added support for reading and writing UVs via new InUV and OutUV shaders (#2569).
- SceneViewUI : Defer camera and light set computation until required (#2567).
Fixes
- Arnold : Fixed NodeEditor layout of new standard_surface shader parameters (#2573).
- Catalogue : Fixed crash caused by non-writable directory (#2571).
- Stats app : Fixed bugs in
-preCache
argument. It was using the wrong context and
not respecting the-frames
flag (#2572). - WidgetAlgo : Fixed bug when
grab()
with the event loop running (#2575). - MapOffset : Fixed bug when offsetting an indexed uv set (#2576).
Gaffer 0.46.0.0
Features
- FrameMask : Added new node to mask out upstream tasks on particular frames (#2558).
Improvements
- Layouts (#2522) :
- Simplified space-bar panel expansion, and removed the annoying auto-expand
behaviour for collapsed panels. - Removed tabs from the Scene layout's Timeline panel.
- Simplified space-bar panel expansion, and removed the annoying auto-expand
- DeleteFaces/DeletePoints/DeleteCurves : Added invert plug (#2546).
- Spline widgets (#2551) :
- Added axis lines at y=0 and y=1.
- Improved framing behaviour.
- Made float splines display as curves by default.
- Dispatcher : Reduced overhead of job directory creation (#2557).
- OSLObject : Added support for double primitive variables (#2547).
Fixes
- Layouts : Fixed circular references created by layout menus. These could cause crashes
during shutdown (#2522). - BoolPlugValueWidget : Fixed displayMode metadata handling. This restores the little
switches on the Attributes nodes (#2553).
API
- Metadata : Improved wildcard matching (#2536) :
- Stopped '' matching '.' in a plug path. This mimics how '' doesn't match '/' in a
glob match or in the PathMatcher. - Added '...' wildcard that matches any number of plug path elements, in the same way a
PathMatcher does.
- Stopped '' matching '.' in a plug path. This mimics how '' doesn't match '/' in a
- ImageAlgo (#2561) :
- Added support for lambdas in
parallelGatherTiles()
. - Added a
tileOrder
parameter toparallelProcessTiles()
. - Added python bindings for
parallelGatherTiles()
.
- Added support for lambdas in
- Context : Added optional
IECore::Canceller
that can be used to cancel long
running background processes (#2559). - BackgroundTask : Added new class to assist in the running of processes on background
threads (#2559). - ParallelAlgo (#2559) :
- Added
callOnUIThread()
method. - Added
callOnBackgroundThread()
method.
- Added
Breaking Changes
- SplitContainer (#2522) :
- Removed
animationDuration
argument fromsetSizes()
method. - Removed
targetSizes()
method.
- Removed
- Metadata :
*
no longer matches.
in a plug path (#2536). - PlugValueWidget : Removed
registerCreator()
method. Use metadata instead (#2536). - ImageAlgo : Changed signatures for
parallelProcessTiles()
andparallelGatherTiles()
(#2561). - StringAlgo : Removed. Use
IECore::StringAlgo
instead (#2534). - Display : Removed
executeOnUIThread()
method. Use ParallelAlgo instead (#2559). - Gadget : Removed
executeOnUIThread()
method. Use ParallelAlgo instead (#2559).
Build
- Requires Cortex 10.0.0-a20.
- Improved experimental CMake build setup (#2560).
Gaffer 0.45.3.0
Features
- GafferSceneUI : Added CameraTool to the Viewer (#2531).
- This enables the movement of the camera in the viewport to be pushed back upstream
into the node for the camera or light that is currently being looked through. Note
that once activated, the CameraTool will remain active even after another tool has
been chosen.
- This enables the movement of the camera in the viewport to be pushed back upstream
Improvements
- ShaderUI : Added support for userDefault metadata for shader parameters (#2544).
Fixes
- SceneGadget : Fixed dirty propogation (#2541).
- Metadata (#2544) :
- Added
deregisterValue()
overload for string targets. - Fixed overwriting of values for string targets.
- Added
- FormatPlug::acquireDefaultFormatPlug() : Fixed crashes if None is passed via
python bindings (#2549).
Build
- Added experimental CMake build in contrib (#2543).
API
- ViewportGadget (#2531) :
- Added accessors for center of interest.
- Added
orthographic3D
camera mode.
- BoolPlugValueWidget (#2531) :
- Added support for
BoolWidget.DisplayMode.Tool
- Added
boolWidget()
accessor, matchingStringPlugValueWidget.textWidget()
.
- Added support for
- GafferUI : Add ToolUI (#2531) :
- This sets up the "active" plug to use a BoolPlugValueWidget in tool mode,
with an appropriate icon.
- This sets up the "active" plug to use a BoolPlugValueWidget in tool mode,
- Viewer : Added support for "tool:exclusive" metadata (#2531) :
- This allows certain tools to be marked as non-exclusive, allowing them to
remain active even when another tool has been chosen.
- This allows certain tools to be marked as non-exclusive, allowing them to
- TransformTool : Exposed constructor for Selection class (#2531).
Gaffer 0.35.4.0-arnold5
Improvements
- OSLObject : Improved performance by removing unnecessary primitive variable resampling.
- Arnold : Added support for OSL shaders with multiple outputs.
- Viewer :
- Improved reporting of errors involving look-through cameras.
- Improved camera selection UI.
- Added default camera settings dialogue.
- Added Ctrl+K shortcut to fit clipping planes to selection.
- Added Ctrl+F shortcut to frame selection and fit clipping planes to match.
- Added context menu.
- PointsPrimitives now default to drawing as GL points. The Drawing dropdown menu can
be used to display them as disks instead.
- Expression : Added support for "x" in context Python syntax.
- Shader :
- Added support for showing/hiding output parameters in the NodeGraph.
- Added support for userDefault metadata for shader parameters.
Fixes
- Transform tools :
- Fixed bug where pivot was ignored.
- Fixed bug affecting Transform node when space was set to World.
- Fixed context management bug.
- FileMenu : Fixed premature exit when opening backup containing error.
- NodeAlgo : Fixed attempts to apply user defaults to plugs that are not settable.
- Metadata : Fix overwriting of values for string targets.
API
- ShaderUI : Added hideShaders() function.
Build
- Arnold 5.1 Compatibility
Gaffer 0.45.2.0
Improvements
- ArnoldAttributes : Added support for "subdiv_uv_smoothing" Arnold parameter (#2538).
- OSLObject : Improved performance by removing unnecessary primitive variable resampling (#2523).
- BoxUI : Removed "Promote as Box.enabled" menu item. The regular "Promote to Box" menu
item should be used instead (#2528).
Fixes
- SceneHierarchy : Fixed bug which caused the scene selection to be cleared
unnecessarily (#2525). - SceneInspector (#2532) :
- Fixed selection bug in Globals->Sets section.
- Fixed graphical glitch in Globals->Sets section.
- Transform Tools : Fixed context management bug (#2524).
- FileMenu : Fixed premature exit when opening backup containing error (#2526, #2527).
- OpenGLShader : Fixed serialisation (#2529).
- Box : Fixed creation of Boxes around existing SceneNode graphs (#2530).
- SceneGadget : Fixed Python binding for
getScene()
(#2532).
API
- ShaderUI : Added
hideShaders()
function (#2533).
Gaffer 0.45.1.0
Improvements
- NodeGraph (#2495) :
- Added automatic layout for auxiliary nodes.
- Improved aesthetics of auxiliary nodes and connections.
- Viewer :
- Application : Gaffer processes are now named
gaffer ...
rather than
python gaffer.py ...
(#2511). - Expression : Added support for
"x" in context
Python syntax (#2513). - NodeEditor : Added Lock/Unlock menu items to the tool menu (#2517).
- Shader : Added support for showing/hiding output parameters in the NodeGraph (#2515).
- Arnold : Enabled procedural instancing during interactive renders. This requires a
minimum Arnold version of 5.0.1.4 (#2519).
Fixes
- Viewer : Fixed inaccurate picking of points and curves (#2512).
- Transform tools (#2137, #2516) :
- Fixed bug where pivot was ignored.
- Fixed bug affecting Transform node when space was set to World.
- Fixed drawing order so handles are always on top.
- NodeGraph :
- NodeEditor (#2517) :
- Fixed update bug which allowed plugs to be edited after an
ancestor node was made read only. - Fixed bugs which allowed plugs to be added to read only nodes.
- Fixed update bug which allowed plugs to be edited after an
- Encapsulate : Fixed double transformation bug (#2518).
API
Gaffer 0.45.0.0
Features
- Added Ramp image node (#2470).
- Added SplinefColor4fPlug type (#2470).
- Added system to backup all open scripts at frequent intervals.
This is controlled via the Preferences dialogue (#2469, #2499, #2503).
Improvements
- Viewer :
- Improved performance significantly when selecting large numbers of
objects (#2450, #2486). - Improved reporting of errors involving look-through cameras (#2490).
- Improved camera selection UI (#2490).
- Added default camera settings dialogue (#2490).
- Added Ctrl+K shortcut to fit clipping planes to selection (#2490).
- Added Ctrl+F shortcut to frame selection and fit clipping planes to
match (#2490). - Added context menu (#2490).
- Improved performance significantly when selecting large numbers of
- SceneHierarchy (#2450, #2486) :
- Improved performance significantly when selecting or expanding large numbers
of objects. - Multiple selections made in the Viewer are now highlighted properly in the
SceneHierarchy (#76).
- Improved performance significantly when selecting or expanding large numbers
- Significantly reduced file sizes and load times for scripts
containing many shader and/or light nodes (#2455). - NodeGraph
- ScriptNode :
- ArnoldAttributes : Added attributes to control volume motion blur (#2433).
- Arnold : Added support for OSL shaders with multiple outputs (#2494).
- Stats/Execute apps : By default the current frame stored in the script is
executed, rather than frame 1 as before. Use the-frames
commandline argument
to specify a specific range of frames to execute (#2468). - CompoundDataPlugValueWidget : Added array types to plug creation menu (#2433).
- Startup : Startup files are now executed in isolated scopes, so they cannot
accidentally rely on other startup files (#2462). - Expression : Python expressions can now read from CompoundDataPlugs (#2484).
Fixes
- Appleseed : Fixed crashes when editing cameras during interactive renders (#2489).
- Browser : Fixed bug caused by missing import (#2449).
- OpenColorIO : Added workaround for OpenColorIO bug whereby config parsing would
fail for non-English locales (#1654, #2460). - Python wrappers : Fixed exception translation (#2459).
- BoxIn : Plug values are now preserved when promoting an input plug (#2461).
- Tractor Dispatcher : Fixed accumulation of tractor plugs on TaskNodes (#2463).
- GraphComponent : Fixed bug which could prevent multiple scripts from being
loaded in parallel (#2464). - GraphComponentPath : Fixed bug whereby children did not inherit the filter
from their parent (#2465). - OSLLight : Fixed metadata for child plugs of parameters (#2474).
- Shader : Fixed serialisation bugs introduced in version 0.43 (#2454, #2455).
- Spline UI : Prevented creation of multiple editing dialogues for the same
plug (#2472). - Added backwards compatibility for scripts referencing the old
GafferScene.PathMatcher
,GafferScene.PathMatcherData
and
GafferScene.PathMatcherDataPlug
types (#2457). - Layouts :
- ScriptNode :
- Viewer (#2490) : Fixed bug where centre of interest was lost when switching between
the default and look-through cameras. - PlugValueWidget : Fixed bug that allowed drags to be received for read-only
plugs (#2503). - GUI App : Errors are now reported correctly when loading files from the command
line (#2499). - Serialiser : Fixed handling of exceptions in Python serialisers (#2475).
- Expression : Fixed initial UI state so that the expression is not editable until
a language has been chosen. This avoids problems where an expression was entered
and then lost when the language was set (#2482). - PlugAlgo : Fixed problems with metadata promotion when using non-Box parents (#2488).
- NodeAlgo : Fixed attempts to apply user defaults to plugs that are not settable (#2507).
API
- PathListingWidget : Added faster expansion and selection methods using
IECore.PathMatcher()
to store sets of paths (#2450). - AuxiliaryNodeGadget : Added new class to represent nodes like Expression and
Animation in the NodeGraph (#2458). - Style : Added
state
argument torenderAuxiliaryConnection()
(#2473). - Added GafferUI.Backups class (#2469).
- ImageGadget : Added
loadTexture()
method (#2490). - ViewportGadget : Added
fitClippingPlanes()
method (#2490). - Viewer : Added
viewContextMenuSignal()
. This allows context menus for views to be
customised using the same basic mechanism we use in the NodeGraph and elsewhere.
(#2490). - FileMenu : Added
addScript()
function (#2499). - Serialisation : Improved support for Python serialisers (#2475).
- ConnectionCreator : Added new class to improve drag & drop functionality in
the NodeGraph (#2480). - ContextAlgo : Added
affects*Paths()
methods (#2486).
Breaking Changes
- Stats app : Replaced
-frame
parameter with-frames
(#2468). - Style : Changed signature for
renderAuxiliaryConnection()
method (#2473). - View : Removed
framingBound()
method (#2490). - RendererAlgo : Renamed
createDisplayDirectories()
tocreateOutputDirectories()
(#2452). - PlugAdder (#2480) :
- Removed
edge
constructor argument. - Changed base class.
- Removed
- Nodule : Changed base class (#2480).
- ConnectionGadget : Changed base class (#2480).
- NodeGadget : Renamed
noduleTangent()
toconnectionTangent()
(#2480). - ContextAlgo : The scene selection is now stored as a PathMatcher and not
StringVectorData (#2486). - SceneGadget : Changed signatures for methods for accessing selection and
expansion (#2486). - Style : Added new
renderAuxiliaryConnection()
virtual method (#2497).
Gaffer 0.35.3.0-arnold5
Features
- Added system to backup all open scripts at frequent intervals.
This is controlled via the Preferences dialogue.
Improvements
- Expression : Python expressions can now read from CompoundDataPlugs.
- Read-only files are now read-only in the UI.
- Serialiser : Improved support for Python-based serialisers.
Fixes
- Spline UI : Prevented creation of multiple editing dialogues for the same plug.
- Layouts :
- Fixed incorrect vertical sizing of Timelines in custom layouts.
- Fixed bug serialising custom layouts containing special characters.
- PlugValueWidget : Fixed bug that allowed drags to be received for read-only plugs.
- GUI App : Errors are now reported correctly when loading files from the command line.
- Serialiser : Fixed handling of exceptions in Python serialisers.
- Expression : Fixed initial UI state so that the expression is not editable until
a language has been chosen. This avoids problems where an expression was entered
and then lost when the language was set. - PlugAdder : Fixed crash when dragging from a plug without a nodule.
- GLWidget : Fixed OpenGL Context issue for Houdini 16.0 & 16.5 Qt5 builds.