You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »




  • New USD procedural: Arnold now ships with a new usd procedural node, based on USD 19.05. It resides in an external dynamic library that is by default located in the "plugins" directory of the Arnold core package. Note that you can find the source code of this procedural and other USD components for Arnold at See for specific release notes. (#7806#9240)
  • kick USD files: You can now use kick to render USD files directly from the command line. Thanks to the Arnold extensions to USD, there is a 1:1 mapping between .ass and .usd representations. (#9214)
  • kick specific frame: Kick supports a new -f argument to directly set the options.frame parameter, and load the correct frame in USD files. (#9264)
  • String replace operator: The new string_replace operator matches and replaces parts of string parameters, optionally depending on the OS Arnold is running on. (#9021)
  • Cubic inverse camera radial distortion: A new cubic_inverse lens radial distortion compatible with the 3ds Max physical camera has been added, selectable through persp_camera.radial_distortion_type. The classic cubic distortion is still the default. (#9247)
  • Lens tilt controlspersp_camera.lens_tilt_angle has been added to control lens tilt angles with respect to the projection plane. The vertical and horizontal angles are specified in degrees. This is useful in architectural renderings to compensate perspective transformation for vertical lines. (#9061)
  • Lens shift controlspersp_camera.lens_shift has been added to shift the lens position. This is useful to recenter the subject after using tilt. The shift is given in normalized screen coordinates: +1 will move the frame center to the right or bottom edge. Note that lens shift will affect the render in a different way than screen_window, notably with distortions or vignetting, since one is a lens effect and the other just selects the part of the rendered image that will be output. (#9061)
  • OSL builtin structs : We now support OSL builtin structs such as vector2color2vector4color4matrix33 as input and output parameters for OSL shaders. Those structs are exposed as corresponding Arnold types on nodes. (#8862)
  • Faster interactive progressive rendering on Linux: Fixed a Linux-specific slowdown that was preventing scaling with many threads when processing buckets. We now observe up to 6x faster interactive progressive rendering on simple scenes. (#9296)
  • Faster procedural initialization: The initialization of scenes with a high number of procedurals is now better multithreaded. We measured up to a 2.1x improvement in initialization times using 8 cores. (#8931)
  • Reduced noise on smooth transmissive thin-walled surfaces: In the standard_surface shader, using thin-walled refraction with 0 roughness should now be noise free with a single sample, and still energy preserving. (#9135)
  • Profiling in the Alembic procedural: You can now get statistics from the Alembic initialization phase in the Arnold profiling output so you will be able to tell if any objects in Alembic archives take a particularly long time to generate. (#9105)
  • Autodesk analytics program available for Windows: We have extended support for the Autodesk analytics program to Windows, so that all three platforms are now supported. It is disabled by default unless another Autodesk product has opted in. (#8784)
  • Controllable auto-instancing on ASS procedurals: You can now disable the default automatic instantiation of procedurals pointing at the same ASS file with the auto_instancing parameter on each procedural or by the procedural_auto_instancing option. This workaround is sometimes useful when overriding procedural parameters with operators. (#9261)
  • Arnold runtime license: You can now legally redistribute the Arnold runtime as part of your application, check for terms of use in the SDK's EULA. (#9370)
  • Updated MaterialX library: The MaterialX node definition for subsurface_radius on standard_surface has been modified to match Arnold. (#9237)
  • Updated OpenSSL: Updated OpenSSL to version 7.68.0/1.1.1d. (#9356)
  • Updated OpenEXR: Updated OpenEXR to version 2.4. (#7396)

GPU enhancements

  • Support for min_pixel_width: Support for this useful feature, which makes it a lot easier to anti-alias fine curves such as hair, has been added to the GPU renderer. (#9120)
  • OptiX denoiser for all AOVs: The OptiX denoiser can now be used for all AOVs rather than just RGBA. (#9025)
  • Closest filter: The GPU renderer now supports the closest filter. (#9025)
  • Bucket scanning order: Added support for the bucket scanning order when drawing buckets. (#9025)

API additions

  • New scene load/write API: New API methods AiSceneLoad and AiSceneWrite allow selection of different scene formats based on the filename extension. Another function AiSceneFormatSupported() allows checking for support of a given file format based on its associated extension. Note a given scene format might support multiple extensions. (#9214)

Bug fixes


  • #9228 AiProceduralViewport does not resolve ginstances
  • #9272 Connected pointer parameters are not stored in ass files
  • #9070 Excess memory usage of non-deep/raw filters in progressive render mode
  • #9121 [GPU] Artifact in shadows cast by volumes
  • #8228 [GPU] Cache population hangs when Optix creates too many threads
  • #9320 [GPU] Crash on GPU rendering error
  • #9296 [GPU] Filtering is slow on linux
  • #9344 [GPU] Increasing the scene size triggers a recompilation of all Optix programs
  • #9188 [GPU] IPR does not update after changing light filters
  • #9191 [GPU] Missing channels are not correctly initialized on non-RGBA textures
  • #9069 [GPU] Volume displacement difference when using a ramp to drive displacement
  • #9274 [Licensing] Sign-in window flies offscreen on high-dpi laptop the first time after a reboot
  • #9205 [MaterialX] Add support for unconnected output values
  • #9294 Prevent Arnold from loading the same plugin twice
  • #8931 Slow procedural initialization
  • #9374 Textures incorrectly destroyed due to insufficient awareness of modified filenames



  • No labels