0.59.1.0¶
Features¶
- Spreadsheet : Added support for drag and drop. Values and Plugs can be dragged from outside a Spreadsheet to a cell to set its value or connect to its value plug.
- Instancer : Added
encapsulateInstanceGroups
plug, which outputs the instances within capsules. This has the same performance benefits as using an Encapsulate node downstream, with the following additional benefits :- Significantly improved performance when the prototypes define sets. A benchmarch with 1 million instances saw set generation time go from 10s using a downstream Encapsulate node to 0.002s using
encapsulateInstanceGroups
. - Fewer unnecessary capsule invalidations, resulting in fewer interactive rendering updates.
- Convenience.
- Significantly improved performance when the prototypes define sets. A benchmarch with 1 million instances saw set generation time go from 10s using a downstream Encapsulate node to 0.002s using
Improvements¶
- ArnoldRender : Added support for animated camera parameters, such as field of view.
- DeleteFaces/DeletePoints/DeleteCurves : Added
ignoreMissingVariable
plug which allows users to opt-out of errors. - Constraint : Added
targetScene
plug, to allow constraining to locations in another scene. - OSLObject :
- Added support for connecting to the individual components of Vector, Point, Normal, UV and Color primitive variable inputs.
- Added
prototypeIndex
to primitive variable creation menus.
- OSLImage : Added support for connecting to the individual components of channel inputs.
- SceneReader :
- Added support for USD skinning and blendshapes, which are now applied automatically to meshes during loading.
- Added interpolation for animated cameras loaded from Alembic caches.
- PointsPrimitive variables with Varying interpolation are now conformed to Vertex interpolation on load. This is particularly helpful when loading points written from Houdini.
- SceneWriter : Added support for writing cameras to Alembic caches.
Fixes¶
- Viewer :
- Fixed bug that caused the Inspector to edit the wrong node when SetFilters were in use.
- Fixed bugs when using the CameraTool to manipulate scaled cameras or lights. Note: the Viewport projection will no longer display the effects of scale or shear components in the view matrix.
- Widget : Fixed incorrect
ButtonEvent
coordinate origin for mouse signals under certain widget configurations. - CatalogueSelect : Fixed broken presets for promoted
imageName
plugs. - PlugAlgo : Fixed metadata handling when promoting plugs which were themselves promoted from the constructor of a custom node.
- NodeAlgo : Fixed corner case where a preset could be listed twice if it was specified by both
preset:<name>
andpresetNames
. - GafferUI : Fixed incorrect Tree/TableView horizontal header height.
- Spreadsheet : Fixed bug that allowed values to be pasted onto plugs with inputs.
- Render/InteractiveRender : Fixed bug in light filter context handling. This could result in light filters not being linked to the correct lights, or cause exceptions during scene translation.
API¶
- M33fVectorDataPlug : Added new plug type for specifying arrays of 3x3 matrices.
- FilterPlug : Added
match
method to evaluate the filter for the specifiedScenePlug
. - PlugAlgo :
extractDataFromPlug()
now supports M33fPlug and M33fVectorDataPlug.promote()
allows metadata to be excluded from promotion by registering a<metadataName>:promotable
metadata value offalse
.
- NodeAlgo : If an input plug does not have presets of its own, it now inherits them from its first output. This is particularly useful
when promoting plugs which have dynamic presets which are computed on demand. Previously the presets would have been baked in
to the promoted plug, but by preventing promotion using
presetNames:promotable = false
andpresetValues:promotable = false
the promoted plug can continue to use the dynamic presets. - MetadataAlgo :
- Added
copyIf()
function, to copy metadata matching an arbitrary predicate. - Deprecated the complex form of
copy()
in favour of a simpler overload and the newcopyIf()
function.
- Added
- ViewportGadget :
setCameraTransform
now properly removes scale and shear from the supplied matrix. - RendererAlgo :
- Added
objectSamples()
overload which fillsvector<ConstObjectPtr>
rather thanvector<ConstVisibleRenderablePtr>
. - Deprecated original
objectSamples()
method.
- Added
Build¶
- Cortex : Updated to version 10.1.4.0.