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.