0.41.0.0

Breaking Changes

  • Adopted Cortex 10 UV representation (#2281) :
    • UVs are now represented as V2f primitive variables, not separate s/t float primitive variables.
    • Primary UV set is called “uv”.
    • UV origin is in the bottom left, with increasing values of V going up (flipped vertically compared to previous orientation).
    • Indices are now stored on the same primitive variable as the UVs themselves.
    • This has affected the plugs and default values for a number of nodes.
  • SplinePlug : Changed value representation from IECore::Spline to new SplineDefinition class (#2148).
  • Algo headers : Removed compatibility namespacing (#2299).
  • Removed CompoundPlug. Use Plug or ValuePlug instead (#2298, #1323).
  • Removed CompoundPlugValueWidget. Use PlugLayout instead (#2298).
  • FilteredSceneProcessor : Removed deprecated filterContext method. Use FilterPlug::FilterScope instead (#2260).
  • Stopped installing Cortex image ops. Use GafferImage nodes instead (#2258).
  • Removed OpenImageIOAlgo. Use IECoreImage::OpenImageIOAlgo instead (#2258).
  • Removed GafferCortexUI::ImageReaderPathPreview. Use GafferImageUI::ImageReaderPathPreview instead (#2258).
  • GafferBindings : Hid internal details in GafferModule (#2289).
  • GafferUIBindings : Hid internal details in GafferUIModule (#2256).
  • GafferCortexBindings : Hid internal details in GafferCortexModule (#2248).

Features

  • Added Viewer visualisation of Arnold light filters (#2275).
  • Added Encapsulate node. This encapsulates portions of a scene by collapsing the hierarchy and replacing it with a procedural which will be evaluated at render time (#2283).
  • Added FloatSpline OSL shader ((#2292).
  • Added VTuneMonitor to annotate VTune profiles with node processes (#2247).

Improvements

  • LightTweaks : Added “Delete” menu item to context menu (#2285).
  • OSLShader : Improved node graph labels (#2296).
  • Parent : Defaulted “root” plug to value of “/” (#2242).
  • ArnoldOptions : Added abortOnError and maxSubdivison settings (#2290).
  • SplinePlug :
    • Added MonotoneCubic interpolation option (#2148).
    • Added option to preview splines as curves rather than a colour ramp (#2292).
  • CollectScenes : Added “root” plug, to allow subtrees to be collected from the input scene (#2238).
  • OSLObject/ShadingEngine : Added multithreaded evaluation for improved performance (#2251).
  • CompoundDataPlug : Added menu items for adding box plugs (#2263).
  • Browser/View apps : Improved image preview (#2258).
  • Filter plug UI : Decluttered embedded filter UIs (#2276).
  • Group/BranchCreator : Optimised context management (#2270).

Fixes

  • ArnoldRender : Fixed error handling for aborted renders (#2279).
  • SplineWidget :
    • Fixed incorrect colours in rightmost column (#2295).
    • Fixed editing of float splines (#2292).
    • Fixed curve width (#2293).
    • Fixed drawing of curves with minimum Y values other than 0 (#2292).
  • ImageWriter : Fixed bug when writing JPEG with blank scanlines (#2268).
  • ImageReader : Fixed “enabled” plug, so that turning it off outputs a default blank image (#2254).
  • Documentation :
    • Fixed formatting of supported file extensions (#2244).
    • Clarified that the SceneReader node does support Alembic (#2244).
    • Fixed URL (#2273).
  • BoxIO : Fixed bug that could cause promoted plugs to initially be invisible in the NodeGraph (#2284).
  • GraphGadget : Fixed GIL handling in setRoot() and setFilter() methods (#2287).
  • PlugLayout : Collapsible layouts are now used if a rootSection is specified (#2276).
  • PlugAlgo : Fixed bug where promoted plugs had the wrong value (#2298).
  • Prune : Fixed hashing of sets (#2243).
  • Text : Fixed problems with vertical alignment when there was too much text to fit in the text area (#2291).

API

  • ValuePlug : The Node::plugSetSignal() is now emitted for all ancestors, not just for ValuePlugs (#2298).
  • GafferCortex::ParameterHandler : Added hash() method (#2298).
  • RendererAlgo : Added optional root argument to outputObjects() (#2283).
  • SceneAlgo : Added parallelProcessLocations() overload taking root (#2283).
  • Wrapper classes : Added templated variadic constructors (#2250).
  • PlugAlgo : Added promoteWithName() function (#2284).
  • Added Capsule class to represent encapsulated scene hierarchy (#2283).
  • StandardLightVisualiser : Added method for querying spotlight parameters (#2275).
  • WidgetAlgo : Fixed grab() to work around Qt bugs on OSX (#2307).

Build

  • Added compatibility with OIIO 1.8 (#2261).
  • Requires Cortex 10.0.0-a4.
  • Made SConstruct compatible with Python 3 (#2280).
  • Fixed problems building the documentation (#2307).