0.57.0.0

Features

  • EditScope : Added new node which provides a container for node graph edits made by interactive tools in the UI (#3467).
    • The current EditScope may be chosen from a new menu in the Viewer toolbar.
    • The TransformTools and CameraTool will now automatically create edits in the chosen EditScope, enabling edits without the need to manually create a Transform node.
    • Added a Ctrl + Delete hotkey which prunes the currently selected objects using the current EditScope.
  • LocaliseAttributes : Added new node which makes local copies of inherited attributes.

Improvements

  • PathFilter : Added roots, an optional filter input to provide multiple root locations which the paths are relative to. This can be useful when working on a single asset in isolation, and then placing it into multiple locations within a layout.
  • Spreadsheet : Improved performance of Spreadsheets with many rows.
  • CopyPrimitiveVariables : Improved performance. In one benchmark, scene generation time has been reduced by 50%.
  • MergeScenes : Improved performance when merging overlapping hierarchies.
  • Serialisation : Reduced file size and load time by omitting redundant setInput() calls from serialisations.
  • ShaderTweaks : Added localise option to allow location-specific tweaks to be made to inherited shaders.

Fixes

  • Filter : Fixed bug which prevented “Select Affected Objects” menu items from working in cases where there was another filter in between the filter and the nodes it was applied to.
  • RotateTool : Fixed bug which caused aiming clicks to change the selection in some circumstances.
  • TranslateTool : Fixed bug which caused snapping clicks to change the selection in some circumstances.
  • Viewer : Fixed problems displaying the “Cs” primitive variable.
  • Alembic :
    • Fixed loading of “N” and “uv” for curves.
    • Fixed writing of “N”, “uv” and “width” for curves.
    • Fixed round-tripping of interpretation for secondary UV sets.
  • Stats app :
    • Fixed bug which caused the -scene and -image arguments to evaluate a node’s input rather than its output. In particular this affected nodes like ContextVariables.
    • Fixed bug which meant that the -scene and image arguments didn’t support nested output plugs.
  • ReverseWinding : Fixed incorrect results when two or more primitive variables referenced the same data.

API

  • EditScopeAlgo : Added new namespace with utility functions for editing scenes using EditScope nodes.
  • ScenePlug : Added exists() method. This provides fast existence queries for locations.
  • SceneAlgo :
    • Added filteredNodes() function, returning all the FilteredSceneProcessors affected by a particular filter.
    • Deprecated exists() function. Use ScenePlug::exists() instead
  • Spreadsheet :
    • Added RowsPlug::row( rowName ) method.
    • Added support for spreadsheet:defaultRowVisible metadata, which can be used to hide the default row.
  • AttributeProcessor : Refactored to be more widely useful.
  • Spacer : Added optional preferredSize constructor argument.
  • View : Added editScope plug and editScope() accessor method.
  • TransformTool :
    • Added Selection::editable() method.
    • Added Selection::warning() method.
    • Added selectionEditable() method.
  • TweakPlug : Changed applyTweak(s) return type to bool - indicating if any tweaks were actually performed (#3699).

Breaking Changes

  • AttributeProcessor :
    • Removed names and invertNames plugs.
    • Rederived from FilteredSceneProcessor rather than SceneElementProcessor.
    • Added new pure virtual methods that must be implemented by derived classes.
    • Changed base class of several nodes from SceneElementProcessor to AttributeProcessor :
      • Attributes
      • ShuffleAttributes
      • DeleteAttributes
      • ShaderTweaks
      • ShaderAssignment
      • SetVisualiser
      • AttributeVisualiser
      • CollectTransforms
  • Context : Removed Substitutions, substitutions() and hasSubstitutions(). Use the IECore.StringAlgo equivalents instead.
  • TransformTool : The Selection class now uses accessor methods rather than exposing data members directly.
  • Stats app : The -scene and -image arguments now ignore input plugs.
  • Spreadsheet : Broke binary compatibility. Full source compatibility is retained.
  • NodeUI : Removed lazy argument from plugValueWidget() method.
  • PlugValueWidget : Removed lazy argument from plugValueWidget() method.
  • PlugLayout : Removed lazy argument from plugValueWidget() and customWidget() methods.

Build

  • Cortex : Updated to version 10.0.0-a76.