Assets 4

Features

  • CollectTransforms : Added a node for collecting transforms from different
    contexts and storing them as attributes (#2708).
  • CollectPrimitiveVariables Added a node for collecting primitive variables
    from different contexts (#2708).
  • PrimitiveVariableExists : Added utility node for querying the existence
    of a primitive variable (#2708).

Improvements

  • ArnoldLight : Improved performance (#2718).
  • SceneInspector : Added tooltips with the unabbreviated name of the item
    being inspected (#2722).

Fixes

  • Expression : Fixed threading bug in UI error handling (#2652, #2723).
  • ColorProcessor/Shuffle : Fixed bugs caused by attempted computation of non-existent
    upstream channels (#2701, #2731).
  • Light : Fixed bounds computation (#2725).
  • AnimationGadget : Fixes crash caused by dragging keys on adjacent frames (#2720).

@johnhaddon johnhaddon released this Aug 1, 2018 · 26 commits to master since this release

Assets 4

Features

  • Viewer : The 3D viewer now updates asynchronously, keeping the UI responsive while the scene
    is computed in the background (#2649).
  • AnimationEditor : Added a new editor to allow the graphical editing of animation
    curves. This can be found on the tab next to the GraphEditor in the standard layouts (#2632).
  • DeleteObject node (#2694).
  • CopyAttributes node (#2710).

Improvements

  • TranslateTool : Added handles for movement in the XY,XZ,YZ and camera planes (#2709).
  • Layouts menu (#51, #2698) :
    • Added "Default/..." menu items to allow the default startup layout to be chosen.
    • Added new "Save As/..." menu items to allow previously saved layouts to be replaced.
  • SceneInspector (#2607) :
    • Added filter to sets sections.
    • Moved set computations to background process, so they don't block the UI.
  • Shader : Improved performance (#2644).
  • ArnoldLightUI : Added support for "userDefault" parameter metadata. This matches
    the format already in use for ArnoldShaderUI (#2646).
  • Viewer :
    • Added selection mask, to choose which types of objects can be selected (#2696).
    • Added more Arnold diagnostic shading modes (#2645)
      • Matte
      • Opaque
      • Receive shadows
      • Self shadows
  • ArnoldAttributes :
    • Added volumeStepScale, shapeStepSize and shapeStepScale attributes (#2634).
    • Clarified intended usage of subdividePolygons attribute (#2680).
  • FormatPlug : Made "Custom" mode persistent, so it is remembered across save and reload (#2660).
  • InteractiveRender : Removed unnecessary deletion and recreation of objects when childNames
    changes (#2690, #2649).

Fixes

  • GraphEditor :
    • Fixed arrowheads on axis-aligned auxiliary connections (#2647, #2648).
    • Fixed potential auto-scroll bug when dragging a node (#2705).
  • LocalDispatcher/TractorDispatcher : Fixed problems using imath context variables (#2653, #2654).
  • OSLObject : Fixed crashes caused by indexed primitive variables (#2655).
  • Viewer : Fixed visibility of children of look-through camera (#2694).
  • ObjectSource : Fixed transform.* -> out.bound dirty propagation (#2649).

API

  • SceneGadget :
    • Added setPaused()/getPaused() and state() methods (#2649).
    • Replaced baseState() with `set/getOpenGLOptions() methods (#2649).
    • Added waitForCompletion() method (#2649).
    • Added set/getBlockingPaths() methods (#2649).
    • Added set/getSelectionMask() methods (#2696).
  • RenderController : Added new utility class for controlling interactive renders (#2649).
  • AnimationGadget : Added new Gadget for editing animation curves (#2632).
  • Animation (#2632) :
    • Keys are now reference counted, so ownership can be shared between CurvePlugs and the
      AnimationEditor.
    • Keys may be edited in place with key->setTime() etc, and the CurvePlug automatically updates.
    • CurvePlug::keys() has been replaced with CurvePlug::begin() and CurvePlug::end().
      This hides the internal choice of container while still providing iteration.
    • Added optional threshold argument to closestKey().
  • IECoreScenePreview::Renderer (#2649) :
    • Added command() virtual method.
    • Added name() virtual method.
  • IECoreGLPreview::OpenGLRenderer (#2649) :
    • Made it possible to call render() concurrently with edits.
    • Added support for highlighting selected objects.
    • Added "gl:queryBound" command.
    • Added "gl:querySelection" command.
    • Added support for custom object and attribute visualisers.
    • Added options for controlling base attributes.
  • PresetsPlugValueWidget : Added support for an optional "Custom" menu item, which allows the
    user to enter an arbitary value. This is controlled by "presetsPlugValueWidget:allowCustom"
    plug metadata (#2660).
  • BusyWidget : Added busy constructor argument (#2607).
  • LightTweaks (#2660) :
    • Moved TweakPlug to the GafferScene namespace, so it can be reused by other
      nodes.
    • Added "Remove" mode.
  • Layouts (#2698) :
    • Added persistent argument to add() method, mirroring the Bookmarks.add() API.
      This automatically takes care of saving persistent layouts into the startup location.
    • Added setDefault()/getDefault() and createDefault() methods to allow the management
      of a default layout.
  • Handle (#2709) :
    • Added set/getVisibleOnHover() methods.
    • Added PlanarDrag axis accessors.
  • TranslateHandle (#2709) :
    • Added axisMask() method.
  • FilteredSceneProcessor : Added constructor to allow array inPlug().
  • Style :
    • Added methods for rendering animation curves (#2632).
    • Added width and userColor arguments to renderLine() (#2632).
    • Added userColor argument to renderText() (#2632).
    • Added XY/XZ/YZ Axes enum values (#2709).
  • ViewportGadget : Added set/getVariableAspectZoom() method (#2632).

Build

  • ViewportGadget : Fixed compilation on Windows (#2705).
  • OpenImageIOReader : Fixed compilation with XCode 9.4 (#2712).
  • Updated Cortex to version 10.0.0-a28
  • Updated FreeType version 2.9.1
  • Updated Python to version 2.7.15
  • Updated Alembic to version 1.7.8

Breaking Changes

  • GafferSceneUI : Moved visualiser base classes to IECoreGLPreview (#2649).
  • ArnoldAttributes : Changed volume step attributes (#2634).
  • GafferImage : Removed FormatPlug compatibility for files saved in Gaffer 0.16 or older.
    To migrate, resave the file in Gaffer 0.47 (#2682).
  • GafferOSL::ShadingEngine : Removed scope parameter from needsAttribute() (#2655).
  • Layouts (#2698) :
    • Removed save() method. Use the persistent argument to add() and setDefault() instead.
    • Added applicationRoot argument to constructor. You should use acquire() instead anyway.
  • LayoutMenu : Removed delete() method (#2698).
  • GUI config : Renamed standard layout from "Default" to "Standard" (#2698).
  • TranslateHandle : translation()` method now returns a V3f rather than a float (#2709).
  • TransformTool : Made orientedTransform() method const (#2709).
  • Style : Changed method signatures, enum values, and added virtual functions (#2632).
  • Animation : Refactored API. See API section for more details (#2632).
  • IECoreScenePreview::Renderer : Added virtual methods (#2649).
  • InteractiveRender : Added and removed private member data (ABI break) (#2649).
  • SceneGadget (#2649) :
    • Added/removed private members (ABI break).
    • Remove baseState().
  • SceneView : Reorganised/simplified drawingMode plugs (#2649).

@johnhaddon johnhaddon released this Jul 4, 2018 · 185 commits to master since this release

Assets 4

Features

  • ImageView : Introduced asynchronous processing, so that the UI remains responsive while
    the viewer updates progressively (#2578).
  • Apps : Added a new dispatch application. This dispatches task nodes such as ImageWriters,
    SystemCommands and Render nodes, either from within an existing .gfr file or by
    creating nodes on the fly. This differs from the execute app in that it performs a
    full dispatch via a dispatcher, rather than executing a single task node (#2588).
  • Revamped OSL shaders (#2539).
    • Added MultiplyVector, DotProduct, CrossProduct, RemapFloat, RemapColor, RemapVector,
      FloatToColor, ColorToFloat, FloatToVector, VectorToFloat, ColorToVector,
      Luminance, MixColor, MixVector, MixFloat, AddColor, AddFloat, AddVector,
      DivideColor, DivideFloat, DivideVector, MultiplyColor, MultiplyFloat, MultiplyVector,
      SubtractColor, SubtractFloat, SubtractVector, InvertMatrix, Length, Normalize,
      PowFloat, RoundFloat, SinFloat, MatrixTransform, CompareColor, CompareFloat,
      CompareVector, SwitchColor, SwitchFloat, SwitchVector, CoordinateSystemTransform,
      CoordinateSystemMatrix.
    • Removed some old shaders, keeping compatibility by converting them to new shaders
      during loading.
  • Appleseed : Updated to version 1.9
    (#2570).

Improvements

  • Instancer : Replaced original proof-of-concept Instancer with a new version intended
    to be suitable for production use (#2642) :
    • Added support for orientation and scale primitive variables.
    • Added support for index and id primitive variables.
    • Added support for creating per-instance attributes.
    • Added support for sets.
    • Improved performance by removing ${instancer:id} context variable.
  • Documentation : Improved structure and presentation (#2612, #2613, #2616, #2619, #2625, #2628, #2631).
  • Appleseed (#2570) :
    • Added support for pixel_time AOV.
    • Added denoiser options to AppleseedOptions node.
  • OSLImage/OSLObject (#2586) :
    • Added support for time global variable.
    • Added support for reading context variables.
  • OSLImage : Improved performance by only reading the upstream channels needed by the
    shader (#2586).
  • Arnold renderer : Improved shader conversion performance (#2594).
  • ArnoldOptions : Changed default value for parallel_node_init to on. This matches the default
    in Arnold 5.1 (#2594).
  • OSLImage/OSLObject/RankFilter/Resample : Added cancellation support. This improves
    responsiveness in the new asynchronous ImageView (#2586, #2590).
  • Isolate/Prune : Improved set processing performance (#2587).
  • BranchCreator : Improved set processing performance (#2594).
  • Application : Moved startup file execution before argument evaluation. This makes it
    possible for a startup file to manipulate application arguments if necessary (#2588).
  • Stats app : Added -canceller argument (#2586).
  • UI : Renamed Scene Hierarchy to Hierarchy View and Node Graph to Graph Editor.
  • AttributeVisualiser : Added support for visualising Color3f attributes #2641).

Fixes

  • Viewer :
    • Fixed display of nested lights in look-through menu (#2615).
    • Fixed selection after expanding the selected locations (#2617).
  • Metadata :
    • Fixed GIL management bug (#2582).
    • Fixed crash if None is passed to registerValue() (#2582).
    • Fixed bindings for change signals (#2610).
  • UI : Fixed initial size and position of Preferences, Settings and Node Editor
    windows (#2643).
  • ContextAlgo : Fixed GIL management (#2618).
  • SubGraph : Fixed crash in correspondingInput(). This manifested itself as crashes in
    the NodeGraph when dragging a Box with an unconnected BoxOut node over a connection (#2583).
  • TractorDispatcher : Fixed bug handling nodes like TaskList and FrameMask nodes, that don't
    have any work of their own to do (#2584).
  • ImageAlgo : Fixed GIL management bug (#2585).
  • Arnold/OSL : Fixed problems caused by Arnold trying to recompile Gaffer's OSL shaders
    unnecessarily. We no longer install the shader source files (#2539).
  • ScriptNode : Fixed GIL management bug (#2578).
  • BackgroundTask : Fixed interactions with ScriptNode lifetime (#2578).
  • Threading : Fixed bugs caused by TBB cancellation propagation (#2589).
  • LocalDispatcher : Fixed exception handling during foreground dispatch. Exceptions from
    Tasks are now propagated back to the caller instead of being suppressed (#2588).
  • Appleseed : Disabled SPPM for interactive renders (#2570).
  • Catalogue : Fixed bug where orphaned Catalogue tried to save an image (#2621).
  • ViewportGadget : Fixed setCameraTransform() to trigger a rerender (#2639).
  • Arnold : Worked around clashes between Mesa drivers and libai.so (#2638).

API

  • DispatchUI : Added DispatchDialogue class (#2588).
  • Dispatcher :
    • Added dispatchSignal() (#2574).
    • Improved signal exception handling (#2574).
    • Added deregisterDispatcher() static method (#2588).
    • Removed "frame" variable from TaskBatch contexts. This means it is no longer
      available to PythonCommand code in sequence mode (#2608).
  • Outputs : Added deregisterOutput() method (#2581).
  • GafferUI : Added new BackgroundMethod decorator to assist in performing processing in
    background threads (#2578).
  • ShadingEngine : Added hash() method (#2586).
  • PlugLayout :
    • Added embedded constructor argument (#2599).
    • Added ":width" metadata support (#2604).
  • Editor : Added instanceCreatedSignal() method. This can be used to customise the
    standard editors immediately after they've been created (#2605).
  • BusyWidget : Added setBusy() and getBusy() methods (#2604).
  • ImageGadget : Added setPaused()/getPaused() and state() methods (#2604).
  • ScriptEditor : Added outputWidget() accessor (#2622).

Build

  • Updated Appleseed version to 1.9.
  • Updated OpenImageIO version to 1.8.12.
  • Updated OpenShadingLanguage version to 1.9.9.
  • Updated GLEW version to 2.1.0.
  • Updated Cortex version to 10.0.0-a25.
  • Improved documentation build process (#2622).

@andrewkaufman andrewkaufman released this Jun 7, 2018 · 431 commits to master since this release

Assets 2

Features

  • Revamped OSL shaders (#2539).
    • Added MultiplyVector, DotProduct, CrossProduct, RemapFloat, RemapColor, RemapVector,
      FloatToColor, ColorToFloat, FloatToVector, VectorToFloat, ColorToVector,
      Luminance, MixColor, MixVector, MixFloat, AddColor, AddFloat, AddVector,
      DivideColor, DivideFloat, DivideVector, MultiplyColor, MultiplyFloat, MultiplyVector,
      SubtractColor, SubtractFloat, SubtractVector, InvertMatrix, Length, Normalize,
      PowFloat, RoundFloat, SinFloat, MatrixTransform, CompareColor, CompareFloat,
      CompareVector, SwitchColor, SwitchFloat, SwitchVector, CoordinateSystemTransform,
      CoordinateSystemMatrix.
    • Removed some old shaders, keeping compatibility by converting them to new shaders
      during loading.

@andrewkaufman andrewkaufman released this Jun 6, 2018 · 1815 commits to master since this release

Assets 2

Features

  • Added a new dispatch application (#2601).
    • This app dispatches task nodes such as ImageWriters, SystemCommands and Render nodes,
      either from within an existing .gfr file or by creating a script on the fly. This differs from the execute
      app in that it performs a full dispatch via a dispatcher, rather than executing a single task node.
    • The gui mode of this app uses a more general DispatchDialogue which can be used by external
      tools for customized dispatching.

Improvements

  • Isolate/Prune/Parent : Improved performance when processing sets (#2595).
  • Arnold Renderer : Improved performance when outputting shaders (#2595).
  • ArnoldOptions : Turn on parallel_node_init by default (#2595).
    • This was a problem with Cryptomatte in Arnold 4, but appears to be safe in Arnold 5.
  • SceneViewUI : Defer camera and light set computation until required (#2600).
  • PlugLayout : Added support for embedded PlugLayouts (#2596).
  • Application : Run startup files before evaluating args (#2601).
  • Dispatcher : Added ability to deregister a dispatcher type (#2601).
  • ErrorDialogue : Present more user friendly message (#2601).

Fixes

  • SubGraph : Account for BoxIO in correspondingInput() (#2600).
  • FormatPlug::acquireDefaultFormatPlug() : Fixed crashes if None is passed via
    python bindings (#2600).
  • Arnold : Fixed NodeEditor layout of new standard_surface shader parameters (#2600).
  • MessageWidget : Maintain indentation in tracebacks (#2601).
  • LocalDispatcher : Fixed suppression of exceptions during foreground dispatch (#2601).

Build

  • Fixed IE install script for Cortex 9.

@andrewkaufman andrewkaufman released this May 18, 2018 · 431 commits to master since this release

Assets 2

Features

  • ReverseWinding : Added new node that reverses the winding order of meshes (#2568).
  • MeshDistortion : Added new node that calculates the distortion of a mesh from a
    reference shape (#2568).

Improvements

  • Stats app : Added -sets command line argument, to allow scene sets to be computed (#2572).
  • OSLObject : Added support for reading and writing UVs via new InUV and OutUV shaders (#2569).
  • SceneViewUI : Defer camera and light set computation until required (#2567).

Fixes

  • Arnold : Fixed NodeEditor layout of new standard_surface shader parameters (#2573).
  • Catalogue : Fixed crash caused by non-writable directory (#2571).
  • Stats app : Fixed bugs in -preCache argument. It was using the wrong context and
    not respecting the -frames flag (#2572).
  • WidgetAlgo : Fixed bug when grab() with the event loop running (#2575).
  • MapOffset : Fixed bug when offsetting an indexed uv set (#2576).

@andrewkaufman andrewkaufman released this May 3, 2018 · 465 commits to master since this release

Assets 4

Features

  • FrameMask : Added new node to mask out upstream tasks on particular frames (#2558).

Improvements

  • Layouts (#2522) :
    • Simplified space-bar panel expansion, and removed the annoying auto-expand
      behaviour for collapsed panels.
    • Removed tabs from the Scene layout's Timeline panel.
  • DeleteFaces/DeletePoints/DeleteCurves : Added invert plug (#2546).
  • Spline widgets (#2551) :
    • Added axis lines at y=0 and y=1.
    • Improved framing behaviour.
    • Made float splines display as curves by default.
  • Dispatcher : Reduced overhead of job directory creation (#2557).
  • OSLObject : Added support for double primitive variables (#2547).

Fixes

  • Layouts : Fixed circular references created by layout menus. These could cause crashes
    during shutdown (#2522).
  • BoolPlugValueWidget : Fixed displayMode metadata handling. This restores the little
    switches on the Attributes nodes (#2553).

API

  • Metadata : Improved wildcard matching (#2536) :
    • Stopped '' matching '.' in a plug path. This mimics how '' doesn't match '/' in a
      glob match or in the PathMatcher.
    • Added '...' wildcard that matches any number of plug path elements, in the same way a
      PathMatcher does.
  • ImageAlgo (#2561) :
    • Added support for lambdas in parallelGatherTiles().
    • Added a tileOrder parameter to parallelProcessTiles().
    • Added python bindings for parallelGatherTiles().
  • Context : Added optional IECore::Canceller that can be used to cancel long
    running background processes (#2559).
  • BackgroundTask : Added new class to assist in the running of processes on background
    threads (#2559).
  • ParallelAlgo (#2559) :
    • Added callOnUIThread() method.
    • Added callOnBackgroundThread() method.

Breaking Changes

  • SplitContainer (#2522) :
    • Removed animationDuration argument from setSizes() method.
    • Removed targetSizes() method.
  • Metadata : * no longer matches . in a plug path (#2536).
  • PlugValueWidget : Removed registerCreator() method. Use metadata instead (#2536).
  • ImageAlgo : Changed signatures for parallelProcessTiles() and parallelGatherTiles() (#2561).
  • StringAlgo : Removed. Use IECore::StringAlgo instead (#2534).
  • Display : Removed executeOnUIThread() method. Use ParallelAlgo instead (#2559).
  • Gadget : Removed executeOnUIThread() method. Use ParallelAlgo instead (#2559).

Build

  • Requires Cortex 10.0.0-a20.
  • Improved experimental CMake build setup (#2560).

@andrewkaufman andrewkaufman released this Apr 17, 2018 · 539 commits to master since this release

Assets 3

Features

  • GafferSceneUI : Added CameraTool to the Viewer (#2531).
    • This enables the movement of the camera in the viewport to be pushed back upstream
      into the node for the camera or light that is currently being looked through. Note
      that once activated, the CameraTool will remain active even after another tool has
      been chosen.

Improvements

  • ShaderUI : Added support for userDefault metadata for shader parameters (#2544).

Fixes

  • SceneGadget : Fixed dirty propogation (#2541).
  • Metadata (#2544) :
    • Added deregisterValue() overload for string targets.
    • Fixed overwriting of values for string targets.
  • FormatPlug::acquireDefaultFormatPlug() : Fixed crashes if None is passed via
    python bindings (#2549).

Build

  • Added experimental CMake build in contrib (#2543).

API

  • ViewportGadget (#2531) :
    • Added accessors for center of interest.
    • Added orthographic3D camera mode.
  • BoolPlugValueWidget (#2531) :
    • Added support for BoolWidget.DisplayMode.Tool
    • Added boolWidget() accessor, matching StringPlugValueWidget.textWidget().
  • GafferUI : Add ToolUI (#2531) :
    • This sets up the "active" plug to use a BoolPlugValueWidget in tool mode,
      with an appropriate icon.
  • Viewer : Added support for "tool:exclusive" metadata (#2531) :
    • This allows certain tools to be marked as non-exclusive, allowing them to
      remain active even when another tool has been chosen.
  • TransformTool : Exposed constructor for Selection class (#2531).

@andrewkaufman andrewkaufman released this Apr 12, 2018 · 1815 commits to master since this release

Assets 2

Improvements

  • OSLObject : Improved performance by removing unnecessary primitive variable resampling.
  • Arnold : Added support for OSL shaders with multiple outputs.
  • Viewer :
    • Improved reporting of errors involving look-through cameras.
    • Improved camera selection UI.
    • Added default camera settings dialogue.
    • Added Ctrl+K shortcut to fit clipping planes to selection.
    • Added Ctrl+F shortcut to frame selection and fit clipping planes to match.
    • Added context menu.
    • PointsPrimitives now default to drawing as GL points. The Drawing dropdown menu can
      be used to display them as disks instead.
  • Expression : Added support for "x" in context Python syntax.
  • Shader :
    • Added support for showing/hiding output parameters in the NodeGraph.
    • Added support for userDefault metadata for shader parameters.

Fixes

  • Transform tools :
    • Fixed bug where pivot was ignored.
    • Fixed bug affecting Transform node when space was set to World.
    • Fixed context management bug.
  • FileMenu : Fixed premature exit when opening backup containing error.
  • NodeAlgo : Fixed attempts to apply user defaults to plugs that are not settable.
  • Metadata : Fix overwriting of values for string targets.

API

  • ShaderUI : Added hideShaders() function.

Build

  • Arnold 5.1 Compatibility

@johnhaddon johnhaddon released this Apr 7, 2018 · 575 commits to master since this release

Assets 4

Improvements

  • ArnoldAttributes : Added support for "subdiv_uv_smoothing" Arnold parameter (#2538).
  • OSLObject : Improved performance by removing unnecessary primitive variable resampling (#2523).
  • BoxUI : Removed "Promote as Box.enabled" menu item. The regular "Promote to Box" menu
    item should be used instead (#2528).

Fixes

  • SceneHierarchy : Fixed bug which caused the scene selection to be cleared
    unnecessarily (#2525).
  • SceneInspector (#2532) :
    • Fixed selection bug in Globals->Sets section.
    • Fixed graphical glitch in Globals->Sets section.
  • Transform Tools : Fixed context management bug (#2524).
  • FileMenu : Fixed premature exit when opening backup containing error (#2526, #2527).
  • OpenGLShader : Fixed serialisation (#2529).
  • Box : Fixed creation of Boxes around existing SceneNode graphs (#2530).
  • SceneGadget : Fixed Python binding for getScene() (#2532).

API

  • ShaderUI : Added hideShaders() function (#2533).