Skip to content

appleseed 1.4.0-beta

Choose a tag to compare
@dictoon dictoon released this 31 Mar 17:33
· 4476 commits to master since this release

These are the release notes for appleseed 1.4.0-beta.

The following people contributed code for this release: François Beaune, Alexey Dokuchaev, Esteban Tovagliari.


Major Changes

The highlights of this release revolve around improving our support of dielectrics:

  • Support for arbitrarily nested dielectrics with user-specified priorities
  • Automatic tracking of indices of refraction

Here is a render using these new facilities (download this test scene):

Whisky Glass

And here are a couple examples of how dielectrics priorities affect rendering:

Nested Dielectrics 1 Nested Dielectrics 2

We also added new BSDFs: sheen, glossy, metal, and glass. They are based on recent research and have user-friendly parameters.

Metal BRDF Test Glass BRDF Test

OSL support was improved in this release. We made the new BSDFs available as closures. The new closures make it easier to write shaders. They compute internally many terms that previously had to be computed on the shaders and they benefit from automatic tracking of indices of refraction.

In addition, it's now possible to write view-independent shaders that will work correctly with bidirectional rendering methods, a direction we would like to explore in future appleseed releases.

We also revamped the OSL shader library to use the new closures, added a new subsurface shader
and improved the quality of the code in general.

Finally, we replaced all the icons in by a new set of modern icons. Big thanks to François Gilliot for the great work!

New Icons

Minor Changes

  • Fixed artifacts that start to appear after 4 billions pixel samples.
  • The Oren-Nayar BRDF now matches the Lambertian BRDF when roughness is set to 0.
  • Added new sheen BRDF (extracted from the Disney BRDF).
  • Fixed position of orthographic cameras.
  • Added 3ds Max-compatible Omni and Spot light source models.
  • Added exposure controls to lights and lat-long environment EDF.
  • Fixed occasional crash when interrupting rendering.
  • BSDFs now support anisotropy in the V direction. The anisotropy parameter range is now [-1, 1]: values from 0 to 1 stretch the specular highlights in the U direction while values from 0 to -1 stretch them in the V direction.
  • The specular BTDF now supports absorption based on Beer's law.


  • New as_sheen, as_glossy, as_metal and as_glass closures.
  • Removed reflection, refraction and microfacet closures.
  • Added smooth tangents and bitangents to OSL.
  • Fixed orientation of tangents in OSL.
  • OSL closure parameters have now better names.
  • Abort rendering if there are OSL errors.
  • Fixed wrong OSL subsurface closure weight in the presence of multiple subsurface closures.
  • Updated the OSL shader library.

  • now remembers the position/dimensions of its main window.
  • now loads all its icons from disk, making it easy for anyone to tweak or replace them.
  • Added Reload and Rendering Settings toolbar buttons.
  • Use alternating colors in Project Explorer.
  • Miscellaneous UI cleanups and improvements.


  • Allow creating OSL and Disney materials from Python.
  • Added Python bindings for vector operators (dot and cross products, norm, normalize).
  • Exposed 4D vectors in Python bindings.
  • Exposed 3D orthonormal basis (Basis3d) in Python Bindings.
  • Added insert_path() and remove_path() Python methods to Configuration class.
  • Execute any pending Python tile callbacks when rendering terminates.
  • Added PauseRendering enumeration value to IRenderControllerStatus.
  • It is no longer necessary to override all methods of ITileCallback when only some are necessary.