0.12.0.0
Core
Optimised CompoundDataPlug::hash() to ignore disabled members. This reduces globals hashing time by 20% for a complex production scene.
Optimised ValuePlug hash caching. It now caches more aggressively, keeping cache entries alive across multiple computations. This reduces scene traversal time for a complex production scene by 70%.
Improved dirty propagation mechanism.
Batched propagation for UndoContexts, so dirtiness is signalled only once for operations batched within a single undo action.
Fixed bugs which meant dirtiness was signalled when child/parent plug connections were in an inconsistent state.
Addition and removal of dynamic plugs now triggers dirty propagation.
The values of environment variables used for string plug substitutions are now frozen at startup.
UI
Scene
Fixed PathMatcher wildcard matching bug (#1252).
Added Parameters node. This can be used for tweaking the parameters of lights, cameras and external procedurals (#1259).
Added PointsType node (#476).
Fixes Seeds node to take into account the bounding box of the generated points.
Fixed dirty propagation bugs in CoordinateSystem and ClippingPlane nodes.
Improved InteractiveRenderer pausing during edits.
Added DeleteSets node.
Fixed CustomOptions dirty propagation (#1039).
Fixed ContextVariables dirty propagation.
Optimised Filter mechanism, giving a 7-20% improvement in performance across a range of production scenes.
Appleseed
Added support for interactive renderering with shader and light edits.
Image
Added support for image metadata
ImagePlug has a new metadata child plug.
ImageReader reads metadata from file.
ImageWriter writes metadata to file.
ImagePrimitiveSource loads metadata from
ImagePrimitive::blindData()
.Merge copies metadata from the first input.
ImageMetadata node creates/sets metadata.
DeleteImageMetadata node removed metadata.
CopyImageMetadata transfers metadata from one image to another.
Optimised many nodes with direct internal pass-though connections.
API
StringAlgo
Added
hasWildcards()
function.Removed flawed MatchPatternLess (#1252).
NodeAlgo
Added
isSetToUserDefault( plug )
function.
RendererAlgo
Added
outputAttributes()
method.
ImageNode
hash*()
andcompute*()
methods are no longer pure virtual. This allows subclasses to make direct internal connections to pass through input plugs unchanged.
PlugValueWidget
Replaced
_dropValue()
method with_convertValue()
.
Menu
Added support for
functools.partial( WeakMethod )
in menu commands.
Simplified and improved Merge node implementation.
Added MetadataProcessor base class to GafferImage.
Added Plug::dirty() virtual method. This is used to inform a Plug that it has been dirtied by Plug::propagateDirtiness().
Fixed DependencyNodeWrapper to translate python exceptions to C++.
Build
Fixed compilation without NDEBUG=1 with gcc 4.1.2.
Incompatibilities
Removed MatchPatternLess from StringAlgo.h.
Replaced PlugValueWidget
_dropValue()
method with_convertValue()
.Removed GafferImage::FilterProcessor.
Added/removed virtual overrides in GafferImage.
Added virtual function to Plug.