v2023 Autodesk Arnold Renderer
Global illumination rendering software
Get the stunning, reliable visuals you need with Arnold software. This advanced renderer is powered by Monte Carlo ray tracing to bring your projects to life in vivid detail!
It’s built to stand up to the demands of VFX and animation production. Arnold lets you focus on being creative, rather than spending hours going through settings.
- Navigate through the software with simple and intuitive controls.
- Produce professional-grade renders with full artistic control.
- Get immediate results with interactive rendering.
Please note: U.S. Sales Only.
Why use Arnold?
Manage complex projects
Arnold thrives on heavy data sets and handles complex work with ease.
Render high-quality 3D images
Deliver stunning photoreal or stylized results in fewer clicks.
Get a robust set of tools
Save time with powerful shaders, operators, textures, and utilities.
What you can do with Arnold
Manage complex projects with production-ready tools
Switch seamlessly between CPU and GPU rendering to suit your production needs for characters, scenery, and lighting, and get optimized performance when rendering elements such as hair, fur, and skin.
Integrate and customize your pipeline
Easily integrate Arnold with all the top 3D digital content creation tools, get the scalability and customization of open and extensible architecture, and create custom shaders.
Autodesk Arnold Key Features
From furry creatures to wondrous landscapes, the robust Arnold toolset helps artists render professional-grade 3D characters and complex scenes with ease.
Switch seamlessly between CPU and GPU rendering.
High-performance ray-traced subsurface scattering eliminates the need to tune point clouds.
Hair and fur
Memory-efficient ray-traced curve primitives help you create complex fur and hair renders.
3D motion blur interacts with shadows, volumes, indirect lighting, reflection, or refraction.
Render effects such as smoke, clouds, fog, pyroclastic flow, and fire with volumetric rendering.
Efficiently ray trace instances of many scenes objects with transformation and material override.
Subdivision and displacement
Create smooth, curved surfaces with support for the Catmull-Clark subdivision.
Open Shading Language (OSL) support
Use Open Shading Language (OSL), an advanced shading language for Global Illumination renderers.
Light Path Expressions
Get power and flexibility to create Arbitrary Output Variables with LPEs to help meet the needs of production.
Use another means of tuning images to reduce render times without jeopardizing final image quality.
In combination with the Contour Filter, an advanced toon shader provides a non-photorealistic solution.
Powerful denoising solutions offer you the flexibility to use much lower-quality sampling settings.
Features of Arnold 2023
Flexible and extensible API
Integrate Arnold into external applications and create custom shaders, cameras, light filters, and output drivers.
Universal Scene Description (USD) support
Maximize the power of USD with Arnold in production scenarios.
Use Bloom, Light Mixer, Noice, and OptiX denoiser imagers to control lighting effects and automatically denoise after each render.
Stand-alone command-line renderer
Arnold has a native scene description format stored in human-readable text files. Easily edit, read, and write these files via the C/Python API.
Standard Surface shader
Produce a wide range of materials and looks with this energy-saving, physically based uber shader.
Standard Hair shader
Render hair and fur with this physically based shader, based on the d’Eon and Zinke models for specular and diffuse shading.
Render Alembic files directly without any translation with a native procedural.
Profiling API and structured statistics
Identify performance issues and optimize rendering processes more easily with an extensive set of tools.
Material assignments and overrides
With operators, override any part of a scene at render time and enable support for open standard frameworks such as MaterialX.
Create ID mattes automatically with support for motion blur, transparency, and depth of field.
Integrated OpenColorIO v2
Take advantage of OpenColorIO v2 for state-of-the-art color management.
Hair and fur
An efficient raytraced curve primitive makes Arnold the perfect choice for rendering fur and hair using very little memory. Its hair shader has double offset speculators, and transmission and is specifically designed to reduce the flickering of thin hairs.
Accurate 3D motion blur correctly interacts with shadows, volumes, indirect lighting, reflection, or refraction. Deformation motion blur is extremely efficient and works for polygons, hairs, and particles. To clarify, the rotational motion describes precise circular arcs.
Our raytracing-based sub-surface scattering approach makes tuning point clouds a thing of the past. It’s easy to use, requires no additional memory, supports motion-blurred lighting, and interactive lighting, and its performance scales optimally as more CPU threads are used.
The volumetric rendering system is based on proprietary importance sampling algorithms and can render effects such as smoke, clouds, fog, pyroclastic flow, or fire. Volumes interact with direct and indirect lighting from arbitrary area light sources. Not only that, it supports OpenVDB and MayaFluids.
Flexibility and extensibility
Thanks to an easy-to-use C++ API with Python bindings, TDs and programmers can integrate Arnold in external applications, and create custom shaders, cameras, light filters, and output drivers. In fact, see Arnold integrated into many apps, both commercial and proprietary.
Arnold is carefully multi-threaded and makes optimal use of all available CPU threads. Even for traditionally single-threaded operations such as loading of procedural geometry, displacement, or ray accel construction. Hyper-threading provides a solid 20% speedup.
Arnold can efficiently raytrace instances of any scene object with transformation and material overrides. It is easy to create thousands or even millions of instances resulting in trillions of renderable primitives, which is, of course, great for vegetation, large environments, and FX.
Deferred geometry loading
Geometry can be created on-demand through “procedural” nodes (or stand-ins) rather than upfront. This allows the modular assembly of scenes. Procedural nodes can point to ASS, OBJ, PLY, and DLL/DSO files, opening the door to programmatic scene creation and compositing.
Subdivision and displacement
Arnold supports Catmull-Clark subdivision surfaces. Then, subdivided vertices get vector-displaced through arbitrary shader networks. Automatically capture high frequencies as a bump map, reducing the need for excessive subdivision.
Arbitrary Output Variables (AOVs)
Arnold can render any number of AOVs or passes for compositing purposes, including normal, Z-depth, position, and ID masks. It also supports deep image data. Shaders can create their own custom outputs (such as direct and indirect diffuse, specular, SSS, etc).
Standalone command-line renderer
Arnold has a native scene description format stored in human-readable text files (Arnold Scene Source, or .ass). Easily edit these files, read, and write with the C/Python API. In fact, lazily load at render time, or feed to the command-line renderer, kick.
Arnold can be used in Maya, 3ds Max, Houdini, Cinema 4D, Katana, and Softimage.
All of our plug-ins are free to use when you buy Arnold licenses. This means you can easily switch 3D software packages without having to spend money on additional Arnold licenses.
Arnold for Maya
Provides a beautiful interface to our photorealistic renderer within Autodesk’s Maya.
Arnold for Maya (or MtoA) provides a bridge to the Arnold renderer from within Maya’s standard interface. MtoA is now shipping with the Arnold 5.0 core.
- Seamless integration with Maya shapes, cameras, lights, and shaders.
- Image-Based Lighting support, including a state-of-the-art physical sky.
- Interactive rendering (IPR) allows parameter changes to be rapidly previewed without interrupting your work.
- Support for volume rendering with Maya Fluids.
- Support for Maya Hair and nHair.
- Particles and nParticles support, including particle instancer.
- Defer the creation of geometry at render time with the Stand-in placeholder nodes.
- Productivity boost: override sets, holdout mattes, shadow catcher, passes, UDIM style textures, and arbitrary primvar data.
- Extensible through plug-ins (Golaem, FumeFX for Maya, Yeti, Shave & Haircut).
- XGen integration.
- Texturable geometric lights.
- Deep EXR.
- Rendering of curves.
Arnold for Cinema 4D
Arnold for Cinema 4D (or C4DtoA) provides a bridge to the Arnold renderer from within the standard Cinema 4D interface. C4DtoA is now shipping with the latest Arnold 5.0 core.
- Seamless integration with C4D: objects (instances, cloners, deformers, generators), MoGraph geometry, hair and splines.
- Support for both native particles and Thinking Particles.
- The fastest interactive rendering (IPR) of all Arnold plugins, allows parameter changes to be rapidly previewed without interrupting your work.
- Arnold Shading Network Editor, a node-based material editor.
- A comprehensive list of shaders and utilities, including vertex maps and per-face materials.
- Volume rendering with OpenVDB.
- Deferred, render time generation of geometry with the Arnold procedural node.
- Native linear workflow.
- Team Render, including single-frame distributed rendering.
- Support for third-party plugins like X-Particles and Turbulence FD.
Arnold for Houdini
Arnold for Houdini (or HtoA) provides a tight bridge to the Arnold renderer from within the standard Houdini interface. It enables smooth lighting workflows between Houdini and other DCC applications since setups can be exported and shared.
- All Arnold cameras (perspective, orthographic, spherical, fisheye) with a depth of field and advanced shutter controls.
- All Arnold lights (point, distant, spot, quad, disk, cylinder, skydome, mesh) with light filters and accurate viewport representation.
- Custom Arnold shading network context with a comprehensive list of 106 shaders and utilities.
- Atmospheric and background effects.
- Volume rendering with support for OpenVDB and particles.
- Polymeshes, curves, points with support for displacement and bump mapping, and subdivision.
- Procedurals, with sample Alembic and Mandelbulb implementations.
- Accurate motion blur (transform, deform, velocity, acceleration), overridable per object.
- Geometry attributes translation as user data.
- Optional Arnold properties for objects and cameras.
- Render to AOVs, in single or separate files.
- Support all Houdini rendering contexts (render region, mplay, render viewer, render COP, batch), with support for AOVs and clickable buckets.
- Interactive rendering (IPR) allows parameter changes to be rapidly previewed without interrupting your work.
- Multi-camera renders.
- DeepEXR support.
Arnold for Katana
Arnold for Katana (or KtoA) provides a bridge to the Arnold renderer from within the standard Katana interface.
- Natural integration with Katana nodes, scenegraph, and scripting.
- Multi-threaded scene translation, made possible by Geolib3 in Katana 2+.
- Bundled Arnold, shaders, and plugins for a smooth out-of-the-box experience.
- Improved interactivity for live rendering (IPR) allows look changes to be rapidly previewed.
- Ultra-fast OpenVDB volume rendering.
- Shader networks.
- Works with third-party shaders and renderer procedurals (for hair, etc).
- Render outputs and AOVs, including Deep EXR.
- Supports the curves location type in Katana for hair rendering.
- Many light types and light filters are supported, as well as interactive modification of lights.
- Object parameters and global options better match what is available in Arnold.
- Improved documentation within Katana (args files).
Arnold for 3ds Max
Provides a beautiful interface to our photorealistic renderer within Autodesk’s 3ds Max. Launched at SIGGRAPH 2016 and now with Arnold 5.0, Arnold for 3ds Max (or MAXtoA) is bundled standard with 3ds Max 2018 and later, providing a bridge to the Arnold renderer from within the standard 3ds Max interface.
- Integration with 3ds Max shapes, cameras, lights, and shaders.
- Image-Based Lighting support, including a state-of-the-art physical sky.
- 3ds Max ActiveShade interactive rendering allows parameter changes to be rapidly previewed without interrupting your work.
- Support for AOVs & Deep EXR files.
- Defer the creation of geometry at render time with the Procedural placeholder nodes.
- Texturable Mesh lights.
- 3rd Party Arnold shader support.
Arnold for Softimage
Arnold for Softimage (or SItoA) provides a bridge to the Arnold renderer from within the standard Softimage interface. SItoA is now available to the community under an Apache2.0 open source license at: https://github.com/Autodesk/sitoa
This repository contains the official SItoA plugin source code. Solid Angle developed the SItoA plugin commercially from 2009 to 2017.
After the Softimage end-of-life announcement in April 2014, Solid Angle committed to continuing the development and maintenance of SItoA for at least a year, and then extended this period until July 2017, porting SItoA to the new Arnold 5 API along the way.
- Seamless integration with Softimage shapes, lights (selective lights) passes, and render region.
- Full ICE support (particles, strand, and geometry) with advanced instancing functionality.
- Native Softimage render tree and shader support.
- Stand-ins with real-time view representation.
- Productivity boost: passes, overrides, UDIM style textures.
- Full Alembic integration via Exocortex Crate.
- Texturable geometric lights.
- Deep EXR.
- 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.
- CPUs need to support the SSE4.1 instruction set. Apple Mac models with M series chips are supported under Rosetta 2 mode.
- GPU rendering works on Windows and Linux only and requires an NVIDIA GPU of the Ampere, Turing, Volta, Pascal, or Maxwell architecture.
- Optix™ denoiser requires an NVidia GPU with CUDA™ Compute Capability 5.0 and above.
Arnold for Maya
The current version of Arnold for Maya is MtoA 5.2.1. Read the release notes.
- Maya 2020, 2022, 2023
Arnold for 3ds Max
The current version of Arnold for 3ds Max is MaxtoA 184.108.40.206. Read the release notes.
No additional license is required to render interactively within 3DS Max.
- Max 2021, 2022, 2023
Arnold for Houdini
The current version of Arnold for Houdini is HtoA 220.127.116.11. Read the release notes.
- Houdini 18.5.759-Houdini 19.5.368.py37
Arnold for Cinema 4D
The current version of Arnold for Cinema 4D is C4DtoA 4.4.0. Read the release notes.
Rosetta2 mode for M1 Macs is no longer supported since Cinema 4D S26. This means Arnold can not run on Apple Mac models with M series chips in Cinema 4D S26 and Cinema 4D 2023 at the moment. M1 support is planned for a future release.
Cinema 4D Version
- S24.111 and above
- R25.010 and above
- S26.013 and above
- 2023.0.0 and above
Arnold for Katana
The current version of Arnold for Katana is KtoA 18.104.22.168. Read the release notes.
- Katana 3.6
- Katana 4.0
- Katana 4.5
- Katana 5.0
Arnold for Softimage
The current version of Arnold for Softimage is SItoA 4.1.0. Read the release notes.
- Softimage 2013-2015
Updated release notes
- Adjust how often imagers are run during IPR: A new options setting has been added called
options.imager_overhead_target_percentwhich can be used to control how often imagers should run during a render. An
imager_overhead_target_percentsetting of 0 will cause the imagers to only run at the end of the render. The default value of 1 will periodically run the imager during the render so that the overhead from running the imager is no more than approximately 1%. ARNOLD-11750
- Noice imager runs only at end of render: The noice imager, which is generally too slow for interactive IPR, will no longer run during a render and instead is only run at the end of the render pass. ARNOLD-11761
- Overrides for specific instances in the instancer: Instead of specifying a value for all instances, overrides for specific instances can be defined by declaring a user data array of
instanceidxs_prefix on the instancer node. ARNOLD-12142
- Reference time for OpenVDB volumes: The global
options.reference_timeattribute is now also used as the time the grid data exists, so velocity motion blur is relative to this reference time. Usually this is zero, which for frame-relative time values means “on the frame”, which is typical of OpenVDB simulation data. ARNOLD-12143
- Author defaultPrim in the USD writer : When an Arnold scene is saved as USD, a defaultPrim is now authored, which is needed for nested instances usd#1064
- Don’t force export of ArnoldOptions: When exporting USD files, we now store the list of authored frames as custom metadatas in the usd file, and no longer need to force the export of the ArnoldOptions primitive usd#963
- Write shading trees under their material’s scope : When authoring shading trees, the shaders are now written under their material’s hierarchy. usd#1067
- Support velocity/acceleration in Hydra : Meshes and curves with varying topologies and velocity or acceleration primvars are now supported in the render delegate usd#1039
- Reduce default subdivision level in Hydra : The different subdivision quality settings in Solaris are now interpreted as (0, 1, 2, 3) subdiv_iterations in Arnold, instead of (0, 2, 4, 8) which was too high for Arnold subdivision usd#1056
- Control amount of arnold-usd threads when rendering a usd file : A new environment variable ARNOLD_USD_READER_THREADS allows to control how many arnold-usd threads will be used to translate the usd data to arnold when running kick on a usd file. Default value is 0 and means that all threads will be used usd#1055
- Support light temperature in Hydra : Usd native lights have a light temperature attribute that is now supported in the render delegate usd#1051
- Default to smooth meshes in Hydra : In the render delegate, meshes are now smoothed by default, as in the usd procedural usd#24
- Specify which RenderSettings to use when calling AiSceneLoad : A custom parameter render_settings allows to control which RenderSettings primitive to export to Arnold options node usd#1017
- AiRenderSessionGetOptions(): AiRenderSessionGetOptions() will return the render options node used by a given render session. This read-only render options node holds a separate set of options, initialized from the universe options but partially modified for render specific requirements. The differences with the universe copy of the options are mostly related to invalid values that are sanitized for rendering and temporary changes to sample values made during interactive render. ARNOLD-12012
- Arnold 5 porting guide removed. The Arnold_5_Porting_Guide.pdf has been removed. Arnold-11696
Arnold 7.0.2 Bug Fixes
- ARNOLD-11945 – Crash when mixing transmission on overlapping meshes
- ARNOLD-11728 – Performance regression on some scenes introduced in Arnold 22.214.171.124
- ARNOLD-11282 – Curve face index assignment to 0xFFFFFFFF causing crashes
- ARNOLD-11875 – [GPU] Disabling lights interactively only works once
- ARNOLD-11844 – [GPU] Error when interactively loading scenes with an atmosphere
- ARNOLD-11782 – [GPU] Crash with empty grids in OpenVDB files
- usd#933 Set Product Metadata
- usd#953 AiMsgSet functions need to be called with a render session
- usd#941 Avoid linking with hdx for older USD versions
- usd#951 AiResolvePath is not called with a procedural file type
- usd#962 Support building arnold-usd against USD 21.11
Arnold 7.0.1 Bug Fixes
- ARNOLD-11141 – Incorrect luminance/blackbody/wavelength when using multiple render sessions with different linear color spaces
- ARNOLD-11587 – Artifacts on switching texture_use_existing_tx in IPR for OSL shaders
- ARNOLD-11588 – Switching texture_use_existing_tx does not update in IPR
- ARNOLD-11636 – Out of range error when reading from Pref user data
- ARNOLD-11676 – Resetting a face-varying user data does not remove the indices parameter
- ARNOLD-11697 – Unable to raise GI sample settings from 0 during IPR
- ARNOLD-11716 – Hang when rendering in free mode fails while another render is running
- ARNOLD-11746 – Crash in OIDN denoiser
- ARNOLD-11747 – Crash in node destroy after the render is finished
- ARNOLD-11756 – Crash with standard_volume assigned to an implicit node
- ARNOLD-11781 – Artifacts when rendering with CPU, adaptive, progressive and box filter
- ARNOLD-11784 – Crash when creating and deleting AtUniverses in parallel
- ARNOLD-11787 – Missing documentation about parameter in AiMsg* API
- ARNOLD-11806 – Calling AiRenderBegin while rendering can cause a crash
- ARNOLD-11819 – Crash in AiMsgXxx when creating and deleting multiple render sessions
- ARNOLD-11825 – Instancer does not propagate user data of type array
- ARNOLD-11831 – Missing Python bindings for AiParamValueGetPtr/SetPtr
- ARNOLD-11840 – Confusing deprecation warning with visible lights
- ARNOLD-11684 – [GPU] Hang with autobump when the displacement shader reads user data
- ARNOLD-11702 – [GPU] Crash when flushing texture cache with OSL textures
- ARNOLD-11711 – [GPU] Crash in interactive rendering with some light sampling settings
- ARNOLD-11717 – [GPU] Crashes when rendering on GPU with Optix denoiser in batch render sessions with a display driver
- ARNOLD-11804 – [GPU] Infinite values in P AOV on background
- ARNOLD-11815 – [GPU] Crash in ramp_rgb with curves_only
- ARNOLD-11612 – [OCIO] Warnings if the OCIO color manager uses a non default config file
- ARNOLD-11640 – [MaterialX] Silent error when writing materials using the node name as the material name
- ARNOLD-11654 – [MaterialX] Importing shaders with multiple outputs fails
- usd#902 Render session is not passed to AiDeviceAutoSelect
- usd#900 Avoid calling AiRenderBegin if render is already running
- usd#905 Integer primvar Render Vars fail to render via husk
- usd#906 Version is not set as default when returning SDR definitions
- usd#928 Transform from the Point Intancer is not applied to instances
- usd#918 Rendervars do not show up in Houdini 19
- usd#915 Volume shader is not applied to the ArnoldVolume primitive in Hydra
- usd#458 Point instancer should prune the primitives under its hierarchy
- usd#904 No way to have Point Instancer prototypes hidden
- usd#924 Writer now saves the default color manager node
- usd#921 Remap curves primvars to avoid “wrong data count” errors
- usd#854 Primvars is ignored when rendering basisCurves as b-spline
What’s new in Arnold 7.0?
- Open Image Denoise imager: Intel®’s Open Image Denoise (OIDN) is a fast, AI-accelerated denoiser that runs on CPU that has been integrated into Arnold as the imager_denoiser_oidn imager as an additional denoising option. (ARNOLD-8677).
- Higher quality AI denoising: The OptiX and OIDN denoisers now use the newly introduced denoise_albedo_noisy AOV as the albedo feature AOV provided to the denoiser. This adds specular reflections and refractions to the albedo, which can improve denoiser quality. Below are comparisons between undenoised and Optix denoised with the old and new albedo AOV (ARNOLD-10812).
- LUT based tone mapping: imager_tonemap now supports a lut mode to apply LUT files in all the formats supported by OCIOv2 (cube, look, 3dl, clf among others). imager_tonemap.lut_filename specifies the file to load. Note that some LUTs assume a non-linear color space. To help with this, it is possible to specify a working color space in imager_tonemap.lut_working_color_space to convert to the specified space, apply the lut, and convert to linear or rendering color space again (ARNOLD-11084).
- Automatic selection of box filtering with OIDN and OptiX denoisers: The OptiX and OIDN denoisers do not perform well with CPU rendering filters that span across multiple pixels. Arnold on CPU will now automatically force a box filter on outputs with filters with known issues when either of the denoisers are used (ARNOLD-10812).
- Imager_color_curves: A new imager to control brightness and color curves has been added. Separate curves can be authored for each R, G, or B component, along with the main curve to control the overall luminance response. Curve interpolation and working color space can also be set as needed (ARNOLD-11161).
- imager_tonemap.mix: imager_tonemap now has an additional mix parameter. 0 preserves the input untouched and 1 applies the full node effect (ARNOLD-11172).
- Ignore imagers option: The global option ignore_imagers has been added to allow users to disable imager post-processing in a scene. This can be useful for debugging and can also be enabled via kick with the -ii flag. (ARNOLD-10720).
- Improved support for imagers shared by multiple drivers: All imagers, including the denoisers, can now be shared by drivers with different AOV inputs (ARNOLD-11087).
- Improved imagers refresh rate in IPR: Fullframe imagers will now be updated during rendering so that the imager chain result can be previewed before the entire image has been rendered. This replaces the previous behavior where in some cases we would have to delay the result until after the full frame had finished (ARNOLD-11203).
- Improved filter performance in progressive rendering: The performance of several filters, including the Triangle, Sinc, Blackman-Harris, Catmull-Rom, and Mitnet filters have been improved when rendering in progressive mode. In some cases, we have seen a 48% improvement in performance and a 20x improvement in memory usage (ARNOLD-10651).
- Added support for multiple parallel render sessions on CPU: Any Arnold universe can now be rendered using its own render session (only one render session per universe). Those render sessions can be executed in any order, even in parallel.
- Multiple outputs for shaders: Arnold now supports having multiple outputs for shader nodes. Shader outputs can be linked to inputs of other shader nodes in a .ass file or programmatically via the AiNodeLinkOutput() function by optionally specifying which output is desired when linking. When no output is specified, the node’s default output parameter will be chosen, preserving Arnold’s existing behavior.
- Visible lights now transparent: The visible lights are now transparent, which matches the behavior of indirectly seen lights. This also has the benefit of allowing black parts of textured lights to be masked away. This is a look-breaking change to fix previously incorrect visible light behavior (ARNOLD-9070).
- kick ascii render mode: kick -ascii allows rendering directly into the terminal. This requires a 24-bit terminal with UTF-8 support. The windows terminal, most Linux terminals, and iTerm support this; Apple’s Terminal does not. This will change the resolution of the render to fit within the console, so any images written to disk will likely be very small. Because it is so low res, telling kick to use a small bucket size is recommended, for instance by passing -bs 16 to kick. This can be useful for checking if a render on a remote machine is working (ARNOLD-11146).
- Render in ACEScg by default: Arnold will now use an OCIO color manager by default. This color manager will use the default OCIO configuration file. Arnold will render in the ACEScg color space by default.
- Standard OCIO configuration: Arnold now ships with a standard OCIO configuration exposing common color spaces used for rendering, such as ACEScg and scene-linear Rec.709-sRGB as well as the ACES 1.0 SDR-video ACES output transform for standard dynamic range video.This configuration is compatible with the default Maya 2022 OCIO configuration. (ARNOLD-11333)
- Multi-part EXR: The EXR driver can now render AOVs as separate images (parts) in a multi-part EXR file (merged AOVs, in contrast, renders AOVs as layers in a single-part EXR).
- Write AOVs to multiple formats: It is now possible to output a single AOV in multiple different formats, for example, the following output string will now output the correct result (ARNOLD-11079).
- OSL UDIMs: OSL now uses the same code as Arnold’s image node for resolving texture tags, such as UDIMs. This can make OSL texture lookups faster and increase the types of texture tags that can be used from OSL. (ARNOLD-9276).
- SSS setnames with randomwalk: The sss_setname feature that allows subsurface effects to spread between distinct objects is now supported in the randomwalk mode on CPU (ARNOLD-8140).
- Use Existing TX: When options.texture_use_existing_tx is set to true, which is the default, Arnold will attempt to use the .tx version of a texture when available. The .tx file must be located in the same directory as the requested source texture and have the same name with the exception of the file extension. For instance, if “foo/bar/floor.png” is requested and “foo/bar/floor.tx” exists then “floor.tx” will be used. Arnold will ignore any requested colorspace conversions when the .tx file is used since we assume the .tx will have the colorspace transform baked in (ARNOLD-4107).
- Support for MaterialX v1.38: Arnold extends its MaterialX support to v1.38. As a part of this upgrade, looks and materials exported from Arnold will now be expressed as a combination of Nodes and Inputs departing from the previous standard of ShaderRefs and Params. Arnold will still be able to render MaterialX documents exported with earlier versions of Arnold however this may cause a look-breaking change.
- Cryptomatte 1.1.2: Cryptomatte has been updated to version 1.1.2 (ARNOLD-11270).
- Reduced VRAM use for polymeshes: The amount of VRAM used by polymeshes is significantly lower in this version. Scenes with heavy subdivision will use around 33% less GPU memory for geometry (ARNOLD-8524).
- Reduced VRAM use for GPU volumes: In 6.2.1 we started to use NVIDIA’s NanoVDB system for rendering OpenVDB volumes on GPU, which greatly reduced the GPU memory required for OpenVDB volumes. In 7.0, compression of NanoVDB volumes has been further improved, so that we see roughly a further 50-60% reduction in GPU memory in typical volumetric scenes. GPU volumes now consume less VRAM than the equivalent CPU volumes consume RAM (note, the red line shows the RAM usage in a separate CPU render). (ARNOLD-11229)
- Matte support: Support for matte has been added to the GPU integrator. This means the matte closure, matte shader, and matte shape flag are all now supported (ARNOLD-7924).
- USD 21.08: The procedural included in the core SDK is now built using USD 21.08.
- UsdImaging adapters: Arnold-USD now includes a set of UsdImaging adapters for Arnold specific schemas, that allows direct use of procedurals and Arnold shapes in Hydra. (usd#185 usd#741)
- Deep rendering: The render delegate now supports rendering of deep AOVs via DelegateRenderProducts. (usd#650)
- Multiple frames in a single file: The USD writer is now able to append multiple frames to a single USD file. (usd#777)
- Hydra scene delegate: Arnold-USD now includes an experimental scene delegate for Hydra. (usd#764)
- Progressive disabled when using Husk: Progressive rendering is now disabled when rendering via husk. (usd#755)
- Procedural Path Mapping: The procedural now supports Arnold Path Mapping when loading USD files. (usd#818)
- Custom PrimID Hydra Buffer: The render delegate now uses a dedicated primId AOV to support selections in Hydra viewports. This improves support for render-time procedurals and leaves the built-in id parameter unchanged on shapes. (usd#812)
- DoubleSided in the Render Delegate: The render delegate now supports the built-in doubleSided parameter on USD primitives and correctly supports overrides via Arnold-specific primvars. (usd#805)
- Motion Blur using Velocity and Acceleration: The render delegate now extrapolates point positions if velocity or acceleration primvars exist and there are no multiple samples for the position. (usd#673)
- Light Linking: The procedural now supports light linking. (usd#787)
- Fast camera updates: The render delegate now handles camera-only updates more efficiently, improving the first time to pixel. (usd#869)
- Standard Surface Fallback: The render delegate now uses a standard surface as a fallback, when no materials are assigned to a prim. (usd#861)
- Multiple render sessions: with the new support for multiple render sessions, there are many API additions (old API is deprecated and uses the default render session)
- Multiple outputs: the AiNodeLinkOutput() function now allows the caller to optionally select not only a component of the output but also specify which non-default shader output is desired when linking (ie, non-default output “output_B”, default output component “r”, or non-default output component “output_B.z”). When left unspecified, the default output will be chosen with its full type. OSL shaders’ default output can be linked to either specifically or not, whilst C shaders’ default output are nameless and thus can’t be specified explicitly.
- Supported extension metadata: all file path parameters can be queried for metadata of type extensions to retrieve supported format extensions. (ARNOLD-11159)
- Linear Color Space Test: the new `AiColorManagerColorSpaceIsLinear` can be used to efficiently check if a given color space is linear. Color Managers can optionally implement color_manager_color_space_is_linear, otherwise, the default implementation will be used. (ARNOLD-6706)
- Python bindings for AtParamValueMapIterator API: those were missing from a previous release
- Python bindings for AiMakeTx API: a new parameter has been added so that it can be applied on different universes (as usual, None is a shortcut for the default universe)
What’s new in Arnold 6.2?
- Light Mixer imager: This new imager makes it possible to interactively edit the contribution of light group AOVs during and after rendering without restarting the render (core#9838).
- Bloom in imager_lens_effect: The imager_lens_effect now implements a bloom effect. Bloom or glow is a post-processing effect that will blur pixels above a given threshold across the frame to simulate light bleeding on an imperfect lens. See the (core#9728).
- Noice denoiser imager: The Arnold Noice denoiser is now also available as a post-processing effect. You can automatically denoise images every time you render a scene, edit the denoising settings and see the resulting image directly in the render view. Note that imager_denoiser_noice does not support temporal denoising (core#9718).
OptiX denoiser imager: The OptiX™ denoiser is now available as a post-processing effect. The imager also exposes additional controls for clamping and blending the result. (core#9719).
- OpenColorIO v2 support: Arnold now uses an updated version of OCIO and is able to load and run OpenColorIO v2 configurations. It is fully backward compatible and will load and run existing configurations as before.(core#7827)
- Up to 256 light AOVs supported: The number of supported light AOVs is now 256, it was 15 previously (core#7802).
- Faster cell_noise: The cell_noise shader is now about 2.5x faster on CPU and 4.3x faster on GPU. In order to achieve this, we had to make a look-breaking change that manifests as a different random seed (core#9866).
- New default values for Standard Surface: The base and base_color parameters on standard_surface are now respectively set to 1.0, and (0.8, 0.8, 0.8) by default. Changing base to 1 after connecting base_color to a texture is such a common use case that it’s better to swap the two defaults and avoid having to adjust base every time (core#9128 standardsurface#15)
- Improved progressive sampling: faster and higher-quality sampling improves progressive and adaptive rendering performance (core#10023).
- Constant color detection in maketx: Added constant color detection to maketx. maketx/AiMakeTx will by default add the –monochrome-detect flag (core#10179).
- OpenEXR maketx passthrough: OpenEXR file inputs to maketx/AiMakeTx will now by default generate an OpenEXR based .tx files instead of TIFF based .tx files. –format tif or specifying a non-tx extension in the output filename will still allow for using other filetypes (core#6792).
- maketx allows by default half TIFFs: maketx/AiMakeTx will now by default allow creating TIFF based .tx files with half floats. Before, passing -d half would by default produce a 32-bit float TIFF .tx file. Beware that most tools do not support half TIFF, so float TIFF or half OpenEXR should be used when the .tx file needs to be used outside of Arnold (core#6792).
- Faster maketx half TIFF generation: Generating half TIFF .tx files should be several times faster on certain Linux machines (core#10224).
- Support for OSL shader metadata: Metadata from OSL shaders are now visible on Arnold nodes and can be read via the AiMetadata APIs (core#6718).
- Limit number of per-light log messages: If there are more than 100 lights, we stop outputting per-light sampling log messages at the regular log verbosity and instead only output these at debug level verbosity. This should help avoid “spamming” the logs when there are many lights in a scene (core#10098).
- Faster Autodesk Analytics Program: ADPClientService should upload data more quickly and consume fewer CPU resources, especially when there is no internet access (core#9776).
- Updated single-user licensing: Autodesk Desktop Licensing has been updated to version 126.96.36.19954. This version is not compatible with previous Arnold versions and should be installed automatically from plugin installers if single-user licensing is used, or can be updated manually from the Arnold License Manager. It is required only for single-user licensing, network licensing (AdskFlex) and RLM are not affected (core#289).
- More accurate crash report: When crashes occur while Arnold is running, a stacktrace is printed out. The stacktrace report should now be more reliable and slightly easier to understand (core#9156).
- More profile blocks added: Most of the Arnold API now has associated profiling blocks so it is easier to determine which Arnold components are consuming the most render time (core#10272).
- Interactive imagers in kick: kick now displays imagers in interactive mode (core#9836).
- Faster Apple M1 performance: Arnold should now be able to properly use both the big and small M1 cores (still under Rosetta2) (core#10062).
- OpenVDB 7.1: Arnold now uses OpenVDB 7.1. More information about the changes between OpenVDB 4 and 7.1 can be found here. (core#9861)
- Shadow groups: Support for shadow groups has been added (core#9898).
- Improved start-up times: This version improves the initial startup time when rendering a scene for the first time. On some scenes, we measured up to a 2x speedup in startup time, as well as a 4% speedup in render time (core#10160).
- Report GPU memory used when there is a GPU crash: Running out of GPU memory is a common problem and can sometimes result in random error messages. We now report the amount of GPU memory that Arnold had available when it first started, which if low could indicate that other applications were using GPU resources and stopping those applications will allow Arnold to succeed, and also report the amount of memory available when the GPU crash occurred, which if low is highly suggestive of an out of memory condition. (core#10261).
- Hydra Cameras: The render delegate now supports physical camera parameters, including depth of field and Arnold specific camera parameters. (usd#31 usd#591 usd#611)
- Search Paths: The render delegate now exposes search paths for plugins, procedurals, textures, and OSL includes. (usd#602)
- Autobump Visibility: The render delegate now supports setting autobump_visibility via primvars. (usd#597)
- Cache Id: The procedural now supports reading stages from the shared stage cache via the cache id parameter. (usd#599)
- Prefix for Schema Attributes: Arnold schemas now prefix their attributes for better compatibility with built-in USD schemas. (usd#583)
- Inheriting from UsdGeomXformable: Arnold schemas now inherit from UsdGeomXformable instead of UsdTyped. (usd#558)
- Authoring extent: Extents on UsdGeom shapes are now correctly authored when using the USD scene format. (usd#582)
- Creating XForms: The USD scene format now correctly creates UsdGeomXform parents for shapes instead of UsdTyped. (usd#629)
- Per ray-visibility: The USD procedural now supports per-ray visibilities exported from Houdini. (usd#637)
- USD 20.11: The USD procedural now uses USD 20.11. More information about the changes between 19.11 and 20.11 can be found here. (core#10209)
- Sample iterator AOV name: The name of the primary AOV of an AtAOVSampleIterator can now be retrieved using AiAOVSampleIteratorGetAOVName(). (core#10193)
- Copyright notice query: The copyright notices for Arnold can be queried using the AiGetCopyrightNotices() function. (core#10148)
What’s new in Arnold 6?
The speed of GPU-based rendering makes it possible for artists to work with near-final quality renders at interactive rates.
- Artists can get immediate and more responsive feedback when tweaking shaders and adjusting lighting, giving them more time for artistic iterations.
- Look development artists will benefit from a faster working environment, making it quicker to denoise images and get to the first presentable image or final look.
- Lighting artists will benefit from efficiency gains with the ability to preview lighting and uncover issues immediately, rather than waiting on overnight renders to see their work and make decisions based on feedback received.
With a single click, users can switch seamlessly between rendering on the CPU and on the GPU.
- Arnold GPU is not a separate renderer but uses the same settings, interface, nodes, executables, and codebase as rendering with Arnold on the CPU.
- GPU rendering is now pixel, feature, and API compatible with CPU rendering in Arnold, empowering users to choose which type of rendering is best suited to their specific needs and workflow.
- Across production, artists and studios will see optimized workflows and reduced turnaround times between versions, making it easier to manage traditionally labor-intensive tasks.
While CPU rendering provides studios working on larger visual effects and animation projects the flexibility to scale up quickly for final frame rendering, Arnold GPU rendering will make it easier for artists and small studios to iterate quickly and scale up rendering capacity when needed.
- Arnold users can take advantage of the latest technology and add GPUs for increased rendering power when production demands it.
- Arnold supports rendering on multiple GPUs, with NVIDIA NVLink™ technology to enable shared memory across GPUs.
- Arnold GPU is optimized to take advantage of NVIDIA RTX technology, pushing raytracing speed and power.
Improved Features and Support for Arnold GPU
First unveiled in March, Arnold GPU has seen continual updates throughout the year. The Arnold 5.4 release in July brought support for Open Shading Language and OpenVDB volumes, and this update now rounds out the toolset with a number of improvements across lights, shaders, and cameras. The latest updates to Arnold GPU include:
- Improved support for Open Shading Language (OSL)
- Improved support for OpenVDB volumes
- On-demand texture loading: Textures are now loaded on-demand instead of at the start of the render, helping to reduce memory usage and save time to the first pixel.
- Improved startup time: Time to the first pixel is now faster thanks to a number of improvements including more efficient NVIDIA OptiX™ caching.
- Reduced BVH memory used by geometry: Bounding volume hierarchy (BVH) memory used by geometry is reduced by as much as 50% for large meshes.
- Shadow Matte shader: A first version of the new Shadow Matte shader has been added to the GPU renderer.
- Reduced noise: Excessive sources of noise have been removed, such as indirect noise in refractions or reflections. GPU noise is now on par with CPU noise when using adaptive sampling, which has been improved to yield even faster, more predictable results regardless of the renderer used.
- LPEs: Most LPEs (39/46 and counting) are now supported on GPU, giving users all of the regular shading AOVs.
- Lights: The majority of lights are supported, including portals.
- Cameras: All cameras are now supported.
- Shaders: Most shaders are supported.
Note that there are still some limitations to rendering with Arnold GPU. Please visit the Arnold documentation portal for more information on supported features and known limitations, as well as hardware and driver requirements for Arnold GPU.
New Arnold USD Components
As part of Autodesk’s continued efforts to accelerate the adoption of open standards to benefit the larger industry, a collection of components for Arnold in the USD ecosystem including Hydra render delegate, Arnold USD procedural, and USD schemas for Arnold nodes and properties is now available on GitHub.
Other New Features in Arnold 6
Arnold 6 delivers a number of new features and improvements to help maximize efficiency and performance:
- Faster creased subdivs: Hard creases are now fully supported in adaptive and multithreaded mode. This means creased surfaces will use all procs during subdivision.
- Dielectric microfacet multiple scattering: Rough dielectrics are now energy-preserving by accounting for multiple scattering between micro facets for both reflection and refraction.
- Physical Sky shader improvements: The physical sky shader now extends the color at the horizon all the way down to the bottom pole.
- Improved roughness mapping of the Oren-Nayar diffuse BRDF: The Oren-Nayar roughness parameter has been remapped so that values close to 1 no longer result in excessive darkening. This change also improves the Standard Surface and Car Paint shaders.
- Improved rough thin-wall transmission in Standard Surface shader: Refractions in the thin-walled mode now appear blurry with non-zero roughness.
- OCIO roles: Roles can now be listed with the color manager API by querying color spaces available in the Role (OCIO) family. This makes it possible to build UIs that list all known roles.
- Skip RGBA denoising: Noise now accepts -ignore_rgba or -irgba to skip denoising of RGBA even if it’s present.
- OpenImageIO 2.1.4: OIIO support is now upgraded to 2.1.4.
- More accurate albedo AOVs: Albedo AOVs now correspond more closely to the true albedos of the material’s BSDFs.
- New AOV Write Vector shader: A new shader enables the writing of vector values into a vector typed AOV, for example for recording positional values.
For a complete list of updates in Arnold 6, refer to the release notes.
In addition to new features and improvements in Arnold 6, we have also made several updates to the Arnold plug-ins for Autodesk® Maya®, Houdini, Cinema4D, Katana, and Autodesk® 3ds Max®.
- X-Rite AxF support in MtoA
- Import / export of shading networks between all plugins
- Arnold License Manager to install, set up, and diagnose licensing
Full release notes for each plug-in are available in the Arnold documentation portal.
A New Way to Buy
Monthly, annual, and 3-year single-user subscriptions of Arnold are now available on the Autodesk e-store, simplifying the process of subscribing to, accessing, installing, and renewing Arnold. Moving the Arnold buying experience to the Autodesk e-store means users now get immediate access to their software when they subscribe and no longer have to install and configure elaborate multi-user license servers when they only need a single seat.
For more information, read the Arnold single-user FAQ.
What’s new in Arnold 5.4?
- Improved progressive and adaptive sampling: Better progressive sampling patterns lead to increased noise convergence rate and faster adaptive sampling termination. (#8447)
- clip_geo shader: The new clip_geo shader will clip out all geometry against the shapes it has been assigned to. You can limit the objects that are affected with trace sets, and optionally choose a specific shader for the intersection surfaces. Note that self-intersecting geometry or intersecting clipping objects can cause artifacts. (#7274)
- AOV read shaders: The new aov_read_* shaders let you access built-in AOVs in the AOV shader context or custom AOVs in the regular shading context. They can be useful to reformat built-in AOVs, for example to output normal maps derived from the built-in N AOVs when baking to texture. (#7787)
- Alembic Layering: The alembic procedural now supports Alembic layering, where extra Alembic files specified via the new layers parameter will override properties on top of the Alembic file. (#8467)
- Alembic Arnold Properties: The alembic procedural will now set Arnold parameters from arbGeomParams if they match any Arnold parameter name and type. (#7577)
- Alembic Material Attribute: The alembic procedural has a new material_attribute optional parameter that defines the Alembic property that contains the material names, which will be used to create the per polygon material assignments. (#8535)
- Support for the MaterialX standard library: The materialx operator now supports look development using nodes and node graphs in the MaterialX standard library. Shading models defined using the PBR library are generated using the MaterialX Arnold OSL shader generator. (#8453)
- Disable assignment expressions: Assignments in the set_parameter operator can be now be individually disabled. (#7182)
- Individual parallel init selection for procedurals: You can now tag individual procedural types for serial or parallel intialization. All built-in procedurals are tagged for parallel initialization, but custom procedurals are serial by default, unless their parallel_init boolean metadata has been set. This is useful to tag non-thread safe procedural without disabling parallel initialization altogether. (#7271)
- Autodesk analytics program: Arnold can now optionally send anonymous statistics data back to Autodesk for analysis. This will help us optimize Arnold for the workflows and systems that are commonly used. This service can be opted-in either by calling the AiPromptADPDialog() API, through the kick -ADP flag, or through other Autodesk applications that support this, such as Maya. For the moment this is only available for OSX. (#8433)
- oiiotool: oiiotool is now distributed with Arnold. (#8501)
Improved round corners: round_corners no longer generates non physical normals, this prevents excessive darkening near objects’ silhouettes. (#8365)
- Faster individual node destruction: Destroying individual nodes with AiNodeDestroy() is now substantially faster in scenes with many global-scope nodes. Individually destroying 500k ginstance nodes went from 50s to about 2s. (#8343)
- Faster scene creation and destruction on Windows: Poor Windows performance when creating and destroying scenes has been greatly improved so that performance is almost as fast as Linux and OSX. For instance, the “releasing resources” step at the end of a render with 29k curves objects went from 45s to 4s. (#4399)
- Open Shading Language: Initial support for OSL has been added to the GPU. Like on the CPU you can mix and match OSL and compiled shaders. Note that not all closure and shading ops are supported yet, refer to the supported features and known limitations docs for details. (#5975)
- OpenVDB Volumes: Initial OpenVDB support, note that this initial implementation is likely to use more memory on the GPU than on the CPU. (#7051)
- Volume displacement: The volume displacement and padding logic has been implemented on GPU. (#7606)
- Lights compatibility : Added support for light portals, cylinder lights, disk lights, and low light threshold. (#8531, #8540, #8557, #8551)
- Standard Surface compatibility: Added support for Randomwalk v2 SSS and transmission_dispersion. (#8253, #8253)
- Less noise in indirect samples: Better stratification now reduces the noise in indirect samples, for example with refractive surfaces. (#8615)
- Better GPU cache pre-population ETA: More accurate GPU cache prepopulation time remaining estimate. (#8361)
Earlier listing of built-in AOVs: Built-in AOVs and LPEs are now also listed by the AtAOVIterator, no longer requiring an AiRender() call. (#8431)
New functions for custom procedurals: Custom procedurals can now define new functions procedural_update and procedural_finish (equivalent to node_update and node_finish). Those custom functions (if present) will be executed during scene update and during procedural destruction, respectively (#7961).
AiPromptADPDialog(): Call AiPromptADPDialog() in order to opt-in or out of the Autodesk analytics program (ADP). Currently ADP is only implemented for OSX, so for other platforms this is a no-op. There is a known limitation that only allows this function to work if the Arnold libraries are in the same path as the host process. (#8433)
What’s new in Arnold 5.3?
- Adds GPU rendering option – Now users have the flexibility to choose between rendering on the CPU or GPU without changing renderers.
- Major improvements to quality and performance for adaptive sampling, helping to reduce render times without jeopardizing final image quality
- Improved version of Randomwalk SSS mode for more realistic shading
- Enhanced usability for Standard Surface, giving users more control
- Improvements to the Operator framework, including a new Include operator and more artist-friendly way to apply them
- Better sampling of Skydome lights, reducing direct illumination noise
- Updates to support for MaterialX, allowing users to save a shading network as a MaterialX look
What’s new in Arnold 5.2.1?
Round corners shader:
This shader modifies the shading normals near edges to give the appearance of a round corner. The simpler way to use this shader is to connect its output normal to standard_surface.normal or standard_surface.coat_normal. (#7517)
Normal map blending:
A new normal_map blending mode was added to the layer_rgba shader. This makes it easier to create fine details and is more efficient than connecting multiple bump or normal mapping nodes. (#7523)
Faster adaptive subdivision:
Faster adaptive subdivision due to more efficient computation of irregular patches: 2x speedup in some cases. (#7344, #7444, #7488)
Faster operator evaluation:
Operator evaluation is now up to 20x faster on large scenes thanks to expression caching and graph pre-processing. (#7001, #7508)
JSON log file additions:
The JSON stats file has more info, such as the hardware used. (#7196)
LPE image metadata:
Output image metadata now includes the full light path expression for each layer. (#7499)
The Alembic procedural will reuse alembic file handles, keeping up to 8 file handles open for better cache handling in parallel node initialisation. (#7071)
- JSON stats version: The JSON stats file now has a “JSON log version” field that will be incremented each time a breaking change is made to the JSON stats format. (#7530)
- JSON stats change: The JSON stats format has changed in order to resolve some ambiguities with nested fields. (#7074, #7530)
- Range shader gain: The gain parameter on therange shader is now inverted for consistency with the AiGain() API function. (#7477)
- #7443 MaterialX generated shaders are scoped under their node graph name
- #7446 alembic crash with make_instance enabled and changing frames
- #7478 Alembic with make_instance and parallel node init enabled causes disappearing geometry
- #7579 Alembic transform incorrect with motion blur.
- #6221 Export full path instead of node name when writing to .ass while expanding procedurals
- #6727 Recover from failed optix launches
- #7074 nested timing stats are ambiguous in json output
- #7388 metadata lexer should ignore more than three # in a row
- #7413 alembic files with single entry array attributes should be considered not arrays
- #7415 Noice: issues with certain crop windows combinations
- #7416 Noice: incorrect handling of variance AOVs in a separate file
- #7417 Noice: support additional channel suffixes and warn if the suffix is unsupported
- #7418 Noice: skip denoising AOVs with no associated variance
- #7419 make flatness check for quad_light more robust
- #7422 transform motion in procedural that only contains lights can give invalid lights
- #7431 Volumes: register new AOV volume_Z
- #7432 Volume AOVs: shadow rays interfere with new Z and ID AOVs
- #7445 Cell noise time not evaluated when linked
- #7456 Thread safety of alembic procedural tokenize function
- #7461 adaptive camera samples higher than expected
- #7466 MaterialX: Supported parameter arrays are not processed by operator and node definition generation
- #7467 Render callback does not support an “empty” callback
- #7470 d’Eon BCSDF must be evaluated when `base_color` is small
- #7472 Shadow group is not inherited in ginstance
- #7474 curves memory report missing some entries
- #7475 Alembic object transform fix
- #7477 Gain function in range shader is inverted
- #7480 Texture baking: small triangles can cause artifacts
- #7492 Add sheen AOV labels
- #7493 Slow expansion of multiple alembic procedurals
- #7495 Kick -laovs should not grab a license
- #7497 Noice: when looking for feature AOVs prioritize AOVs with the correct filter
- #7501 Alembic procedural expansion with make_instance on using an object_transform parameter
- #7505 Autobump (and bump) disappear for some pixels
- #7507 Alembic Crash with arbGeoParam array property
- #7516 user parameters not properly propagated or read from parent procedural
- #7520 Remove the OptiX dependency on mac
- #7524 The first parameter of OSL nodes is not initialized to the default value
- #7539 Alembic transform/deformation motion blur mismatch
- #7567 Alembic geometry has incorrect transform with make_instance enabled
- #7573 Shaders should check that samples are always strictly positive
- #7442 Copy id to child alembic nodes
- #7548 Unexpected missing parameter warning on custom procedural instances
What’s new in Arnold 5.2?
- Texture baking: A new type of node called uv_camera has been added that will produce an image of a given polymesh’s shaded UV space as output, which can be useful for texture baking. (#6091, #7206)
- Improved sampling of spherical lights: A new technique for sampling point lights has been added which can show significant reductions in noise, especially for large lights illuminating surfaces at grazing angles (rim lighting, for example). (#5534)
- Faster adaptive subdivision: Adaptive subdivision is now up to 2x to 3x faster even on a single thread. In addition, the adaptive codepath has been multi-threaded to fully take advantage of machines with many cores. The aggregated speedup in such machines can be 15x or more. (#2311, #7186, #7201, #7229)
- Improved EXR read performance: Threaded read performance and scaling of OpenEXR files has been greatly improved. (#6605)
- noice denoiser improvements: The stability and usability of the high-quality noice denoiser has been improved thanks to various bugfixes and improved error checking. In particular, the original metadata, display windows, bitdepth and compression are preserved in output files. (#7226)
- OptiX denoiser improvements: The GPU memory consumption of the fast OptiX denoiser has been greatly reduced proportionally to the number of denoised AOVs. Fringing artifacts around HDR pixels have been reduced. (#6885, #7100, #7190, #7333, #6880)
- Sheen in standard_surface: The standard_surface shader supports a new, energy-preserving sheen effect designed to render cloth-like microfiber materials such as velvet. The sheen effect is layered on top of the diffuse and subsurface components. (#7234)
- New cell_noise shader: A new cell_noise shader has been added which can create many different useful cell-like patterns. The color of each cell is mapped to a palette parameter, enabling the easy creation of patterns with colors chosen from a specific palette. (#5985, #6051)
- New controls in range shader: The range shader has been augmented with parameters to control contrast, bias and gain. (#7277)
- RGB clamping in clamp shader: The clamp shader can now be configured to either a scalar or color mode. (#7278)
- Matrix shaders: The matrix_multiply_vector and matrix_transform shaders have been reinstated. (#7243)
- Built-in Cryptomatte: Cryptomatte AOV shaders and filters are now being included as a part of the Arnold core package. (#7301)
- New built-in volume AOVs: The Z depth for the first volume contribution can now be output in a flat AOV with volume_Z (depth AOV for volumes was already available in deep files). Also, ID now works for volumes. (#7326, #7327)
- New control in toon shader: Edge detection can now be controlled using a STRING type user data called toon_id. This feature is enabled when user_id is checked. Otherwise, the detected edges will be driven by the object’s own name as a toon-specific ID. (#7125)
- Alembic procedural improvements: The Alembic library has been updated to 1.7.5 in this release. User data parameters that clash with shape parameters will now get an underscore prefix instead of a warning. Added an object_transform parameter to allow additional transformations on the generated geometry. Added a make_instance parameter so that the Alembic procedural will automatically create instances of objects present in multiple Alembic procedurals (experimental; disabled by default) (#6916, #6947, #7076, #7109, #7163, #7242, #7261, #7286)
- Improved operator assignments: Assignment expressions in operators have improved functionality with regards to reference and string types. (#7284, #7287)
- Upgrade to OSL 1.9.9: This upgraded version of OSL addresses several reported limitations involving locales, the availability of certain noise types, and compatibility issues with utility functions like transformc being promoted to built-in function definitions. (#6225)
- Updated to RLM 12.4BL2: The RLM license server and library have been upgraded from version 12.2BL2 to 12.4BL2, which fixes sporadic access violations and hangs. (#7350, #7120)
- Sheen closure: The AiSheenBSDF() function has been which provides the sheen closure used by standard_surface so that the same effect can be easily obtained in custom shaders. This function also returns a weight that can be used to layer the sheen closure onto other closures in an energy conserving fashion. (#7234)
- Multiple Universes: A new concept has been added to Arnold’s API which gives it the capability of creating nodes in any number of user-defined workspaces called AtUniverse that can be created and destroyed via the AiUniverse() and AiUniverseDestroy() functions, respectively. Upon creation, nodes are assigned a universe which will take on their exclusive ownership, and this ownership can be inspected via the AiNodeGetUniverse() function. Please note that the “null” universe is the “default” universe, which for the time being is the only one which permits rendering and procedural expansion. (#4129)
- Code compatibility: Code made for Arnold 5.1 should still function in Arnold 5.2 after a recompilation.
- Binary compatibility: Even though 5.2 is technically an API-breaking release, Arnold 5.0 and 5.1 plugins (shaders, filters, etc) in the majority of cases will still be compatible with 5.2 and can continue to be used without being recompiled, while procedural plugins on the other hand will in the majority of cases require recompilation. (#6822)
- Multiple Universes: In order to support multiple universes, several existing API functions have a new AtUniverse pointer as first parameter indicating which universe these functions must operate on. This change to function signatures implies a break in binary compatibility with any client code compiled for previous versions of Arnold that were using these functions. However a set of function overloads that preserve the previous signatures has been added to the C++ headers such that the mismatched signatures can be resolved through a code recompilation. The API functions affected by this change are:
- Removed texture blur options: The texture_specular_blur, texture_diffuse_blur , and texture_sss_blur options have been removed after having defaulted at 0 for some time. They are no longer needed for improving texture performance since Arnold is able to automatically blur the textures as needed without the over-blurring that these options would produce. (#4706)
- GPU denoising options renamed: The GPU-related render options used by the OptiX denoiser have been renamed to use the gpu_* prefix. (#7190)
- ENUM params now byte-sized: Enum parameters are now internally stored as bytes instead of ints, and will be reported as such by the AiParamGetTypeSize() API. (#7114)
- #7325 procedural loading a .ass containing many nodes that reference other nodes is very slow
- #6472 OSL issues with Locale
- #6916 curves in Alembic proc cut short
- #6947 Skip invalid curves
- #7012 Noice: black pixels around variance spikes
- #7027 Non-ascii characters prevent Open EXR images from being loaded
- #7076 Rename user data parameters that clash with shape nodes in alembic expansion
- #7154 Adaptive Subdivision: crash with linear patches and different position and UV topologies
- #7179 Adaptive Subdiv: irregular patch crash with different position and uv topologies
- #7226 Noice: support inputs with different data windows
- #7286 Alembic object transform
- #7303 Python binding fixes for functions that return AtNode types
- #7312 Raw drivers crash (including Cryptomatte’s manifest driver)
- #7341 Crash when computing the render stats for procedural
- #7355 Alembic curve user data expansion
What’s new in Arnold 188.8.131.52?
#6771 Incomplete render when you restart after interrupting a render during displacement/subdivision
#7180 noice crashes with separate float Z input file
#7213 MaterialX: Displacements and mixing of generic/texture shaders in materials now supported using a shader type context
#6926 MaterialX: Resolve environment variables in search paths
#6993 noice should preserve metadata, display windows, and add noice args and version metadata
#6994 Noice should preserve channel bit width and compression for outputs
#7094 Procedural containing ginstances are evaluated before instanced node
#7113 Contour lines shouldn’t be drawn when width_scale is zero
#7124 Memory leak when interrupting displacement
#7127 Procedural ginstance matrices are accumulated at each render
#7130 Render incorrectly aborted in applyDevice when GPU is not needed
#7152 noice should exit when unsupported formats are used
#7163 Array property fixes in alembic procedural
#7176 Motion blur on instances of procedurals
#7187 Fix op target selection in kick command line
#7191 Slight error in checkerboard shader
#7193 noice broken sequence handling when temporal denoising is not used
#7198 Alembic procedural uses inheritsXforms property
#7200 Output metadata: output correct metadata for single layer files
What’s new in Arnold Render 5.1?
Optimizing for quality and speed
- Adaptive sampling offers a streamlined way to easily tune image fidelity, so users can reduce render times without jeopardizing final image quality.
- Two new denoising solutions give you the option to use much lower quality sampling settings to optimize your rendering process:
- The OptiX Denoiser based on NVIDIA AI technology is now integrated into Arnold.
- The Arnold Denoiser is a standalone tool that offers the temporal stability needed for final frame denoising.
A new Toon shader has been integrated as part of a non-photorealistic rendering (NPR) solution, provided in combination with the Contour Filter, making it easier to achieve incredible new styles and effects. While Arnold is long known for producing beautiful photorealistic imagery, many users have asked for functionality allowing toon or stylized non-photoreal looks, and this new shader will open up a tremendous range of options.
Managing complexity and scale
For technical users, Arnold continues to offer the stability needed to scale performance without sacrificing image quality.
- A native Alembic procedural will help studios working with Alembic pipelines to better integrate Arnold, optimize their Alembic workflow, and eliminate production bottlenecks.
- A new Profiling API plus structured statistics, including the ability to output data in JSON format, offer a set of powerful debugging tools so users can more easily identify performance issues and fine-tune rendering processes.
Interoperability for open pipelines
Arnold 5.1 lays the groundwork for major developments in supporting open industry standards, helping to dismantle technical roadblocks that might be limiting your choice of tools.
- Material assignments and overrides: Fully interactive inside of Arnold, a new set of operators makes it possible to override any part of an Arnold scene and modify the Arnold universe at render time. Support for open standard frameworks including MaterialX will make it easier than ever to transfer rich material and look-development content between applications and renderers.
Create a Flamethrower with FumeFX for 3ds Max
Create a realistic flamethrower simulation with FumeFX in 3ds Maxm complete with a realistic blast with rolling fireballs and billowing smoke.More...
In Depth: Which 3D render engine is best? (Updated 13 Feb 2022) #3drenderer
There are so many renderers available out there, and how does an artist know what to choose? Learn what the different renderers offer.More...
Greyscalegorilla: Displacement Materials in Cinema 4D Using Arnold / Octane / Redshift
Displacement materials and textures can change the topography of your 3D model and bring added depth into your render. Chad Ashley and Nick Campbell from Greyscalegorilla show you how to set up displacement in Cinema 4D using Arnold, Octane or Redshift with these tutorials.More...
Camera Projection with Maya 2022 & Arnold #mayamonday
3D Models World shows how to convert a still image into animated Camera Projection using Autodesk Maya 2022 and Arnold. Maya Monday!More...
Area Light Maps from Greyscalegorilla: Getting Started
Check out the new Greyscalegorilla Area Light Maps tutorial, featuring multiple renderers including Redshift, Octane, and Arnold Render.More...
Sheen or Velvet Shader in Maya and Arnold #mayamonday
ReimagineFx walks you through making a spooky ghost with a purple sheen by using the Velvet Shader in Maya and Arnold Renderer.More...
Maya Monday: Corrective Joint Based Rigs
Kiel Figgins, the Lead Animator at Industrial Light & Magic Anim Rigs, shares his collection of Corrective Joint Based Rigs.More...
Substance Painter Texturing - Vintage Theater Chair #mayamonday
Brent Le Blanc shows you how to use Substance Painter texturing of a Vintage Theater Chair for film and games. He uses advanced procedural techniques.More...
Why Your 3D Renders Look Fake - 5 Tips
Designer Darren Thomas explains why your 3D renders look fake and offers 5 tips to improve realism. Perfection is your enemy, and technology will only get you so far, as real life is messy and imperfect.More...
Arnold + Maya Tutorial Round Up #MayaMonday
Arnold + Maya go together like chips and salsa, or rice and beans! Today we're rounding up some tutorials for Arnold and Maya.More...
FumeFX Thanos Portal for 3ds Max
This tutorial for the Thanos Portal comes from SitniSati, and is, of course, inspired by the Avengers Infinity War. Watch it now!More...
Hidden Maya Tricks to Speed Up Your Workflow #MayaMonday
These are not necessarily hidden but often overlooked by artists, even those artists who have been using Maya for years. Get out your notebooks and pens!More...
Maya Monday: The Arnold GPU Public Beta with Arvid Schneider, Greyscalegorilla
The Arnold GPU public beta last week, with the release of Arnold v5.3. Arnold GPU gives artists the ability to switch between CPU and GPU rendering easily.More...
Cinema 4D & Arnold: Making a Spiderverse-Inspired Shader in Arnold
Chad Ashley from Greyscalegorilla was recently inspired by the animated movie, "Spider-Man: Into the Spider-verse" to create an Arnold shader in the same style. In this tutorial, Chad explains the technique use to create the film and then shows you how to re-create that look in Arnold.More...
Cinema 4D and Arnold
Get started with Arnold and Cinema 4D. We're featuring a few useful and fun tutorials for new users and more seasoned users alike.More...
Maxon Cinema 4D and Arnold Render Tutorials for Shaders
A couple of weeks ago we did some features on Cinema 4D and third-party renderers that work with Cinema 4D. Today, Arnold.More...
Maya XGen and Interactive Grooming Tutorial Roundup
Maya 2017 Update 3 brought the interactive grooming tools and they’re really powerful! With XGen, you can create natural looking hair and animal fur. Here are some overviews and examples of what XGen Interactive grooming can do.More...
5 Tutorials about Creating Glass in Maya with Arnold’s aiStandardSurface
There have been multiple times in my career when I’ve been asked to create glass, whether it be for a product video, or for motion graphics with a logo in glass, or for visual effects where I’m turning a person into glass. The important thing is to make the reflections look natural.More...
Working with Arnold AOV’s in After Effects
Maghdad Asadi has a new overview video on working with passes (AOVs) from Arnold in After Effects.More...
Rendering in Maya
This page contains several tutorials about installing Arnold Render, render settings you should use, saving the render and things like ray depth, viewport settings, and anti-aliasing.More...
Understanding Depth Of Field in Arnold and Maya
This is a free excerpt from a course from Mograph Plus and Kamel Khezri. Learn about how to set up Depth of Field properly in Maya and Arnold.More...
Procedural Growing Frost Cinema 4D & X-Particles + Creating a Realistic Ice Material in Arnold 5
Daniel Danielsson is a Freelance Director / Motion Designer who is based in Hertfordshire, which is north of London, England. I'm not sure how much snow and ice they get there, but Daniel has some fantastic Cinema 4D tutorials on creating frost and ice.More...
Speed up your HDRI Workflow in Arnold with HDRI Link
Chad Ashley from Greyscalegorilla explains how to work faster using HDRI Link with Cinema 4D and Arnold.More...
MtoA 206 | Snow and Ice | Material series using Arnold 5 with Maya 2018
Arvid Schneider puts out some fantastic Maya tutorials and this one seems especially seasonally appropriate, as I look out my window. He explains how to set up a realistic looking snow shader with Maya and Arnold.More...
Rendering in CINEMA 4D - Which to Choose
With all the different renderers out there, it’s sometimes difficult to determine which is the best for you and your needs. Chad Ashley from Greyscalegorilla has a breakdown of the pro’s and cons of some of the renders GSG recommends. Read an excerpt here and follow the link to the full article.More...
Creating Realistic Human Skin with Maya and Arnold 5
Arvid Schneider explains how to set up a lifelike human skin shader with the aiStandardSurface shader, and it’s a lot easier than you may think!More...
Where Did Arnold Go?
I ran into a little problem after updating to Maya 2017. Arnold Standard Shader was missing! If this happens to you, this is an easy fix!More...
Live Tutorial: Working with Arnold 5
Arvid Schneider explains lighting and shading a scene from start to finish with Arnold 5. "I am using an arnold learning scene with a fishbowl. Creating shaders and mixing them together."More...
Arnold Render 5 tips and tricks for faster renders
John Paul Giancarlo, M&E Technical Specialist for South Europe, based in Barcelona, gives some tips on using Arnold for faster renders and some new features. The video lists what's covered exactly.More...
3ds Max: Rendering realistic Explosion and Smoke in Arnold
In this tutorial, from Mograph Plus, you will learn how to render realistic explosions and smoke in Arnold for 3ds Max using the Arnold Volume.More...
Substance Painter to Arnold Workflow
In this tutorial by Romain Chauliac, you will learn the proper workflow to get your Substance Material to look exactly the way you want it to in Arnold Render 5.More...
Dynamic Worms in Maya
This is the last one for this tutorial Tuesday. Simulate a bunch of worms in Autodesk Maya from noorvfx.com.More...