0.23.2.0
Apps
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
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
Updated to Appleseed 1.4.0-beta.
Renamed volume priority attribute to medium priority.
Cortex
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
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.