Milestone 4.0.5


  • Multi-threaded ray accel build for deformation motion blur: Similar to the 4.0.3 release (#2653) that added support for building non-motion blurred objects in parallel, we now allow for multiple render threads to build a motion blurred object's ray accel in parallel. On a 12 core machine this lets us build the accel structure for a hair object 9.5x faster. (#2755)
  • Miscellaneous ray accel and subdivision optimizations: The ray accel structure for deformation motion blurred objects now uses 7% less memory. Ray accel structure builds, especially when using many threads, will now be a percent or two faster. Triangulation is now roughly 2x faster; as this is also used at the end of the Catmull-Clark subdivision process (which generates quads that need to be triangulated), subdivision will also be slightly faster, around 10-15% faster overall. (#2816, #2811, #2817)
  • Multi-threaded .ass loading: The .ass parsing code has been rewritten and made thread-safe, which allows multiple .ass-based procedurals to be processed in parallel, as it already happened with DSO and funcptr procedurals. If needed, parallel loading can be disabled withoptions.enable_threaded_procedurals. (#2113)
  • Oriented curves: The curves node now has an additional mode oriented that allows the specification of orientations via the orientations vector array. It behaves similar to the ribbon mode, except curves can face away from the camera or incoming ray according to the orientations; curves also get thinner when they face away. Uses include grass, wider ribbons, or even leaves. Orientations are specified per-point, the same number as there are control points. (#797, #2824)
  • Accurate memory reporting on Linux: The memory usage on Linux is now correctly reported. The older code was reporting virtual memory which is significantly larger than what is really being used. The new code reports both the memory being used on physical RAM (resident memory) as well as the memory in swap. This enhanced reporting has some overhead on older Linux distros, so scenes with thousands of objects and/or log messages might take a few hundred milliseconds longer. On at least Linux kernel 2.6.34 or RHEL6/CentOS6 and newer there is no overhead. (#2602)
  • Checkpointing renders: EXR and TIFF drivers now support render checkpointing (or "append mode"). By setting the corresponding output driver's .append attribute to true Arnold will preserve previously rendered tiles and only work on the missing ones, appending them to the output files. If no image is present the render will proceed as normal creating a new image. If image specifications do not match the render will be aborted. (#2417)
  • Deferred .ass parsing time in log stats: The .ass parsing time reported in the log statistics is now split into two categories: parsing when loading the main scene prior to rendering, and parsing of deferred-loading .ass procedurals during rendering. (#2795)
  • Enhanced backtrace dumps: Backtrace dumps for crashes in debug builds are now cleaner and show more helpful information, along with colored output and time of the crash. If available, it will also report the pixel location where the crash occurred. (#2716, #2717, #2831, #2832)
  • Added console colors to log messages in Windows: The log output sent to the console will now use colors to highlight warnings in yellow and errors in red. This feature was already available in Linux/OSX but was missing in Windows. (#2830)

API additions

Incompatible changes

Bug fixes



#2602Cleanup Linux memory reportingarnoldthiagomajor3.35 months
#2797Running out of memory with high ray deptharnoldthiagomajor3.36 weeks
#2798Crash writing bump2d to .ass with a value set to the "shader" parameterarnoldangelmajor3.36 weeks
#2800Bug in Python API functions returning a pointerarnoldangelmajor3.35 weeks
#2812OIIO failed assertion with accumulated error messagesarnoldramonmajor3.35 weeks
#2818memory leak when closing plugin file handle on linux/os xarnoldthiagomajor3.34 weeks
#2820NaNs in Ward-Duer BRDF with subdiv_smooth_derivs enabledarnoldalanmajor3.34 weeks
#2821rare crash in Ward-Duer BRDF when used with volume_scatteringarnoldalanmajor3.34 weeks
#2718Long multi-paths are cut out with "kick -l"arnoldoscarminor3.33 months
#2803"included" .ass files should be taken into account in ".ass parsing" timearnoldoscarminor3.35 weeks




#2844Wrong gamma correction on binary encoded arrays4.0.5.1arnoldangelmajor4.0.6
#2854UV-based displacement combined with deformation motion blur broken4.0.5.1arnoldmikemajor4.0.6




#2838popping artifacts in multi-threaded displacementframestore,




#2856Random slowness with curves intersections4.0.5.3arnoldmikemajor4.0.6
  • No labels