Skip to content

Releases: GafferHQ/gaffer

Version 0.5.0.1

19 Nov 20:05
Compare
Choose a tag to compare
Version 0.5.0.1 Pre-release
Pre-release

Scene

  • Fixed signal threading bug in SceneProcedural which was causing sporadic crashes

Version 0.5.0.0

17 Nov 19:33
Compare
Choose a tag to compare
Version 0.5.0.0 Pre-release
Pre-release

Core

  • Fixed LocalDispatcher to quote command line arguments and ignore "ui:" prefixed context variables.
  • Avoiding shell subprocess for Local Jobs stats.
  • LocalDispatcher now just constructs a Job and lets it do the heavy lifting
  • Fixed bug where script context changes could leak into local background dispatches.
  • added python error catching to ConnectionBinding, to prevent crashes
  • Fixed serialization bug with extra plugs on references
  • Dispatcher::frameRange() is now public and virtual.

UI

  • Menu widget: Added support for icons
  • Disabled Kill button when no jobs are selected.
  • Job details tab is scrollable and resizable.
  • Fixed context errors in teh scene inspector
  • Added button to remove failed jobs.
  • Preventing update error for deleted display node.
  • Adding support for icons in menus

Image

  • Preventing OIIO error overflow crash

Version 0.4.0.0

29 Oct 21:46
Compare
Choose a tag to compare
Version 0.4.0.0 Pre-release
Pre-release

