27 March 2024

MAXtoA 5.7.1.0 is a major feature release using Arnold 7.3.1.0.
![]() |
![]() |
| without denoising | with imager_denoiser_oidn |


OCIO environment variable behavior follows 3ds Max color management settings: The color management setup in 3ds Max 2025 has explicit modes to use different OCIO configurations: a default mode, a custom mode, and a mode to follow the OCIO environment variable. MAXtoA passes this mode setting on to the Arnold renderer so that Arnold uses the OCIO environment variable override only when 3ds Max is explicitly set in the OCIO - Environment Variable mode. (MAXTOA-1737)
Ability to use custom imagers: MAXtoA now fully supports the new Imager API, and user-supplied imager plugins (in the Arnold plugin path) are usable from inside MAXtoA. Since Imagers are now considered their own node type in Arnold, they have their own selectable category on export. (MAXTOA-1736)
Support metadata from core: MAXtoA can now use metadata from Arnold core for things like the help text and tooltips for shaders, imagers, and other nodes. However, MAXtoA still ships with its own overrides for some metadata. (MAXTOA-1715)
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 behavior where denoising was only applied to the AA > 0 passes. Right side is new behavior 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 behavior. 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. MAXtoA does not yet support this new API. (ARNOLD-14756)
AI_NODE_IMAGER node type. usd#1870The API is built upon a new AI_NODE_IMAGER node type and is implemented via two main API.
imager_evaluate allows you to modify output pixels of a render.#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 is an optional API allows you to query the outputs an imager will recieve and prepare any evaluation specific data.#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.
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);
AI_NODE_IMAGER node type. usd#1870color_manager_ocio.ignore_environment_variable to true restores the previous behavior.MAXTOA-1269 - The width of several UI elements in MAXtoA was unnecessarily large, forcing the 3ds Max command panel to grow
MAXTOA-1688 - Arnold RenderView IPR session should be stopped on color management changes
MAXTOA-1726 - When clicking between multiple Arnold Ramp shaders in SME, the ramps themselves did not update properly
MAXTOA-1742 - In Arnold RenderView, the hot keys sometimes were picked up by 3ds Max. For example, pressing the G key would toggle the grid in 3ds Max, rather than the Green channel in ARV. This has been fixed.
ARNOLD-6309 - System locale should not affect .ass reading or writing
usd#1547 - Fix mesh lights shutoff when there is a light link in the scene.
usd#1859 - Support PointInstancer invisibleIDs for lights
usd#1881 - Support UDIM and relative paths on mtlx image shaders
usd#1884 - Set a proper name to skydome image node in Hydra
usd#1890 - Reduce VtArray memory consumption, specially in the instancer.
usd#1874 - Shader output attributes should be outputs:out to match the Sdr registry
usd#1878 - Make Arnold relative path optional for image shaders
usd#1873 - Ensure materials are written under a scope primitive