0.33.0.0¶
Breaking Changes¶
- Image :
- ImageWriter : Defaults to writing all channels instead of just RGB (#2021).
- DeleteChannels : Changed channels plug default to “” (#2021).
- ImageStats : (#2018)
- Defaulted to sampling A in addition to RGB.
- Changed interpretation of ImageStats channels to simply be a list of 4 channels that correspond directly to the output RGBA plugs. Behaviour is unchanged apart from situations where an incomplete or ambiguous channel mask was in use.
- Warp : New API (#1980).
- Engine no longer depends on channelName.
- Derived classes no longer responsible for computing inputWindow.
- API :
- Renamed UndoContext to UndoScope (#2049).
- Removed
Nodule::registerNodule()
overload which took a plug name regex. Use “plugValueWidget:type” metadata instead (#2045). - Added private data member to PerformanceMonitor (#2016).
- Added
createUStrings
argument to OpenImageIOAlgo::DataView constructor (#2040). - Removed ChannelMaskPlug. Use a StringPlug and
StringAlgo::matchMultiple()
instead (#2021). - Renamed renderer backends to “Arnold” and “Appleseed” (#1994).
- Added virtual method to Style class (#2051).
Features¶
- Scene :
- Added light linking (#1985)
- Light links are specified as set expressions using the StandardAttributes node.
- Currently only supported in the Arnold renderer backend.
- Added “scene:renderer” context variable which can be used to query which renderer a scene is being generated for (#1994).
- SetFilter : Added support for using arbitrary set expressions instead of just a single set (#2052).
- Added RotateTool for interactively rotating objects in the viewport (#2051).
- Added MeshTangents node to compute Tangent & Binormal primitive variables on a mesh (#2028).
- Added light linking (#1985)
- Image
- Added Median node (#2022)
- Added Mix node (#2026)
- Added CopyChannels node (#2006)
- Improved support for images with multiple layers : (#2018, #2021)
- Added layer selector to image viewer
- Added improved layer/channel selection to many nodes
- Added ability to use wildcards to select channels to process
- Added colorSpace plugs to ImageReader and ImageWriter (#2004).
- Box : Added BoxIn and BoxOut nodes to improve the visualisation of promoted plugs within the NodeGraph (#2011).
Improvements¶
- TaskList : Added “sequence plug” (#2044).
- Improved GafferImage performance (#2016, #2031).
- OSLShader : Added support for vector->color connections (#2042).
- Expression : Added context menu for inserting common functions and node bookmarks (#2039).
- Stats app : Added performance monitor summary (#2016).
- Merge : Added min and max modes (#2027).
- Grade : Added support for grading alpha channel (#2023).
- Warp : Improved filtering (#1980).
- Added more string matching features #2015 :
[A-Z]
style character classes?
to match any character- ‘’ to escape a subsequent wildcard
- Added mode and units settings to the UVWarp node, and renamed it to VectorWarp (#2014).
- StandardNodeGadget : Added more metadata support (#2011)
- “icon” to add an icon.
- “nodeGadget:shape” to choose a rectangular or oval shape
Fixes¶
- Shader : Fixed bug when assigning a disabled shader with pass-through defined (#2025).
- OSLCode : Fixed string length menu item (#2039).
- Expression :
- ErrorDialogue : Fixed bug in message handling code (#2030).
- StringAlgo : Fixed bug in
matchMultiple()
(#2015). - Switch/Dot : Fixed plug colours in NodeGraph (#2008).
- Transform/Resize : Fixed sinc filter (#1980).
- Fixed export of color/vector plugs from Boxes (#2012).
- Resize : Stopped resampling when only pixel aspect ratio is changed (#2007).
- Fixed crash in viewport mouse handling (#2005).
- Fixed Node Reference link in help menu (#2002).
- Fixed framing of lights in the Viewer, by giving them a default bounding box (#2054).
API¶
- MetadataAlgo :
- Added “childNodesAreReadOnly” metadata. This makes it possible to make the internal nodes of a node read-only, while still allowing the external plugs of the node to be edited (#2048).
- Added functions for bookmarking nodes (#2039).
- Added
childAffectedByChange()
overload for Node changes (#2029). - Added
copy()
function (#2003). - Added
copyColors()
function (#2008).
- NoduleLayout : Added support for custom Gadgets to be specified via metadata (#2043).
- ImagePlug :
- Context management (#2041, #2016) :
- Added Context::EditableScope utility class. Use this instead of the now-deprecated Context::Borrowed copy contructor.
- Added PathScope/SetScope/GlobalScope utility classes to ScenePlug
- Added GlobalScope/ChannelDataScope utility classes to ImagePlug.
- Added FilterPlug::SceneScope utility class.
- Added V2iVectorDataPlug (#2031).
- NodeGadget :
- Added support for “nodeGadget:type” metadata to control the type of gadget created by a node (#2029).
- GraphGadget : Added support for dynamically changing “nodeGadget:type” metadata (#2029).
- Added ChannelPlugValueWidget (#2026).
- Added RGBAPlugValueWidget (#2018).
- ImageGadget : Added methods for selecting which channels to view (#2021).
- ImageAlgo : Added
channelNames()
andlayerNames()
functions (#2019). - Added SetAlgo namespace with methods for evaluating set expressions (#1985).
- PathMatcher : Added
intersection()
method (#1985). - Added FilterAlgo namespace with methods for doing filtered image sampling (#1980).
- SceneAlgo : Added render adaptor API. This provides a simple registry of SceneProcessors which will be used internally within Render nodes to perform just-in-time adaptations of the scene for rendering (#1994).
- PlugAlgo : Added plug promotion methods (#2003).
- Added RotateHandle class (#2051).