Skip to content

Releases: GafferHQ/gaffer

Version 0.25.1.0

14 Jun 22:01
Compare
Choose a tag to compare
Version 0.25.1.0 Pre-release
Pre-release

Apps

  • Screengrab
    • Support for grabbing the ScriptEditor.

UI

  • Fixed crash on mouse move over an about-to-become-visible GLWidget.

Scene

  • Attributes
    • Avoided unnecessary dirty propagation.
    • Deactivated filter field when in global mode.
  • InteractiveRender
    • Fixed object visibility bug.
    • Fixed context management bugs.
  • RenderUI
    • Exposing nodules for task plugs.

Image

  • ImageGadget
    • Taking pixel aspect into account when drawing.
    • Fixed color inspector for non-square pixels.

Arnold

  • ArnoldRenderer
    • Reusing shaders where possible.
    • Ensuring shader nodes are named (uniquely).
    • Fixed sharing of attributes between lights.
    • Fixed time_samples.
    • Fixed default shader override on ExternalProcedurals.
  • ArnoldOptions
    • Added missing sampling and depth options.
  • ArnoldAttributes
    • Supporting additional shading attributes.
      • "ai:matte", "ai:opaque", "ai:receive_shadows" and "ai:self_shadows"

Documentation

  • Added scripting tutorials and reference.
  • Added bookmarks to config file tutorial.
  • Added examples for the "test" app.
  • Added OpenVDB license to appendices.
  • Renamed "Performance Guidelines" tutorial to "Managing Complexity".

API

  • ScriptEditor
    • Added inputWidget() and execute() methods.
  • ImageGadget
    • Added pixelAt() method.
    • Added missing bindings.

Version 0.25.0.0

06 Jun 18:39
Compare
Choose a tag to compare
Version 0.25.0.0 Pre-release
Pre-release

Apps

  • Fixed ordering of GAFFER_STARTUP_PATHS, so that custom scripts can
    override Gaffer's built in configuration files (#1752).

