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

  • 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 :

    • Fixed string context variable comparison bug (#2040).

    • Protected context from modification (#2010).

  • 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() and layerNames() 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).

Build

  • DEBUG build option now also disables optimisations (#2009).

  • Enabled coloured compiler output (#2000).

  • Updated to use Cortex 9.18.0

  • Added QtUiTools module to build package.