November 10th, 2017
This version uses the Arnold 220.127.116.11 core.
MtoA 2.1.0 is the version included in Maya 2018 Update 2. It contains lots of improvements and bugfixes.
The AOV editor has been refactored to simplify the use of recent AOV controls :
- Selecting an AOV row in the AOV browser selects the AOV node in the attribute editor for simple editing.
- Cryptomatte AOVs just need to be added to the list of Active AOVs. This automatically creates/selects the corresponding shader to edit its parameters, and adds it to the list of AOV shaders.
- Light Group AOVs are now much easier to set. It is possible for each "lighting" AOV to decide if it needs to be rendered "globally", or "per-light-group", or for a specific list of light groups.
- Light Path Expressions (LPE) can be filled with a menu icon. It includes the list of available LPE tokens, as well as the LPE expression for builtin AOVs.
- Optional Camera parameter can be used to set a specific camera to an AOV. This only works with the batch render.
A video showing the AOV improvements in MtoA 2.1.0 can be found here.
Arnold RenderView (ARV)
- Support Snapshot AOVs, when a snapshots folder is set.
- Zoom is now centered on the mouse cursor (this can be disabled by the option Window->Mouse Centered Zoom).
- Mid-mouse button now pans the image.
- A/B handles are now always visible.
- View Transform list can be added to the toolbar.
- Opening ARV without rendering now shows the correct resolution, which allows seeing previously stored snapshots correctly.
- Enabling snapshots folder automatically opens the folder browser.
- The cameras list is now always up-to-date with Maya, even when a new camera is created, or when ARV is opened without rendering.
- Opening and closing the snapshots library or the display settings will now resize ARV properly unless it's docked in the Maya UI.
- Added an option Window->Shape Picking to disable the shapes selection when clicking on the viewer.
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:
- Self-reflections are no longer rendered.
- New parameter background can either be set to scene_background (default) or background_color, which allows connecting a specific texture in the shadow matte's parameter background_color.
- Image planes were not seen by shadow matte secondary bounces.
- Shadow matte indirect illumination now fills the builtin AOVs diffuse_indirect and specular_indirect. The previous AOVs (and confusingly named) indirect_diffuse and indirect_specular owned by shadow_matte have been removed.
- Parameters offscreen_color and background_type were removed.
- Parameter alpha_mask was added to control whether the alpha must be opaque or if it has to contain the shadow mask.
- Indirect Specular now has Fresnel enabled, controlled by specular_ior.
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 18.104.22.168 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.
- When a mesh is rendered with "Translator" set to "procedural" in order to behave like a standin, it now has the same full set of features than the standin (overrides shaders / visibility / animated standins, etc..).
- Since Arnold 5, StandIns can only reference .ass files. Loading custom procedurals (.dll, .so, .dylib) has now to be done through specific nodes, which can be complicated to handle for procedurals that aren't part of a MtoA extension. This was improved in MtoA 2.1.0 , where custom procedurals having the metadata "maya.procedural" enabled will automatically appear in the Arnold menu "Custom Shapes". The Attribute editor will display the procedural's attributes, as well as the common shape parameters, so that all the StandIn features (override shaders/visibility, etc.) can now be used in custom procedurals as well. See documentation 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").
- asstoc files are no longer exported. The bounds information is now stored in metadata in the .ass file itself.
- Orientation in XGen interactive groom splines (when "face camera" is disabled) is now supported.
- Post-Translation callbacks are added in the Render Settings, in order to edit the scene between export and render.
- "Transmit AOVs and Alpha" was added to aiStandardSurface. It allows passing of AOVs through transmissive shaders.
- MtoA debug translation logs are now rendered separately, to avoid confusion with Arnold debug logs, which were getting too big and cluttered. They are now enabled by parameter "MtoA Translation Info" and now appear in Maya logs (instead of Arnold logs).
- Added support for light groups in volume rendering.
- Improved flakes shader makes it easier to control the amount and size of flakes.
- Cellular option in triplanar shader: The triplanar shader now supports projection through Voronoi cells using the new cell parameter. The rotation angle of the projected texture for each cell can be controlled with the cellRotate parameter. Cells can be smoothly blended using the cellBlend parameter.
- Support for more OSL attributes: OSL shaders now support getattribute() lookups of standard camera attributes (e.g. camera:fov, camera:resolution, etc) as well as the geometry attributes geom:type, geom:name, geom:bounds, and geom:objbounds on objects.
- Duplicating a node was resetting its aiTranslator parameter. For example, duplicating an area light was always resetting it to "quad light".
- LookDevKit shaders could fail in batch rendering.
- XGen archives were randomly missing shaders in interactive renders.
- In Maya 2018, opening the Render Settings was triggering an IPR refresh.
- Scenes containing a large number of AOVs are now much faster to load in Maya.
- Set Overrides can now be applied to the whole Maya hierarchy, which allows overriding multiple nodes simultaneously.
- Fixed race condition that could cause some shapes to be randomly missing from the render.
- Motion Vector AOV was empty when the shutter was set to "End on Frame".
- StandIns were sometimes displayed as a simple line in the viewport.
- The removal of MayaShadingEngine shader could introduce regressions in any pipeline expecting it to be present at the root of all shading trees. Previously XGen archives could also fail to load in some cases. As a workaround, a temporary parameter Export Shading Engines (Legacy) was added in the Render Settings (in Tab "System").
- aiShadowMatte changes: The shader AOVs indirect_diffuse and indirect_specular were removed since the shader now fills the corresponding built-in AOVs. Parameters offscreenColor and backgroundType were removed. Specular reflection is now affected by Fresnel. To roll back to the previous specular behavior, set specularIOR to a high value like 100, which effectively disables the Fresnel effect.
- The flakes shader has been changed, to simplify the control of the number and density of flakes.
- motionvector AOV: The motion vector scaling factor in the built-in motionvector AOV has changed. This was required to fix a bug that caused zero motion vectors for certain shutter positions. The output from the aiMotionVector shader is unchanged: it can be used as a workaround in your old scenes if you require the previous scaling.
|#2665||Can't resize programmatically ARV in Maya 2017|
|#3208||lookdevkit shaders don't batch render when you load MtoA with userSetup.mel|
|#2093||Intensity attribute in the mesh_light should be a slider|
|#2105||Enlarge post, pre render mel callbacks interface|
|#2600||Camera Filtermap icon does not work|
|#2732||Add XGen orientation to Arnold curves|
|#2835||Duplicating an object resets aiTranslator|
|#2855||All previously-installed versions of MtoA appear in Start > All Programs in Windows 7|
|#2922||Minimum pixel width crashes|
|#2939||mtoa_shaders loaded twice|
|#2946||Errors of "Extension already managed" on Linux and Mac with latest MtoA|
|#3107||Risk of clashing node names in onConnectionChanged callback.|
|#3115||Large numbers of AOVs slow scene open time|
|#3149||Resize ARV in Maya 2018 when needed|
|#3178||IPR restarts render when opening the Render Settings window (Maya 2018)|
|#3180||Regression in AOVs during batch render|
|#3181||Geometries randomly missing|
|#3183||shadow_matte AOV indirect_specular isn't exposed|
|#3184||Image plane not seen by Shadow Matte secondary bounces|
|#3185||Add offscreen_color to Image Plane|
|#3187||Render setup regression tests fail if MtoA is loaded|
|#3190||IPR Update issue : changing shaders connections in shading groups|
|#3195||Expose car paint shader|
|#3197||[ARV] A/B handles not always visible|
|#3201||Export All Shading Groups not exporting displacements|
|#3203||Loading MtoA plugin in mayapy and then exiting causes crash|
|#3207||[ARV] Cameras list not always up-to-date with Maya|
|#3213||Xgen archive shaders not rendered in interactive sessions|
|#3223||ARV : Opening the viewer without rendering shows wrong resolution size|
|#3224||Rename bifrost procedural folder name to lower case|
|#3226||Add test for MtoA ABI compatibility|
|#3228||Curve collector transform applied twice|
|#3229||Camera filtermap icon doesn't work|
|#3231||Expose Transmit AOVs|
|#3233||arnoldScene could return the list of created Arnold objects|
|#3236||ARV : Crashes when picking on the viewer after opening a new scene|
|#3237||Standins exported without bbox show a simple line in the viewport|
|#3239||Export subdiv frustum culling|
|#2826||[ARV] Show snapshots AOVs when snapshots folder is set|
|#2961||Give autogenerated procedural Maya UIs the same features as AiStandin|
|#3108||Replace .asstoc by .ass metadata|
|#2948||Zoom ARV centered on cursor like Maya Render View|
|#3054||Review MtoA debug logs|
|#3148||Add post-translation callback|
|#3162||Improve AOVs window|
|#3170||Support per-camera AOV|
|#3174||Implement Standins namespacing|
|#3176||Procedural translator in meshes is missing parameters|
|#3194||ARV : mid mouse button should pan the image|
|#3198||[ARV] Support view transforms list in toolbar|
|#3212||Add menu to create custom shapes|
|#3215||Export XGen archives with the surface shader|
|#3222||ARV: Enabling "use snapshots folder" should open the browser|
|#3225||Add export full paths option in render settings|