Release Date

April 4, 2018

This version uses the Arnold core. 


MtoA 3.0.0 is a major feature release, that is shipped with Maya 2018 Update 3.

Despite its major improvements, it is still fully binary compatible with MtoA 2.* versions.


Toon Shader:

The new aiToon shader is part of a non-photorealistic rendering (NPR) solution that is provided in combination with the Contour Filter.

It can be used to obtain a cell animation look. A variety of interesting effects can be achieved by, for example, changing the line width using the Width Scale parameter,

connecting a procedural texture to Mask Color, or using stylized highlights.


Shader Improvements:

  • New Layer shaders: The newly added aiLayerFloataiLayerShader and aiLayerRgba shaders can be used to mix float values, surface shaders (closures) and textures respectively. The maximum number of layers in these shaders is limited to 8.
  • ID AOVs in aiStandardSurface and aiStandardHair: Both these shaders now support ID AOVs, which are useful for creating mattes.
  • Extra Samples parameter in aiStandardHair shader: allows using additional GI samples on a per-shader basis. This allows reducing hair noise without increasing the global AA settings.
  • Per-light group shadow mattes: aiShadowMatte has a new Light Group parameter that when enabled makes the shader sensitive only to a given light group.
  • Added Bump in aiPassthrough shader: This allows for the assignment of a normal or bump map that affects the entire network of shaders it is connected to.
  • Trace sets in ambient occlusion shader: aiAmbientOcclusion now includes a Trace Set parameter to specify which objects are included or excluded.

Alembic support (gpuCache):

Arnold now natively supports Alembic files. Maya native Gpu Cache nodes are now being exported as an alembic procedural and expose in an Arnold section several parameters, as well as a list allowing to inspect the Alembic file and isolate a given sub-object. More details can be found in the Alembic documentation.

Adaptive Sampling:

Arnold now has the capability of adapting the sampling rate of each pixel when Adaptive Sampling is enabled in the Render Settings. It allows dedicating a greater number of camera samples (and thus also a greater amount of render time) to the pixels that show a greater variation in their sample values. When used, all pixels will receive a sampling rate of at least Camera (AA), but no more than Max Camera (AA). The adaptive sampler's sensitivity to noise may be controlled through the Adaptive Threshold render option, where lower threshold values will apply higher sampling rates to a greater number of pixels.

Optix Denoiser:

The fast, GPU-powered Nvidia OptiX AI denoiser is now available in Arnold. By enabling a parameter Denoise in an AOV, Arnold will output this AOV twice: once with the original result, and a second one (suffixed with "_denoise") showing the denoised result. A denoised beauty pass can be obtained by enabling Denoise on an RGBA AOV. Note that denoising happens at the end of a full frame render, and not at each bucket. See the Optix Denoiser documentation for more details.



Arnold Denoiser "Noice":

A standalone, post-process denoiser executable called Noice is now bundled with Arnold. This is a high-quality denoiser that takes into account multiple frames and multiple light AOVs. It requires variance information for the beauty output, which can be enabled with the new parameter Output Variance AOV. It can optionally use normal, depth and albedo in order to improve the denoising.

Operators - Arnold render time procedures :

Operators are a new node type which performs per-object (node) parameter assignments and overrides, including late-bindings and deferred overrides on procedurally generated nodes. They can, therefore, be used to override parameters from already exported standins at render-time. Operators can also create nodes and carry out general scene inspection and modifications. Multiple disconnected operator graphs can exist in the scene, where only the graph connected to the target operator will be evaluated for rendering. Some operators provide a selection parameter which determines, using a wildcard expression, what nodes are processed by the operator. A series of operator nodes are now available: aiMaterialx, aiSetParameter, aiDisable, aiCollection, aiSwitchOperator, and aiSetTransform. More details can be found in the Operators documentation.



MaterialX Support:

Using the new Operator nodes, it is possible to apply a MaterialX file to a Standin, an alembic procedural, or any other shape.

Structured Render Statistics / Profiling outputs:

Structured render statistics can be dumped in a .json filed from the Render Setting's Log parameters. It's now also possible to dump a profiling .json file that helps to identify where render time is spent. 

Progressive Render:

New Progressive Render option in the Render Settings allows rendering progressively all the samples up to the final Camera (AA) Samples. Note that this option slows down render times and increases memory usage, which is why it's only supported during interactive renders for fast preview.

New Licensing helper tools:

