Milestone 4.2.10


  • Reduced OpenVDB memory usage: In the OpenVDB DSO provided with our DCC plugins, voxel storage is now optimized to reduce memory usage by about 45%. Depending on the scene this may also reduce render time up to 10%. Additionally, slow .vdb file loading from network drives on Windows has been fixed, and we have improved the accounting of OpenVDB memory usage in the stats. (#4858, #4869, #4870, #4871)
  • Autobump on polymeshes: The autobump feature, enabled by disp_autobump, is now supported on polymeshes with no subdivision. Previously it required subdivision to work. (#4885)
  • Faster subdivision: Faster exact (limit) normals and tangents, in certain cases, subdivision_smooth_derivs speedups up to 50%, smoothing speedups up to 25%. (#4867, #4868, #4878)
  • Faster AiVCellNoise3/4: The vector cell noise API functions AiVCellNoise3() and AiVCellNoise4(), which are used in e.g. MayaNoise type "billow", are now about 1.6x faster. (#4889)
  • EXR long names: Attribute and channel names up to 255 chars are now supported in EXR files. Arnold will warn if long names are used since the output files are not compatible with reader applications that use EXR libraries older than 1.7.0. (#4862)
  • Log improvements: The system/unaccounted line under the render time log category has been updated to actually report the unaccounted time, which we define as the total render time reported minus all the other render related time stats. Also, the rays/pixel stats printed at every 5% progress message is now more accurate, computed since the previous 5% message, and is no longer a "running average" of the rays/pixel for the entire image. (#4843, #4894)

API additions

Incompatible changes

  • AiNodeReset and AiNodeResetParameter clear user data: AiNodeReset will not only reset all built-in parameters to their default values and remove any node links, but will also remove any user data for that node. Additionally, AiNodeResetParameter will remove a single user data element if given its name (#4857)
  • Output driver append mode: To prevent wasted work, Arnold will now error out when some drivers are in append mode and others are not, or do not support it. Also, when in append mode, display viewers (such as the one in kick, MtoA, etc) will not force a full render and instead will just display the new buckets as they are rendered. (#4841)
  • Non-planar 'Z' AOV: The Z-depth AOV for custom cameras or non-planar perspective cameras now corresponds to distance along the camera ray. This had been broken since, and before that had a different value for custom cameras. For those cameras, 'Z' used to be distance from 'P' to camera center, which could sometimes result in decreasing Z values along the ray. (#4722)
  • Scaled camera transforms: Only rotation and translation are allowed on camera transforms. Scaling or skew will be ignored, and a warning printed out. This was previously not done consistently, causing unexpected results with DOF. (#2260)
  • Faster AiVCellNoise3/4: The "seed" for the random numbers in these functions has effectively changed, so while the type of noise is the same, the specific output given is now different. (#4889)

Bug fixes


#2260Camera scaling should always be ignored
#4722Incorrect Z values for custom cameras with offset ray origin
#4841Error out on append driver mismatch
#4846detect and report errors while reading .ass* files
#4854Linear basis curves crash with motion blur and varying radius
#4865Adaptive Subdivs: uninitialized memory while computing exact derivatives
#4866Blocky artifacts with matte objects
#4868Ignore subdivision_smooth_derivs if there are no UV coordinates
#4869OpenVDB file loading slow on Windows network drives
#4871OpenVDB memory usage reported as unaccounted in stats
#4876Shadow precision issue with object and mesh light far away from origin
#4888Bad smoothed normals for linear subdivs or catclark subdiv creases with multiple position keys
#4890Let bump2d and bump3d work with very small bump_height
#4887Failed AtArray allocation not returning NULL
  • No labels