Version history with release notes


Changes since 1.0.0rc18:
New (old) features
  • alSurface - Transmit AOVs parameter now works again The Tranmit AOVs parameter that causes a dielectric to "pull" its AOVs through from surfaces seen in the refracted and reflected image now works again after a long period on hiatus. It is no longer necessary to enable the parameter on all surfaces in the scene, it only needs to be enabled on the shader that is directly visible to the camera in which you want to see the transmitted AOVs. Note that this feature does not currently work with alLayer or alHair.
  • alLayerColor - Added clamp option alLayerColor not supports a clamp parameter that allows you to disable clamping during blending.
Bug fixes
  • Cryptomatte - Fixed broken material override
    Contributed by Marcel Ruegenberg
  • Cryptomatte - Fixed issue with transparent materials.
    Contributed by Jonah Friedman
  • Cryptomatte - Fixed handling of opacity and min_pixel_width
    Contributed by Jonah Friedman
  • alSurface - Fixed transmission normal override
    The transmission lobe now respects the Transmission>Normal parameter.
  • alSurface - Fixed total internal reflection
    Total internal reflection paths now correctly escape to the environment when the refraction ray depth limit is reached. Contributed by Ryan Heniser
  • alSurface - Fixed light groups transmission
    A bug that caused incorrect light groups outputs when transmission rays escaped to the environment has been fixed.
  • alHair - Fixed ramps not working
    A bug that caused ramps along the hair not to work has been fixed.


Changes since 1.0.0rc17:
New features
  • alHair and alLayer now support cryptomatte alHair and alLayer now output the cryptomatte AOVs. Contributed by Gaetan Guidet
  • New cryptomatte_aov shader A new shader, cryptomatte_aov is included that allows you to add the cryptomatte AOVs to any shader by connecting said shader to its passthrough parameter. Contributed by Gaetan Guidet
  • alLayerColor/Float new features alLayerColor and alLayerFloat now have a name field and checkbox toggle for each layer. The name field is for the UI only and allows to you give a meaningful name to each layer so you can remember what's plugged in. The checkbox can be used to quickly toggle each layer.
  • alHair - Dual-Scattering LUT optimizations alHair now only generates the lookup tables for dual scattering when dual scattering is actually being used, and the parameters have changed. This removes some needless computations that make IPR updates smoother
Bug fixes
  • alSurface - Fixed NaNs in anisotropic specular
    alSurface would generate NaNs when using anisotropy with 0 roughness in recent Arnold versions. This has now been fixed.
  • Cryptomatte - overrides now work correctly
    The per-shader overrides in cryptomatte now work correctly. Contributed by Jonah Friedman
  • alHair - fixed saturation in forward scattering
    An error in dual scattering calculation was causing forward scattering to appear slightly desaturated. This has now been fixed. Note that this is a look-breaking fix.


Changes since 1.0.0rc16:
New features
  • Cryptomatte
    alSurface, alHair, and alLayer now support Cryptomatte AOVs. Cryptomatte is a system developed and contributed by Psyop that allows generating perfect mattes for an arbitrary number of objects from a single (multi-channel) OpenEXR AOV. Also included are Nuke tools that allow easily creating mattes from the rendered AOVs just by picking objects in the Nuke Viewer. There is a quick-start tutorial to show how to use this feature.
  • alCombineColor - New ops
    alCombineColor now supports dot, cross and distance operators to allow you to do basic vector math in shader graphs.
Bug fixes
  • alSurface - Fixed multi-lobe empirical SSS
    The second and third lobes in alSurface are now properly scaled to match the first lobe.


Changes since 1.0.0rc15:
New features
  • alSurface - Multi-lobe support for empirical SSS
    The empirical SSS mode now supports multiple lobes to match the other modes.
Bug fixes
  • alHair - Fixed indirect calculation
    alHair now samples indirect illumination correctly, and the Brute force bounces parameter has been re-introduced. It is strongly recommended to set this to 1 whenever using indirect illumination on hair as the result is significantly better-looking. Thanks to Kevin Beason for spotting the issue.


Changes since 1.0.0rc14:
Incompatible changes
  • alHair - Fixed multiple importance sampling
    alHair previously used a hacky custom implementation of MIS in order to generate separate AOVs for each hair lobe (i.e. specular, specular2, transmission, glints). This relied on Arnold's internal MIS implementation being executed in a particlar order and was unsafe, resulting in incorrect transmission evaluation in previous versions and hard-to-remove fireflies in the latest Arnold version ( The MIS code has been reworked to play nicely with Arnold which fixes the visual artefacts. This results in a look-breaking change with previous versions, and all the hair glossy lobes are now packed into direct_specular and indirect_specular and can no longer be separated. Also, the Brute-force bounces parameter has been removed as that function is no longer supported.


Changes since 1.0.0rc12:
New Features
  • alSurface - GGX
    alSurface now has a new Distribution parameter for each specular lobe that allows you to select between the default Beckmann distribution and the new GGX distribution. GGX matches better to empirical data and may be made the only option in a future version.
  • alSurface - empirical SSS mode
    alSurface now has the empirical SSS mode available. This mode is similar to the default cubic mode, but preserves detail better and suffers less from color fringing.
  • alRemapFloat - mask parameter
    alRemapFloat now supports a Mask parameter like alRemapColor that allows you to define where the remap is applied.
Bug fixes
  • alLayer - correct blending of surfaces with directional SSS
    alLayer would sometimes create artefacts when blending two alSurface shaders that both used the directional SSS mode. It now layers these shaders correctly.
  • alHair - opacity ramp evaluation
    alHair would not treat opacity correctly when Maya ramps were connected to the opacity parameter. This has now been fixed.


Changes since 1.0.0rc12:
New Features
  • alSurface - added Internal direct reflections parameters
    alSurface now has Internal direct reflections parameters for each specular lobe that allow you to disable the rendering of direct highlights on the inside of materials. In some instances (particularly on single panes of glass), direct highlights cause odd-looking double reflections and so disabling them is preferable. Note that this will underestimate the lighting integral (negative bias), while when enabled (the default) the result is incorrect, but more pleasing in many cases as the extra highlight is present, just in the wrong place.
  • Added alsUtil.mel to binary distribution
    Added alsUtil.mel to the binary packages. This file includes some handy utility functions for using alShaders for Maya, such as settings ID overrides for selected objects and setting light groups on selected lights.
Bug fixes
  • alSurface - correct behavior for shadows with attenuation
    aShadows from transmissive surfaces with attenuation are now properly affected by the attenuation color.
  • alLayer - opacity now blended
    Previously alLayer would not blend opacity as well as color from the connected shaders, leading to incorrect results in shadows from layered opaque and transmissive surfaces. This has now been fixed.
  • alHair - fixed UVs being overriden even when uparamcoord and vparamcoord not supplied
    alHair would override the UVs for the connected shading network regardless of whether uparamcoord and vparamcoord were supplied or not. In particular this caused the "Rendering Curves as Feathers" tutorial from the Solid Angle support site not to work correctly with alHair. alHair will now work correctly with Maya projection shaders as long as uparamcoord and vparamcoord are empty.
  • Maya - fixed broken UI in Maya 2016
    A caching bug in the UI implementation in alShaders would cause the UI not to reflect the shader being edited when both the Attribute Editor and Property Editor were opened together, or Maya's Copy Tab function was used. This is now fixed. Thanks to Niklas Harrysson for the fix.