Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

Milestone 4.2.11


  • Russian Roulette: The standard and lambert shaders now use Russian Roulette termination to more efficiently render with high GI depth. For AA samples 5 or higher the increase in noise is typically very small. Indoor scenes with high GI depth will benefit the most, but also scenes with lots of glass and high refraction/reflection depth. In such scenes we have measured between 1.5x and 5x faster renders. (#4901)
  • Global shader override: It is now possible to override the shader for all objects in the scene by specifying an existing shader in the new global option shader_override. (#4909)
  • Search paths: The procedural and shader search paths can now use both : and ; characters as separators for multiple paths, on all platforms. Texture search paths already supported this. (#4897)
  • Custom attributes in deep EXR: Just like the regular EXR driver, the deep EXR driver now also supports custom metadata/attributes via the new parameter driver_deepexr.custom_attributes. (#4915)
  • Render options and stats in EXR metadata: Several global render options, such as sample settings and ray depths, are now stored in the image file as EXR metadata. We also store a few render stats, such as date, used memory, number of polygons and curve segments. These EXR attributes use a path-like metadata layout, e.g. "arnold/options/AA_samples", "arnold/stats/memory/peak", or "arnold/host/hw". We might add a few extra attributes in future releases, and perhaps rename some existing attributes based on customer feedback. (#4849, #4860)
  • Env var expansion in procedural nodes: The procedural.dso parameter now supports expansion of environment variables delimited by square brackets, similar to the env var expansion in searchpaths in the options node. (#4937)
  • Removed size limit on node and metadata names: Node names, node entry names, and metadata item names no longer have any size limitations. (#4932)
  • Report memory for smooth derivs: The memory usage summary for polymeshes now includes a separate line to account for subdiv_smooth_derivs storage. (#4925)
  • Upgraded OIIO to 1.5.20: We have upgraded the OpenImageIO library used for reading texture maps from 1.5.15 to 1.5.20. There have been many changes between these two versions, including many little bug fixes and optimizations. (#4739, #4735, #4855, #4864)

API additions

  • AtString version of AiNodeEntryGetName(): Added an alternate version of AiNodeEntryGetName() called AiNodeEntryGetNameAtString() that returns an AtString name instead of a char* name. (#4917)

Incompatible changes

  • Renamed sss and volume sampling options: The global options volume_indirect_samples and sss_bssrdf_samples have been renamed to GI_volume_samples and GI_sss_samples respectively, for consistency with the other existing sampling options (GI_diffuse_samples etc). The old names will still work, as we have added them as deprecated synonyms, but will result in warnings in the log files. We recommend that any client code (such as proprietary DCC plugins) is changed to use the new names. (#4940)
  • Default sss samples: The default value of the newly renamed GI_sss_samples option has been changed from 0 to 2. Although rare, this will change the look of old scenes that contain SSS objects but where the SSS samples setting was left at its default of 0. (#4940)

Bug fixes



#4886render crash on a scene with lots of ginstance
#3196Wrong scene creation time stats for interactive rendering
#4735Invalid alpha channel for image textures without alpha in indirect bounces
#4897Search path splitting inconsistent between parameters and platforms
#4908texture flush happens a frame too late in linux and OS X
#4910AiMicrofacetBTDFIntegrate rendering with wrong IOR
#4911Rare numerical precision artifacts causing noisy bumpmapping
#4914UDIM tile selection needs to handle bad barycentric coordinates
#4918Incorrect render with matte surfaces behind volumes
#4921Deep EXR: preserve float or RGB ID values when tolerance is zero
#4924Hostname missing in the logs on some Linux distributions
#4942Nonexisting shader path warnings for drive letters on Windows
#4943kick warns about gamma/dither when writing to EXR via the '-o' option
#4898rays/pixel stat not outputting correct value when there were 0 rays/pixel
#4899AtString version of AiNodeLookUpUserParameter crashes