SItoA 3.5 includes the Volume primitive and a OpenVDB volume plugin, so you can render VDB files in Softimage.
Category Archives: Rendering
[SItoA] Installing the alShaders in Softimage
Cross-posted from the Arnold Support Corner.
Here’s how to install third-party, SPDL-based shaders, like alShaders, so that you can use them with SItoA.
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).
[Arnold] Rendering XGen in Softimage
That mohawk-like hair on his head? XGen primitives (splines). Created in Maya, rendered in Softimage.
- Export an ASS file with XGen stuff from Maya.
- Set the PATH to include the Maya plug-ins\xgen\bin and bin folders.
set PATH=%PATH%;C:\Program Files\Autodesk\Maya2014\plug-ins\xgen\bin;C:\Program Files\Autodesk\Maya2014\bin
- Add the MtoA shaders and procedurals to the search paths in the Arnold Render Options.
- Add an Arnold Standin property to a mesh and point it to the ASS file.
- And that’s it!
How many Softimage licenses do you need for an Arnold render farm?
None, not for the render farm itself. You just need Arnold licenses for the render nodes. You need Softimage licenses for artist workstations; on the render nodes, you’ll be using xsibatch -processing -render to render (and -processing doesn’t take a Batch license for third-party renderers).
You wouldn’t need Maya Batch licenses for Arnold render nodes either. The Maya render/mayabatch command line tools won’t take a Batch license for third-party renderers either.
In the real world, indirect lighting comes from diffuse reflections: light reflecting off of nearby surfaces. In the rendered world, a camera ray hits a shading point on an object, and from that point diffuse rays are sent out to sample colors from surrounding objects.
Here’s my version of a typical diffuse ray diagram, done with a few vectors and Show Values in ICE.
Unlimited batch rendering with xsibatch -processing
Hat tip: Andy Jones on the Softimage mailing list
You can use xsibatch -processing to render scenes with third-party renderers like Arnold. With -processing, xsibatch uses a Processing token instead of a Batch license, so you’re not limited by the number of Batch licenses you happen to have. Back in the days before third-party renderers, -processing for was for non-rendering tasks. Now it’s for non-mental ray tasks!
I was sure I tested this long ago, but obviously I must have made a mistake on my command line.
xsibatch -processing -render //server/project/Scenes/example.scn ======================================================= Autodesk Softimage 18.104.22.168 ======================================================= License information: using [Processing] # INFO : [sitoa] SItoA 2.7.1 win loaded. # INFO : [sitoa] Arnold 22.214.171.124 detected.
Here’s actual proof in the form of a screenshot 🙂
Assigning a per-object random value with ICE
Suppose you want to use an ICE attribute to drive some behavior in the render tree. For example, you may want to introduce some randomization to a procedural texture. Here’s one way to go about it.
First, create an ICE attribute on each object. You’ll use this object as the seed for the Random Value node (you need a different seed for each object, otherwise you’ll get the same “random” number for each object).
si = Application i = 0 for o in si.Selection: a = o.ActivePrimitive.Geometry.AddICEAttribute("_seed1", 2, 1, 1 ) a.DataArray = [ (i) ] i = i + 1
Now apply a simple ICE compound to each object.
All the compound does is feed the seed into a Random Value node, and store the random value in another ICE attribute.
Using an ICE attribute to drive a procedural texture
Here’s a simple example of using an ICE attribute to drive a procedural texture. In this case, I’m using a random integer to drive the number of repeats of a checkerboard:
To set it up, I ran this script to programmatically add an ICE attribute. Unfortunately, I found I had to add an ICE tree to get the attribute to show up in the render tree.
import random si = Application for o in si.Selection: # Long, Single, Singleton a = o.ActivePrimitive.Geometry.AddICEAttribute("_random", 2, 1, 1 ) a.DataArray = [ (random.randint(1,8))] si.ApplyOp("ICETree", o, "siNode", "", "", 0)
Then in the render tree I used Integer Attribute node to get the attribute value. This same material is applied to every cube in my example.
And if you wanted to update the ICE attribute later, eg increase the range of random values, you could do something like this:
import random si = Application for o in si.Selection: a = o.ActivePrimitive.Geometry.ICEAttributes("_random") a.DataArray = [ (random.randint(1,12))]
Help! My Arnold render channels are missing
Arnold gamma correction settings
In this video, I take a quick look at the different gamma correction settings used by Arnold. I don’t tell you how to set up a linear workflow; my goal is to help you understand what the gamma correction settings mean.