Skip to content

Releases: GafferHQ/gaffer

Gaffer 0.46.2.0

07 Jun 22:16
b14a369
Compare
Choose a tag to compare

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.

Gaffer 0.35.5.0-arnold5

06 Jun 00:03
Compare
Choose a tag to compare
Pre-release

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 general DispatchDialogue which can be used by external
      tools for customized dispatching.

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

18 May 00:06
Compare
Choose a tag to compare

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

03 May 19:16
5d25963
Compare
Choose a tag to compare

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.
  • 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.
  • ImageAlgo (#2561) :
    • Added support for lambdas in parallelGatherTiles().
    • Added a tileOrder parameter to parallelProcessTiles().
    • Added python bindings for parallelGatherTiles().
  • 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.

Breaking Changes

  • SplitContainer (#2522) :
    • Removed animationDuration argument from setSizes() method.
    • Removed targetSizes() method.
  • Metadata : * no longer matches . in a plug path (#2536).
  • PlugValueWidget : Removed registerCreator() method. Use metadata instead (#2536).
  • ImageAlgo : Changed signatures for parallelProcessTiles() and parallelGatherTiles() (#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

17 Apr 19:45
Compare
Choose a tag to compare

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.

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.
  • 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, matching StringPlugValueWidget.textWidget().
  • GafferUI : Add ToolUI (#2531) :
    • This sets up the "active" plug to use a BoolPlugValueWidget in tool mode,
      with an appropriate icon.
  • 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.
  • TransformTool : Exposed constructor for Selection class (#2531).

Gaffer 0.35.4.0-arnold5

12 Apr 22:15
Compare
Choose a tag to compare
Pre-release

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

07 Apr 16:41
Compare
Choose a tag to compare

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

29 Mar 10:35
Compare
Choose a tag to compare

Improvements

  • NodeGraph (#2495) :
    • Added automatic layout for auxiliary nodes.
    • Improved aesthetics of auxiliary nodes and connections.
  • Viewer :
    • PointsPrimitives now default to drawing as GL points. The Drawing dropdown menu can
      be used to display them as disks instead (#2512).
    • Enabled anti-aliasing in the 3d view (#2521).
  • 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 :
    • Fixed kink in connection drawing (#2500).
    • Fixed inaccurate picking in the corners of rounded nodes (#2500).
  • 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.
  • Encapsulate : Fixed double transformation bug (#2518).

API

  • Set : Added iterators (#2495).
  • MetadataAlgo (#2517) :
    • Added ancestorAffectedByChange() function.
    • Added readOnlyAffectedByChange() functions.

Gaffer 0.45.0.0

21 Mar 15:52
Compare
Choose a tag to compare

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).
  • 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).
  • Significantly reduced file sizes and load times for scripts
    containing many shader and/or light nodes (#2455).
  • NodeGraph
    • Added ability to Shift+Drag a connection to duplicate it (#2480).
    • Improved representation of Expression, Animation and Random nodes (#2458, #2497).
    • Improved highlighting behaviour for connections to selected nodes (#2473).
  • ScriptNode :
    • The current frame is now saved with the script and restored on
      loading (#2468).
    • Read-only files are now read-only in the UI (#2503).
  • 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 :
    • Fixed incorrect vertical sizing of Timelines in custom
      layouts (#2502).
    • Fixed bug serialising custom layouts containing special characters (#2492).
  • ScriptNode :
    • Hid "frame" plug from the UI, and clarified in the documentation
      that is not intended for widespread use (#2504).
    • Fixed a bug loading old scripts which referenced IECore::Data types
      wrapping imath types (#2487).
  • 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 to renderAuxiliaryConnection() (#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() to createOutputDirectories()
    (#2452).
  • PlugAdder (#2480) :
    • Removed edge constructor argument.
    • Changed base class.
  • Nodule : Changed base class (#2480).
  • ConnectionGadget : Changed base class (#2480).
  • NodeGadget : Renamed noduleTangent() to connectionTangent() (#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

16 Mar 22:39
Compare
Choose a tag to compare
Pre-release

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.