0.47.0.0
Features
ImageView : Introduced asynchronous processing, so that the UI remains responsive while the viewer updates progressively (#2578).
Apps : Added a new
dispatch
application. This dispatches task nodes such as ImageWriters, SystemCommands and Render nodes, either from within an existing .gfr file or by creating nodes 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 (#2588).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.
Appleseed : Updated to version 1.9 (#2570).
Improvements
Instancer : Replaced original proof-of-concept Instancer with a new version intended to be suitable for production use (#2642) :
Added support for orientation and scale primitive variables.
Added support for index and id primitive variables.
Added support for creating per-instance attributes.
Added support for sets.
Improved performance by removing
${instancer:id}
context variable.
Documentation : Improved structure and presentation (#2612, #2613, #2616, #2619, #2625, #2628, #2631).
Appleseed (#2570) :
Added support for pixel_time AOV.
Added denoiser options to AppleseedOptions node.
OSLImage/OSLObject (#2586) :
Added support for
time
global variable.Added support for reading context variables.
OSLImage : Improved performance by only reading the upstream channels needed by the shader (#2586).
Arnold renderer : Improved shader conversion performance (#2594).
ArnoldOptions : Changed default value for
parallel_node_init
to on. This matches the default in Arnold 5.1 (#2594).OSLImage/OSLObject/RankFilter/Resample : Added cancellation support. This improves responsiveness in the new asynchronous ImageView (#2586, #2590).
Isolate/Prune : Improved set processing performance (#2587).
BranchCreator : Improved set processing performance (#2594).
Application : Moved startup file execution before argument evaluation. This makes it possible for a startup file to manipulate application arguments if necessary (#2588).
Stats app : Added
-canceller
argument (#2586).UI : Renamed Scene Hierarchy to Hierarchy View and Node Graph to Graph Editor.
AttributeVisualiser : Added support for visualising Color3f attributes #2641).
Fixes
Viewer :
Metadata :
UI : Fixed initial size and position of Preferences, Settings and Node Editor windows (#2643).
ContextAlgo : Fixed GIL management (#2618).
SubGraph : Fixed crash in
correspondingInput()
. This manifested itself as crashes in the NodeGraph when dragging a Box with an unconnected BoxOut node over a connection (#2583).TractorDispatcher : Fixed bug handling nodes like TaskList and FrameMask nodes, that don’t have any work of their own to do (#2584).
ImageAlgo : Fixed GIL management bug (#2585).
Arnold/OSL : Fixed problems caused by Arnold trying to recompile Gaffer’s OSL shaders unnecessarily. We no longer install the shader source files (#2539).
ScriptNode : Fixed GIL management bug (#2578).
BackgroundTask : Fixed interactions with ScriptNode lifetime (#2578).
Threading : Fixed bugs caused by TBB cancellation propagation (#2589).
LocalDispatcher : Fixed exception handling during foreground dispatch. Exceptions from Tasks are now propagated back to the caller instead of being suppressed (#2588).
Appleseed : Disabled SPPM for interactive renders (#2570).
Catalogue : Fixed bug where orphaned Catalogue tried to save an image (#2621).
ViewportGadget : Fixed
setCameraTransform()
to trigger a rerender (#2639).Arnold : Worked around clashes between Mesa drivers and libai.so (#2638).
API
DispatchUI : Added
DispatchDialogue
class (#2588).Dispatcher :
Outputs : Added
deregisterOutput()
method (#2581).GafferUI : Added new BackgroundMethod decorator to assist in performing processing in background threads (#2578).
ShadingEngine : Added
hash()
method (#2586).PlugLayout :
Editor : Added
instanceCreatedSignal()
method. This can be used to customise the standard editors immediately after they’ve been created (#2605).BusyWidget : Added
setBusy()
andgetBusy()
methods (#2604).ImageGadget : Added
setPaused()/getPaused()
andstate()
methods (#2604).ScriptEditor : Added
outputWidget()
accessor (#2622).
Build
Updated Appleseed version to 1.9.
Updated OpenImageIO version to 1.8.12.
Updated OpenShadingLanguage version to 1.9.9.
Updated GLEW version to 2.1.0.
Updated Cortex version to 10.0.0-a25.
Improved documentation build process (#2622).
Breaking Changes
Instancer : Added and removed plugs, changed behaviour and structure of output scene (#2642).
Metadata : Changed function signatures for
GafferBindings::metadataModuleDependencies
andGafferBindings::metadataModuleDependencies
. Source compatibility is retained (#2579).Action (#2578) :
Added new arguments to constructor and
enact()
.Added new data member.
Source compatibility is retained.
EditorWidget : Renamed to Editor (#2605).
BackgroundTask : Replaced
done()
method withstatus()
.SceneHierarchy : Renamed to HierarchyView (#2640).
NodeGraph : Renamed to GraphEditor (#2640).