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).
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).
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).