0.19.0.0

Apps

  • Added a preference for OIIO cache memory to the gui app.

Core

  • Added a TaskSwitch node.
  • Added support for variable substitutions within SystemCommand.
  • Added a PythonCommand node.
  • Expression
    • Added support for assigning floats to IntPlugs in Python expressions.
    • Added detection of circular dependencies within expressions.
  • Added support for metadata edits on Reference nodes (#1536).
  • Fixed bug which caused internal connections to be removed when unparenting a Node.

UI

  • Fixed SceneInspector context bug.
  • Fixed display bug in Wedge string mode

Image

  • Added Blur node.
  • Added Text node.
  • ImageReader
    • Added modes for handling missing frames.
    • Added settings for masking image sequences.
    • Added automatic conversion to linear using OIIO colorspace metadata (#250).
    • Renamed old ImageReader to OpenImageIOReader - this is now just a utility class which is used internally.
  • Added ImagePrimitiveProcessor base class.
  • Added methods for controlling the OIIO cache memory.
  • Fixed bug which prevented the ImageWriter using the requested compression (#1538).
  • Resample
    • Added expandDataWindow plug.
    • Added support for “smoothGaussian” filter.
    • Fixed bug which prevented subpixel translations.
  • Fixed dirty propagation bugs in Offset node.
  • Added Difference operation to Merge.
  • ImageTransform
    • Improved performance up to 50%.
    • Improved quality.
    • Changed rotation direction to counter clockwise.
    • Made “cubic” the default filter./
  • Removed Reformat node. Use Resize instead.
  • Fixed computation of max in ImageStats.
  • Fixed performance bug when ImageNodes are used inside a Box subclass implemented in Python.
  • Fixed Merge dataWindow computation when the first input is unconnected.

Arnold

  • Added ray depth setting to ArnoldOptions node.

Documentation

  • Updated for latest changes.

API

  • Added python bindings for ImageWriter::Mode.
  • Expression::setExpression() preserves previous state in the case that parsing fails.
  • Stopped CompoundNumericPlug::getChild() from masking the base class equivalents.
  • Added ImageTestCase with assertImagesEqual() method.
  • Removed filter from ImageSampler.
  • Added Resample::filters() method.
  • ImageTestCase
    • Fixed threshold comparison bug in assertImagesEqual().
    • Added assertImageHashesEqual() method.
  • Added OpenColorIOTransform::availableSpaces() method
  • Context::Scope may now be constructed with a NULL argument - this is a no-op.
  • Reintroduced default format substitutions to AtomicFormatPlug.
  • Added GafferImage::Shape base class.
  • Removed ChannelMaskPlug::channelIndex() method. Use ImageAlgo colorIndex() method instead.
  • Added channel name utility methods to ImageAlgo.

Build

  • Improved reporting in Travis config.
  • Updated several dependencies to match the VFX Reference Platform.
    • Boost 1.55
    • OpenEXR 2.2.0
    • OpenColorIO 1.0.9
  • Updated to Appleseed 1.3.0-beta

Incompatibilities

  • ImageTransform now uses OIIO filters rather than GafferImage filters - the old filter names are no longer supported.
  • ImageTransform now rotates counter clockwise.
  • Removed Reformat and redirected it to Resize, which supports OIIO filters rather than GafferImage filters.
  • Removed filter plug from ImageSampler. Bilinear interpolation is used instead.
  • Removed FilterPlug. Use StringPlug instead.
  • Removed Filter. Use OIIO filters instead.
  • Removed FilterPlugValueWidget. Use presets instead.
  • Removed ChannelMaskPlug::channelIndex() method. Use ImageAlgo colorIndex() method instead.