Stand-ins connected to Particle Instancer (rollover image)
In MtoA, you can export any object as an .ass file. A Procedural references the .ass file on disk (or other procedural formats supported by Arnold such as .obj, .dll, .ply, etc). Stand-ins allow you to keep your working scene light and workable by deferring the loading of geometry data until render time (when a ray hits the bounding box of the stand-in).
An 'Introduction to Stand-Ins' tutorial can be found here.
The work-flow is as follows. Before you can use stand-ins, you will have to first export some geometry to be used later.
To export the geometry you must:
- Select the geometry you want to export.
- Go to the Arnold > StandIn > Export menu option.
- Choose a name for your archive.
You may export single objects as well as a whole hierarchy made out of multiple objects. You can also export single or a sequence of frames. In this situation, the frame padding value of the Maya renderer options will be used in the names of the ass files.
During export, Arnold's current render settings will be used. Therefore, you should finalize these settings before exporting the stand-in. For example, you should choose whether you wish to export with motion blur enabled or not.
To use the stand-in, you need to create a stand-in primitive. Use either File > Import, File > Create Reference, or Arnold > StandIn > Create (whichever is most convenient to you, the same dialog will be shown), and specify the archive to be used.
Note that in addition to archive (.ass) files, pre-compiled custom procedural programs in the form of a dynamic library can also be loaded at this point, though none are shipped with MtoA currently.
Import .ass file as Stand-in
This will create a stand-in node which you can use in place of regular geometry. The attributes of the Stand-in node are described below.
If you experience slow down in Maya's viewport when viewing the Stand-In, try exporting the ass file with Maya's 'Bounding Box' display override enabled for the mesh.
Stand-ins are supported via the StandIn node. This node has the following parameters:
The path to the archive (.ass) or the compiled procedural program (.dll or .so).
There is an automatic sequence recognition in the case of an archive.
The padding patterns have this form:
- name.#.ext - e.g. name.1.ext, name.2.ext, name.3.ext, ... , name.10.ext, ... , name.100.ext, ...
- name.##.ext - e.g. name.01.ext, name.02.ext, name.03.ext, ... , name.10.ext, ... , name.100.ext, ...
- name.###.ext - e.g. name.001.ext, name.002.ext, name.003.ext, ... , name.010.ext, ... , name.100.ext, ...
- name####.###.ext - indicates four digit padding for frame numbers and three digit padding for sub-frame digits.
For example: If we point to a file called, test_001.ass it will be recognized as a sequence pattern in the form of test_###.ass.
If you want to override the automatic sequence recognition, we can manually change the path string and remove the padding pattern with the corresponding filename.
This string parameter is used to pass parameters that are parsed by the procedural program and can be used for its creation/initializations. The format of this string is not standard and is dictated by the particular implementation of each procedural program. A better and more compact way of passing parameters and data to the procedural is through user data.
Display mode of the procedural.
The frame to read that will replace the pattern defined in the Use Frame Extension checkbox. You need to put a Maya expressions ('frameNumber = frame') to get a sequence of stand-in be loaded across the different frames.
Offset to the current frame. This allows the same animation sequence to be used while creating different procedurals.
The loading of the stand-in will be deferred at render time until a ray hits its bounding box for the first time. Disabling it will make Arnold load the stand-in at render initialization.
Defer StandIn Load must be disabled when a procedural has a light inside. Lights can only be expanded correctly when the procedural they belong to is expanded at render initialization.
A scale factor applied to the bounding box before it is set as the procedural bound. If the stand in contains a poly mesh with a displacement map it might be necessary to rescale the bounding box, should the shaders displacement values change.
The Render Stats section lets you turn on or off various rendering options for selected stand-ins.
Override Standin Light Linking
If enabled, the light linking of the aiStandin node is applied to all objects in the stand-in.
Override Standin Shaders
If enabled, shaders applied to the aiStandin node override the shaders on all objects in the stand-in.
Overriding shaders does not override displacement maps. Displacement is handled separately by Arnold: when a scene is translated to Arnold by MtoA, the displacement is not part of the "shader" applied to an object.
The On/Off switches will override the values set within the procedural file. 'Mute' (set by default) uses the values set within the procedural file.
There are some extra attributes (that are hidden from the user), such as 'overridePrimaryVisibility', 'overrideOpaque' etc. These are located at the bottom of the 'Extra Attributes' in the 'Attribute Editor' of the stand-in (see below). If you use the Mute/On/Off controls, MtoA will automatically update the appropriate check boxes under Extra Attributes.
For example, to override 'Primary Visibility', you must also enable the attribute 'overridePrimaryVisibility' (see example below).
You can use proxy geometry to represent a stand-in using the Arnold Procedural Translator for a mesh. This feature uses the mesh's bounding box information from Maya. If the stand-in is clipped, you can disabling Defer Procedural Load, or use the User Options to set the procedural min and max (for example: min -1 -1 -1 max 1 1 1).
Polymesh procedural translator
Some users may be in a studio environment where a combination of Maya, Softimage, Houdini and C4D are used.
It is perfectly possible to export .ass stand-ins from MtoA and re-use them in SItoA or HtoA (and vice versa), as long as Arnold can find both MtoA and the SItoA/HtoA shaders. In order to do this you must ensure that the Arnold shader path environment variable ARNOLD_PLUGIN_PATH is set to pick up both sets of shaders.
If you want motion blur on a Stand-in, you will have to export the Stand-in with motion blur enabled.
Procedural formats supported by Arnold include .obj, .dll, .ply, etc). These models can be opened and rendered directly within MtoA as an Arnold Procedural.
116 million polygon Stanford .ply model rendered directly as a stand-in. .ply models can be downloaded here.
The Utility shader's Object mode does not work with stand-ins. This is a known limitation with MtoA.
The color of the two spheres change when the Utility shader's mode is set to 'Object' . However, the stand-ins color remains the same (rollover image).
Further examples of Stand-ins