SItoA is open-sourced


First, here’s some Arnold renders of a few old-time Softimage models:

And now, here’s the announcement:

Softimage to Arnold (or SItoA), the Arnold plugin for Autodesk Softimage is being made available to the community under an Apache2.0 open source license at:

https://github.com/Autodesk/sitoa

This repository contains the official SItoA plugin source code. Solid Angle, the company behind the Arnold renderer, and now part of Autodesk, developed the SItoA plugin commercially from 2009 to 2017.

After the Softimage end-of-life announcement in April 2014, Solid Angle committed to continue the development and maintenance of SItoA for at least a year, and then extended this period until July 2017, porting SItoA to the new Arnold 5 API along the way.

Governance
 

Please submit your issues and pull requests on github, the old Trac server will remain available for a while as read-only but we won’t accept any new users.

We will continue to monitor and review pull requests submitted to this repo on a voluntary basis, but will not release official builds any more.

Acknowledgments

Before it was open-sourced, throughout the years, SItoA has been developed by:

  • Luis Armengol
  • Borja Morales
  • Stefano Jannuzzo

With contributions by:

  • Andreas Bystrom
  • Steven Caron
  • Julien Dubuisson
  • Steffen Dunner
  • Michael Heberlein
  • Paul Hudson
  • Halfdan Ingvarsson
  • Vladimir Jankijevic
  • Alan Jones
  • Guillaume Laforge
  • Thomas Mansencal
  • Helge Mathee
  • Eric Mootz
  • Holger Schoenberger
  • Frederic Servant
  • Jules Stevenson

Special thanks to all the users who passionately provided feedback, production assets, bug reports and suggested features during those years.

[SItoA] Understanding the Object color mode of the Utility shader


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:
utility_color_mode

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.

[SItoA] Arnold, ICE, and Shapes


particle_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.

ICE Shape Arnold Shape
Point points (mode “disk”)
Disc disk
Rectangle box (with 0 height)
Box box
Sphere points (mode “sphere”)
Cylinder cylinder
Cone cone
Instance Shape ginstance

The Segment, Capsule, and Blob shapes are not supported. SItoA skips them and they are not translated into the Arnold scene source.

[SItoA] Subdivision settings for polygon meshes


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-4.1.3.3\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_iterations
  • subdiv_pixel_error
  • subdiv_adaptive_metric
  • 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.

[SItoA] Uninstalling SItoA


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.

ArnoldRender.preset

Using gobos instead of IES lighting profiles


Arnold 4.0.16 added photometric lights, which can use IES light profiles.

Arnold does not support IES lighting profiles [generally, IES profiles are not used a lot in film/VFX work]. Most of the time, you can do what an IES light does by using an appropriate gobo (aka a slide projector). For example, SHED used gobo lighting in place of IES on their recent IGA Aide Gourmet spot.

SHED created their own gobo filters to create a similar look to IES lights

[SItoA] Expressions for standins of animated sequences


A standin can load an animation sequence, such as circling_cubes.[1..25].ass.
For example, if you open an Arnold_Standin property, click Browse, and select a sequence, Softimage automatically inserts a [Frame] token into the file name:

standin-path

By default, that [Frame] token resolved to the current frame, but you can override that and use an expression to drive the sequence.

For example, if you have a 25-frame sequence of ASS files, you may want to play the 25 frames and then stop. To do that, you could use this expression:

 
MIN(Fc,25)
 

If you wanted to continuously loop the 25 frame sequence, you could use an fmod (modulo) expression like this:

 
cond( fmod( Fc, 25 ) == 0, 25, fmod(Fc,25) )
 

And if you wanted to show just frames 10 to 25, you could use this expression:

 
cond( Fc<10 , 10 , MIN(Fc,25) )
 

If you’re not sure about these expressions, try playing with them in the Expression Editor. As you move through the timeline, watch the Current Value update in the Expression Editor.
fmod_expression

[SItoA] Adjusting camera exposure


Arnold added support for per-camera exposure awhile ago:

Camera exposure control: All cameras, even custom cameras, have an exposure parameter that scales the pixel samples by 2 ** exposure . Increasing the exposure by 1.0, or one stop, produces an image twice as bright, while reducing the exposure by one stop produces an image half as bright. The default value is 0 for backwards compatibility. You can also control this in in kick with the new -e option.

In Softimage, you can access the exposure parameter though the User Options.

user-options-camera-exposure