7.4.1.0 - Arnold User Guide
26 March 2025
Arnold 7.4.1.0 is a feature release including performance improvements, initial GPU support for Toon shading, a new HTML-based Render Stats Report, and many bug fixes.
Enhancements
- Render stats report: An HTML-based, interactive viewer for the Arnold render statistics. You can quickly visualize and inspect detailed render stats such as frame render time, memory usage, render time by category or by node, and texture usage. If you're using kick, add the -report flag. Arnold plugins like MtoA and HtoA include Render Report options in the Diagnostic render settings. (ARNOLD-14140)
- GPU Toon shading: Arnold GPU now includes initial support for the Toon shader and the contour filter. The Toon shader is currently limited to rendering direct lighting only (no reflections, refractions, or indirect lighting). (ARNOLD-15656, ARNOLD-15988)
- Faster procedural instancing: Arnold is faster at rendering scenes with complex hierarchies and point instancers. The new
options.procedural_instancing_optimization
flag usually produces speedups between 1-2x, but for sufficiently complex scenes the speedup can be significantly larger. This new optimization defaults toexhaustive
mode, which gives the most speedup. Exhaustive mode may use more memory; you can switch toconservative
mode to use only the optimizations that do not consume additional memory. This setting is currently only supported for batch CPU rendering. (ARNOLD-14208)
Better scaling for parallel scene init/update: The parallel scene init and update are now faster than before, especially on many-core machines. Time to first pixel, interactivity in IPR, and scene processing time for batch renders has improved. (ARNOLD-14902, ARNOLD-15718, ARNOLD-15974, ARNOLD-16114)
Light transforms in point instancer: When an instancer contains lights, it now takes their local matrix into account if
instance_inherit_xform
is enabled. (ARNOLD-16028)
-
Improved Global Light Sampling: Rendering photometric (IES) lights and mesh lights using Global Light Sampling is now higher quality, using the same render settings and taking the same render times. (ARNOLD-13692, ARNOLD-15859)
Before-and-after comparison: improved renders of various IES profiles (with equal render times and render settings)
Before-and-after comparison: improved renders of a motion-blurred mesh light (with equal render times and render settings)
USD Enhancements
Hydra-based USD translation: When you render USD, Arnold now uses Hydra by default to handle the translation of USD to Arnold, which makes the render consistent with the Hydra render delegate usd#2248. You can roll back to the previous behavior with
options.usd_legacy_translation on
, or by setting the environment variablePROCEDURAL_USE_HYDRA=0
. (ARNOLD-15977).Reduced USD memory usage: USD geometry buffers are shared with Arnold, which removes one copy of the scene in interactive mode usd#2148. As an example, rendering a high resolution USD mesh with 30 million polygons now consumes 5.5 Gb instead of 7.5 Gb to render. During batch renders, the Hydra-based USD procedural now releases the USD stage memory once the translation is done usd#2228.
API Additions
AiProceduralExpand now updates procedurals: This API function now both initializes and updates the procedural node, along with expanding (loading) the children nodes. This ensures any custom
procedural_update
functions are called. (ARNOLD-15898)Viewport proxies for points, polymeshes, and volumes:
AiProceduralViewport()
now accepts non-procedural nodes such as points, polymesh, and volume, and returns viewport proxy representations. (ARNOLD-15941)
![]() |
![]() |
Volume points displayed and rendered in the viewport
Render stats report API:
AiReportSetFileName()
sets the file name so that the render creates a render stats report (an html file).AiReportGetFileName()
gets the render report file name. (ARNOLD-14140)Cryptomatte metadata: Common cryptomatte metadata is now included in the Arnold core, so plugins do not require an mtd file for cryptomatte. (ARNOLD-15661)
Incompatible changes
- Single full scene update in batch: Arnold now only does a single full scene update for render sessions in batch mode. This can cause issues for plugins allowing the modification of the scene in batch sessions, as dependencies between nodes are not tracked. Plugin developers should use interactive render sessions when modifying the scene. (ARNOLD-15974)
Bug Fixes
- ARNOLD-15834 - Sampling noise is now consistent across renders
- ARNOLD-15686 - Utility AOV shader crashes Arnold if skydome has a texture
- ARNOLD-15842 - OSL shader not rebuilt when a parameter is modified
- ARNOLD-15858 - Per-light sampling performance regression fix
- ARNOLD-15892 - Procedural bounds are not updated when its child objects undergo motion transforms
- ARNOLD-15905 - Lens effect doesn't update correctly when the render resolution changes
- ARNOLD-15914 - [GPU] Arnold should throw an error when the shader stack size cannot be determined
- ARNOLD-14467 - [GPU] GPU crash during JIT compilation
- ARNOLD-15939 - Nodes created in procedural_update ignore procedural matrix
- ARNOLD-15942 - Crash when modifying a parameter that triggers procedural reloading during scene update
- ARNOLD-15943 - Procedural bounding box is not recalculated after creating or removing nodes in procedural_update, leading to clipped objects in renders or poor performance.
- ARNOLD-15948 - Crash when destroying an object node from procedural_update
- ARNOLD-15983 - OpenEXR DWAA float textures read incorrectly
- ARNOLD-15993 - Raw drivers receiving incorrect number of samples
- ARNOLD-16000 - Dependencies should not be added when enable_dependency_graph is disabled
- ARNOLD-16005 - Hang in AiProceduralViewport with ginstance nodes
- ARNOLD-16041 - [MaterialX] connections to named nodegraph outputs do not work
- ARNOLD-16050 - [MaterialX] ND_mix_surfaceshader renders black when assigned from materialx operator
- ARNOLD-15985 - [MaterialX] Parameter with "defaultgeomprop" attribute set overrides connection
- ARNOLD-15986 - [MaterialX] Crash when node with the same name exists inside a nodegraph
- ARNOLD-16053 - Triplanar produces artifacts on GPU with some NVIDIA drivers
- ARNOLD-16060 - Lights under procedurals cannot be transformed during interactive renders
- ARNOLD-16073 - Prevent instancer from setting invalid custom names to child nodes
- ARNOLD-16081 - Subdivided meshes included in cached procedurals were not always correctly identified, which might cause differences in the subdivision results
- usd#2208 - Fix unnecessary allocations in the instancer and mesh
- usd#2218 - Fix Hydra warning with orthographic cameras
- usd#2219 - Fix race condition in Hydra with node names
- usd#2224 - Fix warning "HdArnoldDriverMain is already installed"
- usd#2225 - Fix crash in point instancers with missing prototypes
- usd#2232 - Fix incorrect husk render of left-handed indexed meshes with normals
- usd#2234 - Fix warning "Selected Hydra renderer doesn't support prim type 'RenderSettings'"
- usd#2239 - OpenVDB asset with explicit fieldName does not render in Hydra
- usd#1402 - Incorrect transform when exporting parented objects to USD
- usd#2227 - Hydra procedural breaks the Arnold log
- usd#2240 - Default volume shader should be assigned in the USD procedural
System Requirements
- Windows 10 or later, with the Visual Studio 2019 redistributable.
- Linux with at least glibc 2.17 and libstdc++ 4.8.5 (gcc 4.8.5). This is equivalent to RHEL/CentOS 7.
- macOS 10.13 or later.
- x86-64 CPUs need to support the SSE4.1 instruction set. Apple Mac models with M series chips are natively supported.
- GPU rendering and OptiX denoising work on Windows and Linux only, and require an NVIDIA GPU with the Maxwell architecture or later.
- On Linux, we recommend 560.35.03 or higher drivers.
- On Windows, we recommend 560.76 or higher drivers.
- Intel OIDN GPU support is limited to:
- MacOS
- Apple native CPUs (M1 and newer)
- Windows
- Intel Xe dedicated and integrated GPUs
- NVIDIA GPUs using Turing or newer architectures
- AMD GPUs with RDNA2 (Navi 21 only) and RDNA3 (Navi 3x) architectures
- MacOS