Learn about new features in Arnold since Maya 2025.
What's New in MtoA 5.4.1.2

Maya 2025.1 ships with MtoA 5.4.1.2, which includes Arnold 7.3.1.1.
This release includes updated denoising, improved MaterialX and OCIO support, API support for viewport display of procedural curves, as well as multiple bugfixes.
See the Arnold for Maya release notes for the full list of recently added features and bug fixes.
Denoising by default with Intel Open Image Denoise (OIDN)
The Intel® Open Image Denoiser imager is now added by default to new scenes (MTOA-1787).
![]() | ![]() |
without denoising | with imager_denoiser_oidn |
Improvements to the Arnold Render View Snapshots
The snapshot workflow and interface in the Arnold RenderView has multiple enhancements and behaviors.
-
Press the S hotkey in the Arnold RenderView to save a snapshot.
-
Improved UI for Snapshot buttons (ARNOLD-232)
- You can now compare snapshots of the same resolution using the Ctrl key modifier when selecting a second snapshot.
- You can now select multiple snapshots with the Shift modifier and delete multiple selected snapshots with the Del key.
OSL Enum support in Attribute Editor
Shader parameters of type ENUM on the OSL code node create a combo box with the available options (MTOA-1781)

OSL enum parameter values displayed as a drop-down list
More enhancements
- New presets added to aiRampRgb: We have added over 100 presets to the aiRampRGB node (MTOA-1630)
- aiStandardVolume assigned on creation of new aiVolume node: When creating a new aiVolume node a new aiStandardVolume shader will be created and assigned to the new node (MTOA-1803)
- Update Intel® Open Image Denoise (OIDN) to version 2.2.2: The updated denoiser has 10% better performance on CPU, includes some critical bug fixes, and handles high-frequency details better. (ARNOLD-14772)
- OptiX denoiser runs on progressive negative AA passes:
The OptiX denoiser imager now denoises the low-resolution progressive passes (renders with AA < 0). This should result in higher quality feedback in IPR. (ARNOLD-11487)
Left side shows the previous behaviour where denoising was only applied to the AA > 0 passes. Right side is new behaviour where all progressive passes are denoised.
- MaterialX node definitions: The MaterialX node definitions for Arnold shaders now use the standard surfaceshader and volumeshader types, which make them easier to use in DCCs and mix with standard library shaders. The UI for Arnold MaterialX shaders is also improved with the addition of parameter groups and node categories. (ARNOLD-14717, ARNOLD-14736, ARNOLD-14716)
- OCIO environment variable priority: The OCIO environment variable now takes priority over the configuration file set in the Arnold OCIO color manager as well as the builtin OCIO configuration file. A new `ignore_environment_variable` parameter on the OCIO color manager causes Arnold to ignore the value of the environment variable and restores the previous behaviour. The OCIO environment variable is also now taken into account by maketx. (ARNOLD-9012)
- Curves in procedural viewport API: Procedurals now return curves nodes in `AI_PROC_POLYGONS` viewport mode. This is an API change only. MtoA does not yet use this API for displaying curves in the viewport. (ARNOLD-14756)
USD Enhancements
- Improved support for USD cameras (MTOA-1597)
- Cameras from a USD Stage are displayed in the Render View Camera list
- You can use UFE camera paths when rendering in batch
- USD Stage cameras are listed in the Render Settings if they are set to the "default" or "render" purpose.
- Light linking on custom procedurals: You can now use light linking on custom procedurals such as Yeti in the render delegate. (usd#1730)
- Improved tooltips: The tooltips in DCCs for Arnold nodes in USD are much improved. usd#1835
- Imager node support: USD support for the new Arnold AI_NODE_IMAGER node type. usd#1870
- Export ArnoldOptions as UsdRenderSettings - The Arnold USD exporter covnerts the Arnold options node to UsdRenderSettings, UsdRenderProduct, and UsdRenderVar nodes. usd#1852, usd#1865
- Velocities motion blur for points - Points with a velocities attribute now render with motion blur. usd#1868
- Better default for transmission ray depth - Set the default transmission depth to 8, so that the default settings work better with glass, and to match default in other Arnold plugins like HtoA and MtoA. usd#1889
API changes
A public API is now available for imagers. This adds support for custom and third-party imagers in Arnold. (ARNOLD-10322)
See Imagers Nodes in the Arnold Developer Guide for examples of imager plugins.
The API is built upon a new `AI_NODE_IMAGER` node type and is implemented via two main API.
imager_evaluate
`imager_evaluate` allows you to modify output pixels of a render.
```c++ #define imager_evaluate static void ImagerEvaluate(AtRenderSession* render_session, AtNode* node, struct AtOutputIterator* iterator, int bucket_xo, int bucket_yo, int bucket_size_x, int bucket_size_y, uint16_t tid) ```
imager_prepare
`imager_prepare` is an optional API allows you to query the outputs an imager will receive and prepare any evaluation specific data.
```c++ #define imager_prepare static void ImagerPrepare(AtRenderSession* render_session, AtNode* node, const AtNode* driver, struct AtOutputIterator* iterator, AtImagerSchedule& schedule); ```
Additionally, there are a couple of helper APIs for the `imager_prepare` method. These API let you request additional inputs to be rendered for imager evaluation, and to add additional output layers that the user may want to write to the driver.
```c++ AI_API bool AiImagerAddInput(AtRenderSession* render_session, const AtNode* imager, const AtNode* driver, int aov_type, AtString aov_name, AtNode* filter); AI_API bool AiImagerAddOutput(AtRenderSession* render_session, const AtNode* imager, const AtNode* driver, int output_type, AtString output_name); ```