Scene

  • Set
    • Added support for modifying multiple sets with a single node,
      by entering multiple names separated by spaces (#1748).

Arnold

  • ArnoldRender node now uses the same backend as the
    InteractiveArnoldRender node. Rendering is now performed directly
    in Gaffer rather than using a procedural (#1755).
  • ArnoldShader ( #1758)
    • Added support for BYTE and UINT input parameters and VECTOR
      and POINT output types.
  • Added support for crop windows, overscan and resolution multipliers
    (#1744).

Build

  • Fixed compilation of GafferAppleseed with GCC 5 (#1757).

API

  • Made IECorePreview module private (#1731).
  • Changed default orientation of environment light visualiser (#1749).
  • Fixed SceneAlgo::camera() when "option:render:camera" is "".

Incompatibilities

  • Made IECoreScenePreview private.
  • ArnoldRender node no longer has a verbosity plug.
  • Changed default orientation of environment light visualiser.

Version 0.24.1.0

30 May 16:47
Compare
Choose a tag to compare
Version 0.24.1.0 Pre-release
Pre-release

Core

  • Fixed performance of acceptsInput() for serial Switch networks (#1722)
  • Context now uses GeometricTypedData where appropriate.
  • Disallow setting user defaults on nodes in nodes.
  • Fixed serialization of dynamic TransformPlug

UI

  • Improved picking of "backwards" connections.

Apps

  • Added basic documentation.

Scene

  • Updated several nodes to register metadata in one shot with registerNode()
  • SceneView
    • Fixed drawing mode.
    • Added controls for curve drawing.
      • Using uninterpolated GL lines by default.
  • Restored default base state in SceneGadget.
  • GafferScene
    • Added preview of new Cortex Renderer API.
    • Added preview of RendererAlgo for new Renderer API.
    • Added preview of new InteractiveRender node.
  • SceneAlgo
    • Added globalAttributes() function.
  • SceneNode
    • Reduced unnecessary dirty signalling.

Image

  • Removed unnecessary UVWarp::Engine::hash() method.
  • ImageWriter can now be subclassed in Python.

OSL

  • Updated OSLShaderUI to register metadata in one shot with registerNode()
  • OSL Expressions now support V3f data from the Context.

Arnold

  • ArnoldOptions
    • Added licensing section.
    • Added basic support for controlling render logs.
  • Added preview of IECoreArnold ShaderAlgo.
  • Added preview of IECoreArnold ProceduralAlgo.
  • Added preview of new IECoreArnold Renderer.
  • Added InteractiveArnoldRender node.
  • Added support for Arnold matrix parameters as M44fPlugs

RenderMan

  • Remove deprecated RenderManShaderUI class
  • Updated RenderMan shaders to register metadata in one shot with registerNode()

Version 0.24.0.0

03 May 17:12
Compare
Choose a tag to compare
Version 0.24.0.0 Pre-release
Pre-release

UI

  • Added node reference documentation menu item to NodeEditor tool menus.
  • GafferUI.Collapsible supports Widget.reveal().
  • ScriptWindow no longer stops the EventLoop if it's already stopped.
  • Fixed PathWidget WeakMethod error at shutdown.

Scene

  • Improved error messages emitted by Group node.

Image

  • Fixed UVWarp crash triggered by negative data window origins (#1707).

OSL

  • Fixed crash when deleting connections to an OSL expression (#1695).
  • Added support for BoolPlugs in OSL expressions (#1697).

Dispatch

  • Stopped SystemCommand swallowing the stdout of launched processes
    (#1712).
  • Disabled automatic substitutions for command (#1692). This was broken
    by #1671.
  • Added LocalDispatcher environmentCommand plug.

Arnold

  • Added ArnoldVDB node (#1711).
  • Added volume step size to ArnoldAttributes node (#1694).
  • Fixed metadata for ArnoldLight UIs (#1696).
  • Added "ai:threads" option
    • Exposed via ArnoldOptions under the Performance section.
    • ArnoldRender uses ai:threads option to drive kick -t command line arg.

Apps

  • Removed procedural app
  • Screengrab app
    • Added -editor argument
    • Added -selection argument
    • Added -nodeEditor.reveal argument
    • Fix crashes at shutdown

Documentation

  • Introduced HTML documentation which is shipped with every Gaffer
    release (#1702, #1708, #1710).
  • Mentioned PerformanceMonitor.

Build

  • Simplified packaging. Use the gafferDependencies project if the
    dependencies are needed for your build.
  • Convert BUILD_DIR to an absolute path.

API

  • View (#1713)
    • Removed View3D and ObjectView derived classes.
    • Removed update() and updateRequestSignal() methods.
  • Added DocumentationAlgo namespace with functions to assist in
    auto-generating documentation.
  • Removed CompoundPlug usage from Shader nodes (#1701).
  • Added **kw arguments to all Widget constructors.
  • Removed deprecated Widget keyword arguments(#655, #1704).
  • Removed all use of deprecated IECorePython::Wrapper (#1116, #1703).
  • Removed deprecated ValuePlug::inCompute() method. Use Process::current()
    instead.
  • Removed deprecated Filter::matchPlug() method. Use Filter::outPlug()
    instead.
  • Removed deprecated SignalBinder class. Use SignalClass instead.
  • Removed deprecated iterator methods. Use Iterator::done() instead.

Version 0.23.2.1

07 Apr 22:08
Compare
Choose a tag to compare
Version 0.23.2.1 Pre-release
Pre-release

Dispatch

  • PythonCommand : Disable automatic substitutions for command plug.

Build

  • Fix OS X linking error.

Version 0.23.2.0

05 Apr 17:32
Compare
Choose a tag to compare
Version 0.23.2.0 Pre-release
Pre-release

Apps

  • Stats
    • Fixed bug which caused errors when there were no items to print
      in a particular category (#1667).
    • Added -performanceMonitor flag, which outputs in depth statistics
      for use in analysing and optimising performance (#1668).
    • Added -image flag for outputting image statistics (#1680).

UI

  • Added back "Remove Input" menu option for promoted plugs. This differs
    from the "Unpromote" option in that it breaks the connection but keeps
    the promoted plug on the outside of the box (#1678).
  • NodeGraph (#1679)
    • Tightened rules for inserting nodes into noodles. Nodes are now only
      inserted when disabling the inserted node would create a pass-through
      equivalent to the original connection, and deleting the node will
      restore the original connection. Previously nodes could be inserted
      in such a way that one end of the connection was broken, or two new
      connections were made which had no logical in->out connection through
      the inserted node.
    • Stopped highlighting connections when hovering in their middle, where
      they cannot be dragged anyway.
    • Made it harder to accidentally drag a long connection by grabbing it
      in the middle - the sensitive section is now limited to a shorter
      segment near the end.

Scene

  • Improved output of objects and transforms which are static, but for
    which motion blur has been requested via StandardAttributes. Motion
    blocks are now omitted when no motion is detected (#1662).
  • ScriptProcedural (#1676)
    • Fixed clearing of caches after procedural expansion in Arnold.
    • Improved error reporting to include the node which caused the
      error.
    • Added support for performance monitoring.
  • StandardOptions
    • Added new performanceMonitor option, which enables/disables the
      performance monitoring now supported by the ScriptProcedural
      (#1676).
  • Duplicate
    • Optimised set name computation. This knocks 35% off the time
      to compute a set in a custom downstream node with certain
      suboptimal qualities (#1682).
  • Fixed hangs caused by missing GIL management in SceneAlgo
    bindings (#1686, #1687).

Dispatch

  • ExecutableNodes now support automatic substitution of variables in
    StringPlug values, in the same way as has always been supported
    by other node types (#887, #1671).
  • Fixed order of dispatch when postTasks exist (#1675).

Arnold

  • Removed use of deprecated UI APIs. Specifically,
    PlugValueWidget.registerCreator() has been deprecated, and all code
    should use the equivalent "plugValueWidget:type" metadata instead
    (#1673).

RenderMan

  • Added initial support for using OSL shaders in 3delight.

Appleseed

Cortex

  • Fixed UI error when launching a ClassVectorParameter UI with
    preexisting child parameters (#665, #1670).

Documentation

  • Added GafferDispatch to the API docs.

API

  • Added Process and Monitor classes. Processes expose internal
    processes such as ComputeNode::compute() and ComputeNode::hash()
    to Monitors - classes which can observe the internal workings of
    Gaffer via the exposed Processes (#1668).
  • Added PerformanceMonitor class. This uses the Monitor/Process
    API to collect statistics useful in analysing and optimising
    performance (#1668).
  • RendererAlgo
    • Added outputObject() method (#1662).
    • Added outputTransform() method (#1662).
  • ValuePlug
    • Deprecated inCompute() method - use Process::current() instead
      (#1668).
  • FormatData
    • Added workaround for unstable hash() method when compiling with
      GCC 4.4.7 (#1669).
  • ExecutableNode
    • Moved public interface to TaskPlug. The ExecutableNode virtual
      interface is now considered to be protected, and will be made
      so in a future release.
  • ScenePlug
    • Fixed python binding for pathToString().
    • Added helpers for accessing globals and set names. These manage
      the context such that it is friendlier to the hash cache, by
      removing variables we know to change frequently but which cannot
      affect the result #(1683).

Build

  • Updated Cortex to version 9.8.0.
  • Updated Appleseed version to 1.4.0-beta.

Version 0.23.1.0

04 Mar 20:24
Compare
Choose a tag to compare
Version 0.23.1.0 Pre-release
Pre-release

Apps

  • Stats App
    • Added outputs for scene traversal time and memory usage.

Core

  • Improved performance of the computation cache, particularly when under
    heavy multithreaded load (#1638).
  • Fixed GIL lock issues.
    • CompoundDataPlug releases when adding child plugs.
    • GraphComponent releases when adding/removing children.
    • Reference releases in load().
  • Switch
    • Add SwitchTraits to control context for index evaluation.

UI

  • SceneHierarchy
  • NodeEditor
    • Improved error handling for labels and multiline text fields (#1650).
  • NodeGraph
    • Fix "Find..." shortcut.
  • SceneInspector
    • Fixed labelling of CoordinateSystem sets (#1648).
  • ExecutableNode
    • Fixed UI for individually promoted pre/post tasks (#1647).
  • UIEditor
    • Add label field to plug section.
  • GLWidget
    • Supports use in Maya when using PySide.

Scene

  • ScenePlug
    • set() and setHash() are friendlier to the hash cache.
  • SceneSwitch
    • Removed scene:path from context for index.
  • FilterProcessor
    • Implement pass-through when disabled.
  • PathFilter
    • Fixed bugs which treated empty paths as "/" rather than ignoring them (#1642)
    • Avoid unnecessary hashing of __pathMatcher plug.
  • Set
    • Fixed bugs which treated empty paths as "/" rather than ignoring them (#1642)
  • SetFilter
    • Remove unnecessary context manipulation..
  • DeleteSets
    • Fixed bug which could pass-through a deleted set.
  • Isolate/Prune
    • Fixed bugs which caused incorrect results when used with a
      particular custom filter outside of Gaffer (#1652).
  • Shader
    • Fixed crashes caused by cyclic connections in shader networks (#1646).
  • Fixed GIL lock issues.
    • Outputs releases in addOutput().

Image

  • Warp
    • Added Warp base class.
    • Added UVWarp node.
  • BufferAlgo
    • Added index() function.
  • ImageSwitch
    • Removed tile variables from context for index.

RenderMan

  • Fixed GIL lock issues.
    • RenderManShader releases in loadShader().

API

  • PathMatcher
    • Fixed bugs which treated empty paths as "/" rather than as empty (#1642).
  • SceneAlgo
    • Added PathMatcher overloads for filteredParallelTraverse() and
      matchingPaths() (#1649).
  • MultiLineTextWidget
    • Added setErrored()/getErrored() methods to (#1650).
  • MultiLineStringPlugValueWidget/LabelPlugValueWidget
    • Added error handling (#1650).
  • ExecutableNode
    • Disabled nodule creation by default for all but TaskPlugs. Nodules
      can be explicitly reenabled using a ( "nodule:type", "GafferUI.StandardNodule" )
      metadata registration for a particular plug.
  • DownstreamIterator/RecursiveChildIterators
    • Fixed API for completion of iteration.
  • FilteredChildIterator
    • Added done() method.
  • TypedObjectPlug bindings : Add _copy argument to defaultValue() method.

Build

  • GafferUI now links to QtOpenGL

Version 0.23.0.1

12 Feb 14:05
Compare
Choose a tag to compare
Version 0.23.0.1 Pre-release
Pre-release

Cortex

  • Fixed ParameterisedHolder::parameterChanged() exception handling.

Version 0.23.0.0

10 Feb 23:33
Compare
Choose a tag to compare
Version 0.23.0.0 Pre-release
Pre-release

Core

  • Reverted cyclic connection check on plug connection
  • Reduced hash cache clearing frequency to speed up instancing.

UI

  • Fixed labelling of renamed plugs which had a custom label. The label
    is now removed by the rename operation (#1635).

Scene

  • Improved set performance and memory usage significantly for all node
    types (#1623).
  • Added a MeshToPoints node (#1640).
  • Added sets support in the Duplicate node (#1623).

Arnold

  • Added support for motion blur, courtesy of Cortex 9.7.0.

API

  • Fixed python bindings to accept any iterable where previously only
    lists were accepted (#1634).
  • ScriptWindow
    • Added createIfNecessary argument to ScriptWindow.acquire() (#1639).
  • NameLabel (#1635)
    • Exposed default formatter.
    • Deprecated setText().
  • PathMatcher (#1623)
    • Reimplemented using lazy-copy-on-write sharing.
    • Added addPaths() overload with prefix path.
    • Added subTree() method.
    • Added RawIterator find( path ) method.

Build

  • Updated release builds to Cortex 9.7.0.
  • Updated OCIO build to be compatible with Maya. It should now be
    possible to run a standard Gaffer build from within Maya.

Incompatibilities

  • PathMatcher binary compatibility changes.

Version 0.20.0.2

10 Feb 23:19
Compare
Choose a tag to compare
Version 0.20.0.2 Pre-release
Pre-release

Core

  • Reduced hash cache clearing frequency to speed up instancing.