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.
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).
To show you where the polygon mesh subdivision settings are in Softimage, I’m going to start in Arnold and work back into Softimage via SItoA.
So, let’s start with an Arnold polymesh shape, which has a number of subdivision parameters:
C:\solidangle\Arnold-188.8.131.52\bin>kick -info polymesh | find "subdiv"
ENUM subdiv_type none
BYTE subdiv_iterations 1
FLOAT subdiv_pixel_error 0
NODE subdiv_dicing_camera (null)
ENUM subdiv_adaptive_metric auto
ENUM subdiv_uv_smoothing pin_corners
BOOL subdiv_smooth_derivs false
In Softimage, you access most of these subdivison parameters by adding an Arnold Parameters property to a polygon mesh (you can’t add new parameters to Softimage built-in objects like a PolygonMesh, so we have to use a custom property).
- subdiv_smooth_derivs (Shape group)
Other Arnold subdiv parameters are mapped to existing Softimage parameters:
- subdiv_uv_smoothing is mapped to Smooth when subdividing in the
Texture Projection Property Editor. If Smooth when subdividing is enabled, then subdiv_uv_smoothing is set to pin_corners; otherwise, it’s set to linear.
- subdiv_type is mapped to the Subdivision Rule list in the Polygon Mesh property editor. Linear goes to linear, and anything else (XSI-Doo-Sabin, Catmull-Clark) goes to catclark.
Finally, subdiv_dicing_camera is on the Subdivision tab of the global Render Settings.
When you install an addon like SItoA, you may see an error like this the next time you start Softimage:
// ERROR : 2356 - This plug-in is not installed: ArnoldRenderPreferences
That’s because addons like SItoA install custom preferences, which are left behind when you uninstall the addon. At startup, Softimage finds the custom preference but can’t find the plugin that owns the preference (because it’s been uninstalled).
To get rid of this error, go to your Softimage user folder, and delete the Data\Preferences\Arnold Render.preset file.
A simple example of using a Color4 Passthrough to create a custom AOV. In this example, I’m using Store Color in Channel to put a per-object Alpha in the custom AOV. I could easily use overrides to do this on a per-partition level.