Version 0.12.0.0
Pre-release
Pre-release
andrewkaufman
released this
06 Apr 18:33
·
16264 commits
to main
since this release
Core
- Optimised CompoundDataPlug::hash() to ignore disabled members. This
reduces globals hashing time by 20% for a complex production scene. - Fixed Expression serialisation bugs (#1081, #1243).
- 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.
- Batched propagation for UndoContexts, so dirtiness is signalled
- The values of environment variables used for string plug
substitutions are now frozen at startup.
UI
- Improved indicator for non-default plug values (#1216).
- Added copy/paste entries to plug menus (#601).
- SceneInspector now shows parameters for ExternalProcedural and
Light objects. - Added available set names to Set node "sets" plug popup menu.
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).
- Added
- NodeAlgo
- Added
isSetToUserDefault( plug )
function.
- Added
- RendererAlgo
- Added
outputAttributes()
method.
- Added
- 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()
.
- Replaced
- Menu
- Added support for
functools.partial( WeakMethod )
in menu commands.
- Added support for
- 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.