0.48.0.0
Features
Viewer : The 3D viewer now updates asynchronously, keeping the UI responsive while the scene is computed in the background (#2649).
AnimationEditor : Added a new editor to allow the graphical editing of animation curves. This can be found on the tab next to the GraphEditor in the standard layouts (#2632).
DeleteObject node (#2694).
CopyAttributes node (#2710).
Improvements
TranslateTool : Added handles for movement in the XY,XZ,YZ and camera planes (#2709).
-
Added “Default/…” menu items to allow the default startup layout to be chosen.
Added new “Save As/…” menu items to allow previously saved layouts to be replaced.
SceneInspector (#2607) :
Added filter to sets sections.
Moved set computations to background process, so they don’t block the UI.
Shader : Improved performance (#2644).
ArnoldLightUI : Added support for “userDefault” parameter metadata. This matches the format already in use for ArnoldShaderUI (#2646).
Viewer :
ArnoldAttributes :
FormatPlug : Made “Custom” mode persistent, so it is remembered across save and reload (#2660).
InteractiveRender : Removed unnecessary deletion and recreation of objects when
childNames
changes (#2690, #2649).
Fixes
GraphEditor :
LocalDispatcher/TractorDispatcher : Fixed problems using
imath
context variables (#2653, #2654).OSLObject : Fixed crashes caused by indexed primitive variables (#2655).
Viewer : Fixed visibility of children of look-through camera (#2694).
ObjectSource : Fixed transform.* -> out.bound dirty propagation (#2649).
API
SceneGadget :
RenderController : Added new utility class for controlling interactive renders (#2649).
AnimationGadget : Added new Gadget for editing animation curves (#2632).
Animation (#2632) :
Keys are now reference counted, so ownership can be shared between CurvePlugs and the AnimationEditor.
Keys may be edited in place with
key->setTime()
etc, and the CurvePlug automatically updates.CurvePlug::keys()
has been replaced withCurvePlug::begin()
andCurvePlug::end()
. This hides the internal choice of container while still providing iteration.Added optional
threshold
argument toclosestKey()
.
IECoreScenePreview::Renderer (#2649) :
Added
command()
virtual method.Added
name()
virtual method.
IECoreGLPreview::OpenGLRenderer (#2649) :
Made it possible to call
render()
concurrently with edits.Added support for highlighting selected objects.
Added “gl:queryBound” command.
Added “gl:querySelection” command.
Added support for custom object and attribute visualisers.
Added options for controlling base attributes.
PresetsPlugValueWidget : Added support for an optional “Custom” menu item, which allows the user to enter an arbitary value. This is controlled by “presetsPlugValueWidget:allowCustom” plug metadata (#2660).
BusyWidget : Added
busy
constructor argument (#2607).LightTweaks (#2660) :
Moved TweakPlug to the GafferScene namespace, so it can be reused by other nodes.
Added “Remove” mode.
Layouts (#2698) :
Added
persistent
argument toadd()
method, mirroring theBookmarks.add()
API. This automatically takes care of saving persistent layouts into the startup location.Added
setDefault()/getDefault()
andcreateDefault()
methods to allow the management of a default layout.
Handle (#2709) :
Added
set/getVisibleOnHover()
methods.Added
PlanarDrag
axis accessors.
TranslateHandle (#2709) :
Added
axisMask()
method.
FilteredSceneProcessor : Added constructor to allow array
inPlug()
.Style :
ViewportGadget : Added
set/getVariableAspectZoom()
method (#2632).
Build
Breaking Changes
GafferSceneUI : Moved visualiser base classes to IECoreGLPreview (#2649).
ArnoldAttributes : Changed volume step attributes (#2634).
GafferImage : Removed FormatPlug compatibility for files saved in Gaffer 0.16 or older. To migrate, resave the file in Gaffer 0.47 (#2682).
GafferOSL::ShadingEngine : Removed
scope
parameter fromneedsAttribute()
(#2655).Layouts (#2698) :
Removed
save()
method. Use thepersistent
argument toadd()
andsetDefault()
instead.Added
applicationRoot
argument to constructor. You should useacquire()
instead anyway.
LayoutMenu : Removed
delete()
method (#2698).GUI config : Renamed standard layout from “Default” to “Standard” (#2698).
TranslateHandle : translation()` method now returns a V3f rather than a float (#2709).
TransformTool : Made
orientedTransform()
method const (#2709).Style : Changed method signatures, enum values, and added virtual functions (#2632).
Animation : Refactored API. See API section for more details (#2632).
IECoreScenePreview::Renderer : Added virtual methods (#2649).
InteractiveRender : Added and removed private member data (ABI break) (#2649).
SceneGadget (#2649) :
Added/removed private members (ABI break).
Remove
baseState()
.
SceneView : Reorganised/simplified drawingMode plugs (#2649).