Release Date

November 10th, 2017

This version uses the Arnold core. 



MtoA 2.1.0 is the version included in Maya 2018 Update 2. It contains lots of improvements and bugfixes.

AOV improvements

The AOV editor has been refactored to simplify the use of recent AOV controls :

A video showing the AOV improvements in MtoA 2.1.0 can be found here.

Arnold RenderView (ARV)

A video showing the new ARV features in MtoA 2.1.0 can be found here.

New Subsurface Scattering

A new, more accurate way of calculating SSS has been added. Unlike the current empirical BSSRDF method based on diffusion theory, this new method actually traces below the surface with a real random walk and makes no assumptions about the geometry being locally flat. This means it can take into account anisotropic scattering like brute-force volume rendering and produces much better results around concavities and small details. It can also be substantially faster for large scattering radius (i.e. large mean free path) compared to the old method. On the other hand, the new method can be slower in dense media (i.e. small mfp), does not support sss_setname for blending two surfaces together, may require redialing materials to achieve a similar look, and is more sensitive to non-closed meshes, "mouth bags", eyeballs, and internal geometry potentially casting shadows. This new algorithm is exposed in the aiStandardSurface shader via the new parameters subsurface_type (with enum values diffusion and randomwalk) and subsurface_anisotropy (Henyey-Greenstein's eccentricity parameter 'g' from -1.0 to +1.0). The default is to use the old empirical diffusion method in order not to break the look of existing scenes.

A video showing the new Subsurface Scattering can be found here.

Car Paint shader

We are now shipping a dedicated shader for car paint, which can be thought of as the combination of a simplified version of the aiStandardSurface and aiFlakes shaders. This shader can create a wide range of car paint looks without having to connect several nodes. For example, a pearlescent effect can be easily added to both the specular and flakes layers by simply tweaking a few parameters such as specular_flip_flop and flake_flip_flop. An arbitrary number of layers of flakes can be used (flake_layers). The flakes at a deep layer are covered by the ones closest to the surface and more tinted by pigments (specified by the transmission_color parameter).

Shadow Matte improvements

Many improvements were added to the shadow matte shader in Arnold 5.0.2 based on user feedback, and MtoA now exposes these improvements:

A video showing the improvements in the Shadow Matte shader can be found here.

Namespace controls in StandIns

Since Arnold 5, each standin is automatically namespaced to avoid name collisions, but this prevented from exporting shapes and shaders as separate standins. In Arnold an optional namespace attribute was added to StandIns. By setting the same namespace on different standins, their nodes will be able to "connect" with each other. This will allow exporting shapes and shaders separately, as in Arnold 4. The parameter "Force Translate Shading Engines" (that is necessary for this workflow) has been renamed "Force Shader Assignments" in the export options UI, and only appears when "Export Shaders" is turned off.

A video showing the new features in StandIns and procedurals can be found here.


Subdivision Frustum Culling

Subdivision patches outside the view or dicing camera frustum will not be subdivided. This is useful for any extended surface that is only partially visible as only the directly visible part will be subdivided, potentially saving memory and subdivision time. Similarly, no subdivision work will happen if a mesh is not directly visible. This can be turned on globally by enabling the Render Settings parameter Subdivision Frustum Culling and can be turned off for specific meshes with aiSubdivFrustumIgnore (perhaps to avoid artifacts in hard cast shadows, reflections, etc). The option aiSubdivFrustumPadding adds a world space padding to the frustum that can be increased as needed to minimize artifacts from objects that straddle the frustum boundaries. Note that motion blur is not yet taken into account and moving objects might require some additional padding.

A video showing the new Subdivision Frustum Culling can be found here.

Maya Shading Engine removal

MtoA always used to export a Maya-specific MayaShadingEngine at the root of all shading trees. This is no longer the case in MtoA 2.1.0. Apart from decreasing the number of shader nodes in an Arnold scene, which increases efficiency, this also makes it easier to render .ass files exported from Maya in other DCC plugins. Previously saved .ass files are still compatible. However, previously exported XGen archives might not render properly. As a workaround for eventual pipeline specific regressions, a temporary parameter Export Shading Engines (Legacy) was added in the Render Settings (in Tab "System").

Other improvements


Incompatible changes



#2665Can't resize programmatically ARV in Maya 2017
#3208lookdevkit shaders don't batch render when you load MtoA with userSetup.mel
#2093Intensity attribute in the mesh_light should be a slider
#2105Enlarge post, pre render mel callbacks interface
#2600Camera Filtermap icon does not work
#2732Add XGen orientation to Arnold curves
#2835Duplicating an object resets aiTranslator
#2855All previously-installed versions of MtoA appear in Start > All Programs in Windows 7
#2922Minimum pixel width crashes
#2939mtoa_shaders loaded twice
#2946Errors of "Extension already managed" on Linux and Mac with latest MtoA
#3107Risk of clashing node names in onConnectionChanged callback.
#3115Large numbers of AOVs slow scene open time
#3149Resize ARV in Maya 2018 when needed
#3178IPR restarts render when opening the Render Settings window (Maya 2018)
#3180Regression in AOVs during batch render
#3181Geometries randomly missing
#3183shadow_matte AOV indirect_specular isn't exposed
#3184Image plane not seen by Shadow Matte secondary bounces
#3185Add offscreen_color to Image Plane
#3187Render setup regression tests fail if MtoA is loaded
#3190IPR Update issue : changing shaders connections in shading groups
#3195Expose car paint shader
#3197[ARV] A/B handles not always visible
#3201Export All Shading Groups not exporting displacements
#3203Loading MtoA plugin in mayapy and then exiting causes crash
#3207[ARV] Cameras list not always up-to-date with Maya
#3213Xgen archive shaders not rendered in interactive sessions
#3223ARV : Opening the viewer without rendering shows wrong resolution size
#3224Rename bifrost procedural folder name to lower case
#3226Add test for MtoA ABI compatibility
#3228Curve collector transform applied twice
#3229Camera filtermap icon doesn't work
#3231Expose Transmit AOVs
#3233arnoldScene could return the list of created Arnold objects
#3236ARV : Crashes when picking on the viewer after opening a new scene
#3237Standins exported without bbox show a simple line in the viewport
#3239Export subdiv frustum culling
#1555Remove MayaShadingEngine
#2826[ARV] Show snapshots AOVs when snapshots folder is set
#2961Give autogenerated procedural Maya UIs the same features as AiStandin
#3108Replace .asstoc by .ass metadata
#2948Zoom ARV centered on cursor like Maya Render View
#3054Review MtoA debug logs
#3148Add post-translation callback
#3162Improve AOVs window
#3170Support per-camera AOV
#3174Implement Standins namespacing
#3176Procedural translator in meshes is missing parameters
#3194ARV : mid mouse button should pan the image
#3198[ARV] Support view transforms list in toolbar
#3212Add menu to create custom shapes
#3215Export XGen archives with the surface shader
#3222ARV: Enabling "use snapshots folder" should open the browser
#3225Add export full paths option in render settings