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 :
    • Fixed display of nested lights in look-through menu (#2615).
    • Fixed selection after expanding the selected locations (#2617).
  • Metadata :
    • Fixed GIL management bug (#2582).
    • Fixed crash if None is passed to registerValue() (#2582).
    • Fixed bindings for change signals (#2610).
  • 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 :
    • Added dispatchSignal() (#2574).
    • Improved signal exception handling (#2574).
    • Added deregisterDispatcher() static method (#2588).
    • Removed “frame” variable from TaskBatch contexts. This means it is no longer available to PythonCommand code in sequence mode (#2608).
  • 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 :
    • Added embedded constructor argument (#2599).
    • Added “:width” metadata support (#2604).
  • Editor : Added instanceCreatedSignal() method. This can be used to customise the standard editors immediately after they’ve been created (#2605).
  • BusyWidget : Added setBusy() and getBusy() methods (#2604).
  • ImageGadget : Added setPaused()/getPaused() and state() 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 and GafferBindings::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 with status().
  • SceneHierarchy : Renamed to HierarchyView (#2640).
  • NodeGraph : Renamed to GraphEditor (#2640).