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.

Softimage standalone licenses and Arnold

Someone asked me if they could use Arnold with a standalone Softimage license.

Yes, of course you can. You can use Arnold with a trial version of Softimage; the Arnold license is completely separate. As long as you can start Softimage and load the SItoA plugin, you can render with Arnold.

The SItoA plugin itself is not licensed. It isn’t until you start a render that Arnold checks out a license.

So, how does it work if you have one Standalone Softimage license and five Arnold licenses?

  • You use your standalone license to run Softimage, build your scenes, and set up your lighting, shading, and texturing. Every time you do a render region, or render a frame, Arnold will check out a license (and check it back in when the render is finished).
  • To set up a five-node Arnold render farm, you don’t need any more Softimage licenses, because you’ll use xsibatch -processing -render to do your batch rendering. Just install Softimage on five more machines. You don’t need to activate Softimage or anything. You’ll still be able to run xsibatch -processing -render on those machines, because -processing skips the licensing check.

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

License information: using [Processing]
# INFO : [sitoa] SItoA 2.7.1 win loaded.
# INFO : [sitoa] Arnold detected.

Here’s actual proof in the form of a screenshot 🙂


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))]

Arnold licensing explained visually

As requested in the comments, here’s a visual explanation of Arnold licensing, to go along with the Softimage version I posted last week.

Suppose you had five Arnold licenses. With those five licenses, you can have five machines using Arnold to render. For example, you might have two artist workstations and three render nodes (but you can have any combination of workstations and render nodes that adds up to five).

Arnold licenses are checked out when you actually render, not when you start Softimage or load a scene. If a workstation isn’t doing a render region, or a render preview, or rendering frames, then there’s no Arnold license being used. So maybe it is more accurate to think of it like this:

Arnold licenses are per machine, so all processes on the same machine share the same license. Note that you can limit the number of threads per render if you want to run multiple renders on one machine.

Help! My Arnold render channels are missing

If you don’t see any of the Arnold render channels (like Arnold_Alpha or Arnold_Opacity), open up the script editor (press ALT+4) and run the SITOA_CreateRenderChannels() command.

Tip – You can avoid this by making Arnold the default scene renderer. The SITOA plugin will then make sure the Arnold render channels exist (by calling SITO_CreateRenderChannels from OnNewScene and OnStartup events).
hat tip to Francois Lord for pointing this out

# Python
// JScript