In SItoA, you can use any shape as a stand-in (also called proxy or placeholder) by applying a Standin property to it, that references an .ass file on disk (or other procedural formats supported by Arnold such as .obj, .dll, .ply, etc). The object is exported as an Arnold procedural node.
To apply it, select an object and run either:
- Get->Property->Arnold Properties->Standin
- SITOA_AddStandinProperties (script editor).
The Arnold Standin property
The full path to the file to be loaded. Valid extensions are
.ass, .ass.gz, .obj, .obj.gz, .dll (Windows),
The path string supports the use of Softimage tokens. For example,
c:\temp\dummy.[Frame].ass is resolved with the current rendering frame when rendering a sequence.
Tokens support padding and shifting. So,
c:\temp\dummy.[Frame #4 +2].ass is resolved as
c:\temp\dummy.0022.ass at frame 20.
If Override Frame is on, the Frame value is used to resolve the Path's [Frame] token (if it exists). For example, you can have Frame defined by an expression, and still benefit from the Path padding and shifting syntax. If Path is not a sequence, these parameters are not used.
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.
Currently only one compiled procedural is available in SItoA, the sitoa_curves_proc, which is used to render hair objects, and uses a hair .bin file as data. The Data parameter is enabled only if the Path extension is either "dll" or "so". Data also supports tokens, and is resolved after evaluating Override Frame and Frame.
If enabled, the Softimage tokens are resolved for the Data string as well.
Tells Arnold what bounding box to use for the deferred loading. Options are:
• From Object: use the bounding box of the place-holding object. If the bounding box of the place-holding object is smaller than the objects contained in the .ass file, the .ass shape will crop to the object's box size, and Arnold will issue an "incorrect bounds" error message.
• From .asstoc File: read the bounding box from the asstoc file generated at export time for each exported .ass file.
A scale factor applied to the bounding box before it is set as the procedural bounds.
If enabled (Mute off), each row of the grid can define a user data by its Name, Structure, Type and Value. You can add a row by clicking New Data, or delete an existing one by selecting it and clicking Delete Data.
Value can contain Softimage tokens, that are resolved if Resolve Tokens is enabled.
Structure can be either SINGLE or ARRAY, the Type can be BOOL, INT, VECTOR, POINT, etc.
The syntax to use for the Value depends on the structure and the type.
If the structure is SINGLE, and the type is made of a single element (bool, int, float) just type the plain value. Instead, if the type is a vector, point, etc, each field must be separated by a white space.
If the structure is ARRAY, the array members must be separated by a ',' character.
As an example, here is a list of valid entries, and the corresponding section of the exported ass file.
A typical usage of the standin property is to replace an ICE instance shape with complex geometry, as shown below. Because of the number of objects in the model, having all that geometry in the scene would make the export time rather long.
Referencing the archive, on the other hand, makes the render start in a matter of seconds.
For more information, see the ICE page.
If you want motion blur on a Stand-in, you will have to export the Stand-in with motion blur enabled.
We use the following convention: if the material of the placeholder object is called Scene_Material or Standin_Material, then the original shaders are used, i.e. the shaders stored in the .ass (or other types of procedural).
Else, the material applied to the placeholder propagates to the stand-in, allowing you to, for instance, render an occlusion or matte pass from the stand-ins without having to export an .ass file with that material already applied. In the image below, we override the native elephant's material with a utility shader, getting its color from the Color attribute set by ICE.
Properties (Visibility, Sidedness, User Options ...) applied to the proxy object propagate to the objects generated by the procedural.
The SITOA_Viewer graphic sequencer allows you to preview the content of the procedural in the viewport.
The Utility shader's Object mode does not work with stand-ins. This is a known limitation.
The color of the two spheres change when the Utility shader's mode is set to 'Object' . However, the stand-in's color remain the same (rollover image).