There’s an Arnold error that recommends setting the load_at_init parameter, but people don’t always know where to find that in their favorite Arnold plugin.
ERROR| [proc] c4d|Arnold_Procedural: bounds supplied to procedural node are not large enough to contain the actual underlying geometry.
Replace given bounds: (-1, -1, -1) X (1, 1, 1), with: (-9.4028616, -9.43616867, -9.21633244) X (9.3304739, 9.43616867, 9.21633244).
Setting the procedural's load_at_init parameter to true would also fix this.
The load_at_init parameter controls whether the procedural (standin) is loaded during scene intialization (before rendering starts), or during rendering (when a ray hits the procedural bounding box).
By default, load_at_init is false, which means that procedural loading is deferred until render time.
And so, in MtoA, C4DtoA, and SItoA, the load_at_init parameter is exposed as Defer Standin Load, which is enabled by default. In HtoA, you have a Load At Init parameter on for the Arnold Procedural node.
As of Arnold 184.108.40.206, the minimum Windows version is Windows 7. We no longer support Windows versions before Windows 7 and Windows Server 2008 R2.
This applies to all plug-ins (such a MtoA 1.2.02 and later, or SItoA 3.4 and later) that use Arnold 220.127.116.11 or later.
If you try to load an Arnold plugin on an unsupported Windows, you’ll get an error (something like “The specified procedure could not be found”).
On Vista with Arnold 18.104.22.168 or later, kick -nodes gives you a more specific error:
"kick.exe - Entry Point Not Found"
"The procedure entry point SetThreadGroupAffinity could not be located in the dynamic link library KERNEL32.dll."
If you want to set multiple Arnold parameters in a User Options string, you can use any whitespace (spaces, tabs, newlines eg \n) that you would use in an actual ASS file.
For example, this:
enable_procedural_cache off error_color_bad_pixel 1 .25 1 declare test constant FLOAT test 2
would add these lines to your options node:
error_color_bad_pixel 1 0.25 1
declare test constant FLOAT
Note: Plugins like MtoA and SItoA use AiNodeSetAttributes to set the user options.
The User Options string is a way to set parameters that are not exposed by the plugins. MtoA provides a User Options string for the render options and for shapes. SItoA also has User Options strings for render options and shapes.
Here’s how to install third-party, SPDL-based shaders, like alShaders, so that you can use them with SItoA. You could install them in a separate workgroup, but for simplicity I’m going to show how to install them in the SItoA workgroup.
In these instructions, $AL_SHADERS is the location where you extracted the alShaders download. For example,
$SITOA_WORKGROUP is the SItoA workgroup location. For example,
Copy the alShader DLLs from
Create a spdl folder in your Addons\SItoA\Application folder:
Copy the alShader spdl files from
- Restart Softimage. The alShaders should show up in the Render Tree preset manager, and assuming that your version of alShaders is compatible with your SItoA, they’ll work in a render too.
Tip Don’t create an alShader from the Arnold > DLL Shaders menu; it won’t pick up the SPDL and you’ll get a raw PPG (and a raw render tree node too).
SItoA includes Arnold versions of the Softimage Vector State and Vector Scalar shaders, which you can use to do build a “distance between” shading network.
Vector State can get you the origin point of a ray and its intersection point, and Vector Scalar can get the distance between those two points.
You can even use these shaders in Maya (since they are just Arnold shaders). Just put sitoa_shaders somewhere in the ARNOLD_PLUGIN_PATH, and MtoA will load them. The shader UI in the Attribute Editor will be very basic (for example, integer input fields instead of drop-down lists), but you can use the shaders.
The Utility shader has an Object color mode that assigns colors to objects based on names. Each shape (for example, a polymesh shape or a curves shape or a box shape) gets a unique color, because each shape has a unique name.
If you’re working with SItoA, you may have noticed that the object color changes with each frame:
That’s because SItoA gives shapes names like Elephant.Elephant_Mesh.SItoA.4000, which change with every frame.
MtoA doesn’t use the current frame in shape node names, and neither does HtoA (by default). However, HtoA does provide an option for adding a suffix, like the frame number, to the shape node name.
Arnold nodes can have user-defined parameters, like MyColor in this ASS snippet:
declare MyColor constant RGBA
MyColor 0.703999996 0 0.526000023 1
In Softimage, there are a number of ways you can assign data like MyColor to a polygon mesh. You could use ICE:
Or you could use the Arnold User Options property:
To access MyColor in the render tree, use the Color Attribute shader:
If you used ICE, MyColor will appear automatically in the Attribute list. But if you used the User Options property, you’ll have to use a script one-liner to set the Attribute value. That’s because Softimage doesn’t know about the user parameters on Arnold nodes: those come into existence only when SItoA translates the scene to Arnold.
Application.SetValue("Sources.Materials.DefaultLib.Material.Color_Attribute.attribute", "MyColor", "")
On a related note, the MtoA shader userDataColor does the same thing as the SItoA Color Attribute shader: it uses AiUDataGetRGBA() to get a color from a user parameter on the object being shaded. With SItoA 3.0, the Arnold > DLL Shaders menu makes it pretty easy to use an MtoA shader in Softimage.
For the Point, and Sphere particles shapes, you get a single Arnold points node. For example, for the Sphere shape, you’d get a points node that looked something like this:
points 54 1 b85POINT
radius 54 1 b85FLOAT
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
This particular node is for 54 points in sphere mode. For each point, you get the center position (the points.points parameter) and a radius (the points.radius parameter). If there’s any scaling applied to the particle in ICE, the radius is multiplied by the X scaling of the particle.
For the Point shape, you get an Arnold points node in “disk” mode, with radius = size * X scaling.
For the other supported shapes, you get the corresponding Arnold shape.
SItoA translates ICE particle shapes to native Arnold shapes. The supported particle shapes are already documented here, but here’s a little more information about how they are translated.
||points (mode “disk”)
||box (with 0 height)
||points (mode “sphere”)
The Segment, Capsule, and Blob shapes are not supported. SItoA skips them and they are not translated into the Arnold scene source.
The Arnold Utility shader has an Object color mode, which assigns colors based on shape names. When we say “shapes”, we don’t mean Maya shape nodes; we mean the Arnold shapes.
C:\solidangle\mtoadeploy\2014\bin>kick -nodes | find "shape"
All these nodes have a name parameter (for example, polymesh.name) that is a unique string identifier in the Arnold universe. So when you use the Object color mode, you get a unique color for each node.
If you’re using Softimage, note that SItoA puts the frame number into polymesh.name, so you’ll get a different color on each frame if you use the Object color mode. For example, on frame 5 a polymesh might be named “Dog_Mesh.SItoA.5000”, and on frame 6, “Dog_Mesh.SItoA.6000”.
In this render region comparison, you have frame 5 on the left, and frame 6 on the right:
In a case like this, you would use the Object ID color mode instead. SItoA automatically assigns unique IDs to the shape nodes (MtoA doesn’t).