Core

  • Plugs and ValuePlugs now accept children (#1043).
  • Added child matching to connected Plugs (#1043).
  • Added LocalDispatcher.Job and LocalDispatcher.JobPool to track running batches (#1064).
  • Failing batches not stop a LocalDispatch job.

UI

  • Improved Object section of SceneInspector (#897).
  • Added a window for tracking currently running LocalDispatcher jobs (#872).
  • Fixed reparenting bug with DispatcherWindows (#1064).

Scene

  • Fixed poor performance of Prune/Isolate in presence of SetFilter.
  • Added sets support to Parent node (#1065).
  • Outputting all cameras, not just the primary camera, to the renderer.
  • Added support for per-camera resolution overrides, specified with a "resolutionOverride" V2iData in the camera parameters.

API

  • Plugs and ValuePlugs now accept children. CompoundPlug will be deprecated.
  • Added BranchCreator::hashBranchGlobals() and computeBranchGlobals(), and implemented them for Parent.
  • Added outputCameras() and overload for outputCamera() to RendererAlgo.h.
  • Added LocalDispatcher.Job and LocalDispatcher.JobPool to track running batches.

Incompatible changes

  • Added additional virtual methods to BranchCreator
  • ValuePlug::settable() is no longer virtual
  • Removed methods and member variable from CompoundPlug
  • InteractiveRender "updateCamera" plug renamed to "updateCameras".

Version 0.3.0.0

21 Oct 18:43
Compare
Choose a tag to compare
Version 0.3.0.0 Pre-release
Pre-release

Core

  • Added SubGraph base class, which Reference and Box now derive from, allowing them both to be enabled/disabled.
  • Redesigned Dispatcher registration (#922) (see API section for details).

UI

  • Nodes created via the NodeMenu apply default values to their plugs, using the "userDefault" key in the Metadata (#1038).
  • Exposed the DispatcherWindow to the public API.

Cortex

  • Moved Cortex-specific functionality into new GafferCortex library and module.
    • The Gaffer core itself remains heavily dependent on Cortex, and always will. Here we're splitting out "end user" functionality such as OpHolders and ProceduralHolders, so that GafferCortex can be thought of as the user-visible presence of Cortex within Gaffer.
    • This remains backwards compatible for now via startup files, which allows a grace period for dependent code to update to the new module layout.

RenderMan

  • Added basic support for RenderMan volume shaders.

API

  • Added Gaffer.NodeAlgo python scope with applyUserDefaults( node ) (#1038).
  • Redesigned Dispatcher registration (#922).
    • Dispatchers are registered with Creator functions rather than instances.
    • Added get/setDefaultDispatcherType(), which can be used to create a new instance of the default type.
    • SetupPlugsFn is now a static function that can be registered along with a Creator, rather than a virtual method of Dispatcher instances.
  • Added gil release to GafferScene.matchingPaths python binding.
  • Fixed StringPlug string substitution bug.
  • Catching error_already_set in Dispatcher bindings.

Incompatible changes

  • Reference and Box now derive from SubGraph rather than Node or DependencyNode.
  • Redesigned Dispatcher registration (#922) (see API section for details).

Version 0.2.1.0

14 Oct 18:12
Compare
Choose a tag to compare
Version 0.2.1.0 Pre-release
Pre-release

Core

  • Expression node optimizations

Scene

  • Made ShaderAssignment use the shader type as an attribute name.
  • Added Group::nextInPlug() method
  • InteractiveRender now updates all attributes, not just shaders

UI

  • Dispatcher FrameRange UI displays the value that will actually be dispatched.
  • Removed unwanted horizontal padding from frameless Buttons.

Version 0.2.0.0

10 Oct 15:08
Compare
Choose a tag to compare
Version 0.2.0.0 Pre-release
Pre-release

This release brings significant optimisations, further additions to the SceneInspector, and the usual collection of miscellaneous enhancements and bug fixes.

Core

  • Optimised Context::substitute(). This gives a 73% reduction in runtime for a substitutions benchmark.
  • Added '' as an escape character in Context::substitute() (#997).
  • Boxes may now be enabled/disabled and define pass-through behaviours (#1015).
  • Significant optimisations to the computation engine.
  • Added TaskList node for grouping the dispatch of several input requirements.

Image

  • Fixed Display node for bucket sizes larger than the native tile size.
  • Fixed problems when running embedded in Maya.

Scene

  • Added code to clear caches after full procedural expansion in batch renders.
  • Added scene pass-through to the InteractiveRender node. This allows it to be seen in the Viewer, SceneHierarchy, SceneInspector etc.
  • Significant optimisations. A benchmark scene can now be generated in 3% of its previous runtime.

RenderMan

  • Added "command" plug to RenderManRender. This allows the user to customise the command used to render the RIB (#1017).

UI

  • SceneInspector improvements
    • Added set membership section (#930).
    • Added sets section to globals (#895).
    • Improved responsiveness.
  • MenuButton improvements
    • Menus are shown on press rather than release (#742).
    • Added menu indicator (#493).
  • Fixed OpDialogue bug which caused it to return to the parameters pane when it should have been displaying an error.
  • Dispatcher improvements
    • Added PlaybackRange to the frames mode menu (#1007).
    • Renamed ScriptRange to FullRange.

API

  • Added custom Diff support to SceneInspector.
  • Fixed crashes when passing None to PathMatcher python methods.
  • Added accessors for the buttons on VectorDataWidget (#1003).
  • Fixed broken SceneInspector.Row.getAlternate() method.
  • Added SceneProcedural::allRenderedSignal().
  • Added Context::remove() method.

Incompatible changes

  • SceneInspector API changes.
  • Box rederived from DependencyNode.
  • Dispatcher ScriptRange renamed to FullRange.

Build

  • Improved Travis continuous integration setup
    • Added running of unit tests
    • Added GafferRenderMan support
  • Fixed installation to paths starting with "./"
  • Fixed RenderManShader compilation in Clang 3.4
  • GafferOSL compatibility for OSL version 1.5

Version 0.1.1.0

19 Sep 17:30
Compare
Choose a tag to compare
Version 0.1.1.0 Pre-release
Pre-release

Core

  • Optimised computation for long chains of nodes (#963).
    • Optimised repeat calls to Context::hash().
    • Added Context::changed() method.
    • Made Context::hash() ignore "ui:" prefixed entries.
    • Refactored ValuePlug::hash() to delegate to Computation.

UI

  • Fixed Execute->Repeat Previous menu item.
  • Fixed display of '<', '>' and '&' in SceneInspector.

Scene

  • Added an ExternalProcedural node (#722).
  • Added pass-through plugs to ExecutableRender nodes and SceneWriter.
  • Added pixelAspectRatio, overscan, and resolutionMultiplier options (#979).

Image

  • Added pass-through plugs for ImageWriter.

Build

  • Requires Cortex 9.0.0-a6
  • Fixed typedef issues when building with GCC 4.8
  • Added Travis config for build verification (doesn't run the tests yet)

Version 0.1.0.0

10 Sep 10:33
Compare
Choose a tag to compare
Version 0.1.0.0 Pre-release
Pre-release

Apps

  • The "gui" app now tolerates errors when loading scripts from the command line. Note that currently errors are only reported to the shell.
  • The "execute" app can now handle nodes inside Boxes.

Core

  • Improved version numbering (#980)
    • Versions are now MILESTONE.MAJOR.MINOR.PATCH
      • Changes to MILESTONE version denote major development landmarks
      • Changes to MAJOR version denote backwards incompatible changes
      • Changes to MINOR version denote new backwards compatible features
      • Changes to PATCH version denote bug fixes
    • Added Gaffer.About.compatibilityVersion() method
    • Added GAFFER_COMPATIBILITY_VERSION macro for conditional compilation of C++ extensions
  • Fixed bug whereby GraphComponent::setName() could allow duplicate names
  • Dispatcher improvements
    • Dispatcher::postDispatchSignal() is now always executed, even if execution is cancelled or fails. A new boolean argument is passed to specify whether or not dispatch succeeded.
    • Dispatcher now creates job directories automatically, so derived classes don't have to

Incompatible changes

  • Dispatcher::postDispatchSignal() signature change.
  • Dispatcher jobDirectory() semantics change.
  • Dispatcher jobDirectoryPlug() -> jobsDirectoryPlug() rename.

Build

  • Requires Cortex 9.0.0-a5

0.101.0

03 Sep 17:30
Compare
Choose a tag to compare
0.101.0 Pre-release
Pre-release

This release contains features for render settings, and some work on the Dispatcher mechanism.

Core

  • ExecutableNodes now accept Boxes as requirements inputs and outputs.
  • Dispatchers accept Boxes for direct dispatching (#925).
  • Added SystemCommand executable node.
  • Optimised plug dirty propagation.
  • Added matchMultiple() function to StringAlgo.h.

Scene

  • Renamed Displays node to Outputs. Also changed "label" plug to "name" and the old "name" plug to "fileName" (#54).
  • Fixed dirty propagation bug in Outputs node.
  • Added wildcard matching to DeleteAttributes and DeletePrimitiveVariables.
  • Prefixed options in scene globals with "option:".
  • Added an outputOutputs() method to RendererAlgo.h, so outputOptions() need only output actual options.
  • Added DeleteGlobals node.
  • Added DeleteOutputs node.
  • Added DeleteOptions node (#965).
  • Added global mode to Attributes node, which places the attributes in the globals (with "attribute:" prefixes).
  • Updated render nodes to support global attributes.
  • Added global attribute support to SceneProcedural (#964).
  • Fixed RendererAlgo outputScene() to include coordinate systems.

UI

  • Added Outputs section to the SceneInspector (#921).
  • Updated SceneInspector to display global attributes.
  • Fixed display of single empty bounding box in SceneInspector.

RenderMan

  • Added FrameBegin/FrameEnd in RIBs generated by RenderManRender (#358). Requires Cortex 9.0.0-a5.

OSL

  • Fixed default arguments for OSL In* and Out* shaders.

Build

  • Set default compiler optimisation level to -O3.
  • Added missing OSL, OIIO, OCIO includes to the dependency package.
  • Clang compatibility fixes.

0.96.3

03 Sep 17:38
Compare
Choose a tag to compare
0.96.3 Pre-release
Pre-release

Core

  • Improved Plug bindings with a new PlugClass helper class.
  • Fixed serialisation of non-dynamic ArrayPlugs.