New Arnold -> Licensing menus were added, which simplify the licensing installation and troubleshooting, for both RLM and CLM licenses.


  • Removed Pymel dependency from MtoA.
  • Improved Animated Standins workflow.
  • Log Warnings by default.
  • Improved VP2 representation of utility shaders.
  • Properly remove Arnold-specific attributes when MtoA is unloaded.
  • Export Maya File as Arnold image to ease cross-application pipelines.
  • Export Maya bump as Arnold bump to ease cross-application pipelines.
  • Fixed several ARV crashes.
  • Fixed ARV bugs with wrong cameras and/or image planes. Image planes will now appear only for the correct camera.
  • Custom procedurals now appear as a bounding box in the viewport to support selections. The min/max bounding box can be set as parameters in the procedural node.
  • Filter changes weren't updated in IPR.
  • Bake Geometry now working with Standins.
  • Fix mismatch in mesh lights motion blur as compared to regular geometry.
  • ARV: Update Full scene now flushes all caches.
  • Shader parameters left to default value are no longer exported to the .ass file.
  • Light instances are now supported.
  • ARV snapshots using "Snapshot Folder" now load the snapshots by chronological order.

Incompatible changes:

  • Following the PyMel removal, any overrides in hooks.py will now expect node names, and not PyNode as hey did before
  • Triplanar parameter 'P' was removed


#2707Render Maya File nodes as aiImage
#3355Crash with ARV when a hidden light becomes visible during IPR
#3356MAC: Crash when opening Maya scene file when ARV was left open
#3357attributeAliasList error now occurs for every referenced material
#3381Activating AOV Denoise filter with ARV running crashes Maya.
#3063LightBlocker issue in Viewport 2.0
#3209mayapy crash when opening a file that requires mtoa (and mtoa is not loaded yet)
#3365Unable to use the <Camera> Token in Render Settings
#3379Incorrect use of QString values may lead to errors and crashes due to reading deleted memory.
#1913Warning: pymel.core.general: Could not create desired MFn. Defaulting to MFnDagNode.
#3118Link MtoA extension attributes to the plugin after registering them
#3159Add test for extensions
#3221Show bounding box in the viewport for auto-procedural nodes
#3227Expose "outAlpha" attribute in RGBA shaders
#3238Camera nodes can be missing in the exported scenes
#3240Don't regenerate standins in IPR when they're only transformed
#3248Remove PyMel from MtoA
#3250Support adaptive rendering
#3253Improve licensing tools in MtoA
#3260Remove MtoA procedurals dependency graph
#3269Remove Arnold attributes when MtoA is unloaded
#3273Filter changes not updated in IPR
#3275Bake Geometry doesn't work with standins
#3276driver_exr "tiled" doesn't have the correct default on windows
#3287Maya crashes when you connect nodes to UV coords of aiImage
#3290Filter width is different on Linux + Maya 2018
#3291Expose Arnold operators
#3298Viewport - Use Flat Lighting not supported by aiStandardSurface
#3305Expose Alembic procedural
#3306Rename "jpeg" outputs as "jpg"
#3312Set Arnold node names on creation
#3321"Arnold > Render" has no effect if ARV is already open and a render was done previously
#3341ARV: Cameras not restored when a scene is opened
#3346Motion blur of mesh light vs that of other meshes
#3349MtoA errors when extensions can't be loaded
#3353Remove Install Node-Locked License menu command from Arnold > Licensing
#3362Utility nodes do not have viewport representations
#3363Export maya_full_path user data
#3368Warnings should be logged by default
#3369ARV: Update Full scene should flush all caches
#3370Expose option's progressive_render
#3371Undoing Render Layer edits if Arnold Render Settings were used, will add UI updates to Undo stack (need to Undo several times to undo edits)
#3372ARV: Update full scene can remove image plane
#3374Support Optix denoiser
#3382Implement Render Stats/Profiling
#3383ProcessParameter shouldn't set the attribute if the value is unchanged
#3386Fix regression when linking the matte color
#3387Export variance AOV for Arnold denoiser
#3388ARV: Add API function to get menus state
#3389Expose bump on passthrough
#3390Export standard_hair extra_samples
#3088MTOA_EXTENSIONS_PATH order of precedence incorrect
#3048Add tests around Color Mgt
#2079Instances of lights in Maya should be translated as copies of lights
#2412improve animated standin (sequence) workflow
#3230Expose Toon (NPR) Shader
#3262Add frame padding or load by timestamp for ARV snapshots from directory
#3251Export Maya bump as Arnold native bump
  • No labels