You are on page 1of 278

User's Guide SItoA (Softimage to Arnold)

2012 SolidAngle S.L. Confidential Information - Do Not Distribute

SItoA (Softimage to Arnold)

Table of Contents
Part I Introduction 1
1 Welcome ................................................................................................................................... to the Solid Angle community! 5 2 What ................................................................................................................................... is Arnold? 6

Part II Getting started with SItoA

1 Installing ................................................................................................................................... the SItoA Add-on 9 2 Updating ................................................................................................................................... SItoA 10 3 SItoA ................................................................................................................................... Paths 12 4 Licensing ................................................................................................................................... 13

Part III Arnold Render Options

17

1 System ................................................................................................................................... 18 2 Output ................................................................................................................................... 21 3 Sampling ................................................................................................................................... 22 4 Motion ................................................................................................................................... Blur 26 5 Depth ................................................................................................................................... of Field 30 6 Subdivision ................................................................................................................................... 32 7 Ray ................................................................................................................................... depth 33 8 Gamma ................................................................................................................................... correction 35 9 Texture ................................................................................................................................... system 37 10 Diagnostics ................................................................................................................................... 39 11 ASS ................................................................................................................................... Archives 43

Part IV Additional Arnold Properties

47

1 Visibility ................................................................................................................................... 49 2 Sidedness ................................................................................................................................... 51 3 Stand-ins ................................................................................................................................... 53 4 Shape ................................................................................................................................... 55 5 Arnold ................................................................................................................................... Curves Parameters (Hair) 58 6 User ................................................................................................................................... Options 59

Part V Lights

63

1 Common ................................................................................................................................... Parameters 65 2 Cylinder ................................................................................................................................... Light 70 3 Disk ................................................................................................................................... Light 71 4 Point ................................................................................................................................... Light 71 5 Spot ................................................................................................................................... Light 74 6 Quad ................................................................................................................................... Light 77 7 Skydome ................................................................................................................................... Light 79 8 Distant ................................................................................................................................... Light 80 9 Mesh ................................................................................................................................... light 82
2012 SolidAngle S.L. Confidential Information - Do Not Distribute

Contents

II

10 Light ................................................................................................................................... Filters 87


.......................................................................................................................................................... 88 Light Decay .......................................................................................................................................................... 97 Gobo Barndoor.......................................................................................................................................................... 98

Part VI Cameras

101

1 Cylindrical ................................................................................................................................... camera 101 2 Fisheye ................................................................................................................................... camera 104 3 Orthographic ................................................................................................................................... camera 108 4 Perspective ................................................................................................................................... camera 108

Part VII Stand-ins (Proxy objects) Part VIII The SItoA Viewer Part IX ICE Support Part X Multi-Layer EXR Part XI Hair Tutorial Part XII Shaders

111 119 125 137 139 163

1 XSI ................................................................................................................................... Shaders 163 2 Arnold ................................................................................................................................... Shaders 166


.......................................................................................................................................................... 166 Am bient Occlusion .......................................................................................................................................................... 174 Standard .......................................................................................................................................................... 189 Utility .......................................................................................................................................................... 192 Wirefram e .......................................................................................................................................................... 193 Bum p2D .......................................................................................................................................................... 195 Noise .......................................................................................................................................................... 197 Hair .......................................................................................................................................................... 203 Ray Sw itch .......................................................................................................................................................... 206 Environm ent .......................................................................................................................................................... 207 Displacem ent .......................................................................................................................................................... 209 Volum e Scattering .......................................................................................................................................................... 215 Motion Vector .......................................................................................................................................................... 216 Skin SSS Shader

Part XIII SItoA Commands Part XIV Tips and Tricks

219 223

1 Transparency ................................................................................................................................... (Refraction and Opacity) 223 2 Image ................................................................................................................................... Based Lighting in Arnold 232
232 The Sky.......................................................................................................................................................... Shader ......................................................................................................................................................... 235 Getting rid of noise .......................................................................................................................................................... 241 The Skydom e light .......................................................................................................................................................... 247 Other w ays to reduce noise

3 Fireflies ................................................................................................................................... 249 4 More ................................................................................................................................... about paths 255

Part XV Arnold Rendering FAQ


2012 SolidAngle S.L.

259
Confidential Information - Do Not Distribute

II

III

SItoA (Softimage to Arnold)

Part XVI SItoA Usage FAQ Index

271 0

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Introduction

Section 1 Introduction
This manual introduces SItoA, a plug-in for Autodesk Softimage which allows you to use Arnold rendering directly in Softimage. Before beginning, you should read the Welcome to the Solid Angle community section, which contains useful links to further resources (such as on-line information and mailing list), and the sections on installation and licensing.

This manual is currently a work in progress, and is by no means an exhaustive guide to Arnold rendering. We hope to post revisions on-line on a regular basis, but in the meantime we've included a Tips and Tricks section with some of the more important things you should know about, as well as a simple FAQ list. Remember that further useful information is available on-line, via the Arnoldpedia or you can post questions in the mailing list. Also, don't forget to look at the Tutorials manual - we are adding new tutorials all the time.

What's new in Version 2.4


SItoA version 2.4 is based on version 4.0.7.0 of the Arnold core. New features include: Ray traced BSSRDFs: A new alternative to point-cloud subsurface scattering has been added. This method is brute-force ray-tracing based, but produces visually identical results to the pointcloud technique. This approach removes a number of shortcomings of the pointcloud method, trading them for unbiased noise instead. The new method consumes zero extra memory, supports motion blur, supports interactive relighting, is fully multi-threaded, starts up immediately and does not degrade in performance as the scattering radius shrinks. For backwards compatibility this is provided as an option, with point clouds being the default setting. To use ray traced subsurface scattering, check the Raytraced option from the Sampling controls dialog. Mesh light: There is a new type of light available called mesh_light which takes a polymesh as a parameter and emits light using the polymesh's surface geometry. Read the mesh light topic for more details. A number of other improvements in the Arnold core are of interest: Improved sampling at secondary bounces: The 2D sampling patterns generated by Arnold will now be stratified even for secondary bounces instead of reverting to fully random sampling as before. This can greatly reduce the amount of noise, particularly when rendering things that are seen

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

SItoA (Softimage to Arnold)

through near-specular effects like glossy reflections or refractions Improved sampling for SSS Point cloud: When baking diffuse lighting calculations into the SSS pointcloud, Arnold now uses MIS (multiple importance sampling) to reduce noise from large nearby area lights and the skydome. This may increase the number of rays slightly, but give higher quality sampling in those cases Improved smoothed normals: The quality of the smooth shading normals stored per-vertex in triangular tessellations has been improved by adjusting the weights used to average the triangle normals around a vertex. In addition to triangle area, the weights now factor the angle between the two triangle edges containing the shared vertex. This will be most evident for coarse meshes where the face normal and the smoothed vertex normals substantially differ. Note: We have finally removed support for Softimage 2010 in this release.

Other recent releases


Version 2.3 SItoA version 2.3 is based on version 4.0.6.0 of the Arnold core.

Highlighted new features: A new property, Arnold User Options, has been added. This is a general purpose property, consisting of a string, and flag to 'mute' (ignore) the property. If enabled, the string can be set to override any attribute of a core Arnold node. This can be useful for accessing new features in newer Arnold core releases even before they are fully supported natively in the SItoA UI. The property can be applied poly-meshes, hair, lights, cameras and point clouds. New spherical camera which helps to create lat-long environment maps more easily. Support for oriented curves for ICE strands. If no instance shape is in place, you can tell the curves primitive to orient the ribbons along the strand orientation directions. To do so, apply an Arnold Property to the pointcloud, and set the Curves Mode to Oriented Ribbon (ICE Strands). Export standins with all their materials and displacement for Exocortex Alembic. The Exocortex website has more details about Alembic for Arnold. The Stanford Polygonal format (.ply) has been added to the supported file extensions of standins (.ply support was added to Arnold core in 4.0.6). Added an ID mode to the utility shader to visualize a different color for each object which, unlike the obj mode which is based on the object name string, is guaranteed to not change through an animation.

New commands: The following new commands have been added:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Introduction

SITOA_ExportObjects SITOA_AddUserOptionsProperties

See the SItoA Commands section for details.

Migration Issues: Note that the SITOA_ExportScene command now no longer has a parameter toRender , this has been removed.

Version 2.2 Based on version 4.0.4.0 of the Arnold core. Highlighted new features: Softimage 2013 support. Preview standin in the viewport. See the SItoA Viewer section for details. Per-face displacement support (previously we only supported one displacement shader tree per object). Custom procedurals can be driven by data from ICE. See details here. Support for ICE materials system in Softimage 2012 and later. Custom user parameters on standins/procedural. See details here. Several new shaders ported (txt3d-marble , txt3d_checkerboard ). Gamma Workflow in the sib_image_clip shader. Check the notes at ticket#506 comment:28.

Incompatible changes: Because displacement is now handled per-face, some of the parameters that previously were assigned in the material level (in sta_displacement ) have been moved to the Arnold Parameters PPG, per object. This has the effect that displacement parameters from older scenes will break and have to be reapplied individually.

Version 2.1 Based on version 4.0.2.0 of the Arnold core. Highlighted new features: SSS Skin Shader added. *_Passthrough shaders added. Color Lookup map shader with texture map support added.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

SItoA (Softimage to Arnold)

ICE attributes on instanced lights. See Implementation details. Ability to embed a DataWindow when saving EXR files. It stores a tight bounding box around non-empty pixels in the image, which can greatly accelerate compositing operations in Nuke as it will bebe interpreted in as a ROI (Region Of Interest). Subframe deformation blur on ICE point clouds.

Incompatible changes: Displacement Height no longer affects the displaced mesh's bounding box (i.e. the displacement "padding"). Now it only sets the scale for displacement. Displacement Padding must be set separately. If Displacement Padding is not set, you may get clipping artifacts in meshes with big displacements.

Version 2.0 Version 2.0 of SItoA is based on version 4.0.1 of the Arnold core, and as such includes a number of important changes.

License: As the first version digit of the Arnold core changed, your license will need to be upgraded to remove the watermark. Contact us to obtain a new license file using the "licensing@..." email address.

Significant new features include: Transparency support for AOV. It is now possible to automatically compose through semi-opaque surfaces rendered using auto-transparency. You can enable this option (turned off by default because there is an associated performance hit in the Arnold core which will be improved for future releases) in the output tab of the renderer settings. The Hair shader now exposes direct_diffuse , direct_specular and indirect_diffuse AOVs. ICE attributes on polymesh objects. Constant, per polygon and varying data are supported. It works only with Softimage 2012 and newer. The supported attribute types are: boolean , integer , float , vector3 and rgba . Instance, 2d vectors etc. are not exported. Implemented the new handle based texture lookups in the image shader node. This can give around 1.2 times speedups in texture/autobump heavy scenes and in simple scenes with very long filenames the speedup was closer to 2 times. Smooth tangents for subdivision surfaces option. This feature only works with subdivided objects and allows to have Ward anisotropy with a non-faceted look (the object needs UV).

Incompatible changes: There are some incompatible changes introduced with Arnold 4.0.1.0. This will make older scenes to render different than in previous versions.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Introduction

Now lights have a decay control, which has been removed from the Light Decay filter. By default lights use a physically correct quadratic decay and linear and cubic light decay types have been removed. Decay clamp and Decay radius have therefore been removed from the Light Decay filter. The default value of the specular_roughness parameter in the Standard shader has changed from 0.467138 to 0.466905

Notes: Remember that now the shaders and the procedurals search path obey rules specified on the wiki here. In this version, only AOVs of type RGB support transparency.

1.1

Welcome to the Solid Angle community!

We are glad to have you join our testing and evaluation community for the Arnold renderer. Were very excited about the potential of Arnold to dramatically improve your studios ability to quickly and easily get the look youre after with both exceptional quality and performance. Your company should already have received a username and password to allow you access to our web resources - if not please contact us. Once you have these details, go ahead and log in here: https://trac.solidangle.com/sitoa This Trac system is both a wiki and an issue tracking system. The main page above is your one stop shopping place for all SItoA related information. Once you've logged in you will find links to everything you need to know including links to the pre-compiled SItoA plugins, Users Guide and video tutorial documentation, as well as information needed for those compiling the plug-in from source. The links to the pre-compiled binaries and User's Guide PDF and video require that you login with "download" using this password: "H5b12lp4". We are in the process of rationalizing access to all Solid Angle materials so please bear with us. You'll also see links to the SItoA mailing list (where you'll find the Solid Angle developers and lots of other enthusiastic Arnold users exchanging questions and answers) and other resources. SItoA mailing list: https://lists.solidangle.com/mailman/listinfo/sitoa This is the official channel for announcements and general SItoA discussion. We recommend that you subscribe right away by visiting the link immediately above.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

SItoA (Softimage to Arnold)

There is a tradition of posting your first Arnold render, so please do share yours with the community (hint: we accept furry teapots). SItoA roadmap: https://trac.solidangle.com/mtoa/roadmap A summary of anticipated features, and tickets to be addressed in the next release. To see the current and previous releases, select Show completed milestones then Update in the panel near the upper right. On the issue tracking side, from the main SItoA page you can submit issues or ask for new features by clicking on New Ticket and you can view existing issues by clicking on View Tickets.

SItoA status: https://trac.solidangle.com/mtoa/wiki/MtoAStatus https://trac.solidangle.com/mtoa/wiki/MtoAMayaShaders These links summarize which Maya features are currently supported in MtoA and which of the Maya shaders have been replicated respectively.

Arnold: https://trac.solidangle.com/arnoldpedia Contains links to Arnold tutorials, examples, FAQ, API reference and other documentation. If you would like anything to be added here, please contact us via the SItoA mailing list. If you are interested in developing your own interface to the Arnold core, API documentation is here: https://trac.solidangle.com/arnoldpedia/wiki/APIReference

The release notes we send with each version of the Arnold core are here: https://trac.solidangle.com/arnoldpedia/wiki/ReleaseNotes

Thanks for joining us and we look forward to your active participation!

1.2

What is Arnold?

Arnold is an advanced cross-platform rendering library, or API, developed by Solid Angle and used by a number of prominent organizations in film, television and animation, including Sony Pictures Imageworks. It was developed as a photo-realistic, physically-based ray tracing alternative to traditional scanline based rendering software for CG animation. Arnold uses cutting-edge algorithms that make the most effective use of your computers hardware resources: memory, disk space, multiple processor cores, and SIMD/SSE units.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Introduction

The Arnold architecture was designed to easily adapt to existing pipelines. It is built on top of a pluggable node system; users can extend and customize the system by writing new shaders, cameras, filters and output driver nodes, as well as procedural geometry, custom ray types and user-defined geometric data. The primary goal of the Arnold architecture is to provide a complete solution as a primary renderer for animation and visual effects. However, Arnold can also be used as: A ray server for traditional scanline renderers A tool for baking/procedural generation of lighting data (lightmaps for videogames) An interactive rendering and relighting tool

Why is Arnold different?


Arnold is an unbiased ray / path tracing engine. It doesn't use caching algorithms that introduce artifacts like photon mapping and final gather. Arnold also provides interactive feedback, often avoiding the need for many render passes and allowing you to match on-set lighting more efficiently.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Getting started with SItoA

Section 2 Getting started with SItoA


This section describes how to install SItoA and begin using Arnold in Softimage. Topics in this section: Installing SItoA Updating SItoA SItoA paths Licensing

2.1

Installing the SItoA Add-on

The SItoA plugin is distributed as a Softimage add-on. To install it, download the correct SitoA pack, unzip, select the File / Add-on / Install menu option, point it at the SitoA add on (.xsiaddon) file, and follow the steps in the wizard:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

10

SItoA (Softimage to Arnold)

Softimage will ask you where to install all the data (Factory, User, Workgroup). It will then install all files that are needed to execute the Arnold Renderer. After the installation is done, you will need to restart Softimage before you can use SItoA. Please refer to the Softimage documentation for other ways to install Softimage add-ons.

2.2

Updating SItoA

Before updating or removing the SItoA Add-on, you must unload all the SItoA plugins from memory, otherwise Softimage will crash. To do that, execute the SITOA_UnloadPlugins() command:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Getting started with SItoA

11

Next, uninstall the previous version of SItoA, from the File / Add-on / Uninstall menu option in Softimage:

Note: After the uninstall process is completed, and before installing the new version, make sure there is no SItoA folder in the Add-ons location. If a user is running SItoA while another user is uninstalling it, the Add-on may not be completely removed from the workgroup, leaving things in a corrupted state. There is also an Arnold Renderer Custom preferences preset file stored in the folder;
\Users\YourUsername\Autodesk\Softimage_Version\Data\Preferences

which is not deleted by uninstalling the addon. Make sure you delete the Arnold Render.Preset file here. Also, the changes done in the Custom preferences are stored in the default.xsipref from the same folder. Open it in a text editor and make sure there are no Arnold entries (if there are, delete those lines). Finally, you can install the new SItoA version (see the Installing SItoA section). To complete the update, be sure to run the SITOA_RegenerateRenderOptions() command from the script editor, or from within the Plugin Manager by right-clicking the command after opening a scene. This will ensure the update of the PPGs, adding new parameters or removal of old parameters etc. in a scene created with a previous version of SItoA (also see the SItoACommands section). To summarize:
1. 2. 3. 4. 5.

Run SITOA_UnloadPlugins() Uninstall the old SItoA (File / Add-on / Uninstall) Check there is no SItoA folder in the Add-ons location Install the new SItoA (File / Add-on / Install) Run SITOA_RegenerateRenderOptions()

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

12

SItoA (Softimage to Arnold)

2.3

SItoA Paths

Note: the way paths are handled changed in versions 1.16 and 1.17. If you haven't already, it's worth reviewing the 'More about paths' topic.

Default Paths
The SItoA plugin uses the following environment variables to configure default paths:
SITOA_PLUGINS_PATH : where to find Arnold plugins SITOA_PROCEDURALS_PATH : where to find Arnold procedurals

When a new scene is created, it will use the default paths defined by the above environment variables. The paths can be changed at any time from the Arnold Render Options.

Cross-platform Path Translation


For cross-platform path translations we need to specify an environment variable:
SITOA_LINKTAB_LOCATION

When this variable is declared, the "Translate Paths" parameter in the Arnold Render Options will be enabled. This variable must point to the Softimage linktab.ini file with an absolute path including the filename.

Defining the linktab File


The linktab file is used when the render network uses a mix of Windows and other operating systems. Each line in a linktab file contains a Windows-style path and a UNIX-style path, indicating where Softimage, and resources such as textures, are located on both operating systems. This allows the rendering master to find the required files on the slaves regardless of the operating system. Most linktab files contain only one line, indicating where Softimage is located on both platforms. Here is a sample linktab file:
C:\Softimage /usr/Softimage

The Windows path must come before the Unix-style path and they must be separated by a tab, not spaces. Linux path names are case-sensitive, but Windows paths are not (they are case-insensitive). Do not use slashes (\ or /) at the end of the linktab paths. If you are using textures or memory-mapped images, you must have entries that point to the directories containing them. You can use an exclamation mark to distinguish a mounted volume from the rest of the path. For example, if \\foobar\users\fred (Windows) is equivalent to /home/fred (Linux) and F:\foobar\users is a mounted volume, the line in the linktab file would look like this:
\\foobar\users!fred /home/fred

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Getting started with SItoA

13

The linktab file must be present on the master and slave computers, in the directory specified by the SI_LINKTAB_LOCATION environment variable.
SI_LINKTAB_LOCATION can define both the path and file name or just the path; if no file name is explicitly set, Softimage assumes the name will be linktab.ini .

When a scene is imported from SOFTIMAGE|3D into Autodesk Softimage, Softimage searches in SI_LOCATION for linktab.ini . Define SI_LOCATION in setenv.bat (Windows) or .xsi_5.0 (Linux) as the directory where Softimage is installed and place a copy of linktab.ini there (if you want to reuse the linktab file used by SOFTIMAGE|3D; otherwise, just make SI_LOCATION point to the same path and linktab name as defined by SI_LINKTAB_LOCATION for Softimage). For details on how Softimage uses the linktab file, see 'Configuring the linktab.ini File' in the Softimage 'Setup & Licensing Guide'.

2.4

Licensing

If you would like to use Arnold in production you can buy a commercial license from Solid Angle S.L. Once the license is activated, the Arnold logo/watermark will disappear from your rendered images. The license allows you to run the multi-platform Arnold core in as many simultaneous machines as specified in the license; the plug-ins (SItoA, MtoA) are free. Note that we license per-machine, not per-core and not per-thread. You can render on as many threads as you wish.

Installing the RLM license server


Arnold uses a floating-license mechanism based on RLM from Reprise Software Inc. Licensed users need to install the RLM license manager package which can be downloaded from the following links (make sure to download the right platform for your license server): RLM License Server tools for Windows 64-bit https://downloads.solidangle.com/arnold/license_server_rlm/arnold_license_win64.rar RLM License Server tools for Linux 64-bit https://downloads.solidangle.com/arnold/license_server_rlm/arnold_license_linux64.tgz RLM Licence Server tools for Mac OSX 64-bit https://downloads.solidangle.com/arnold/license_server_rlm/arnold_license_darwin64.tar.gz

The license server must run on a machine that all the render nodes can connect to. On the server machine, and once you have received a license file from us, you can start the license server with the following command:
rlm -c <license_file>

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

14

SItoA (Softimage to Arnold)

A license file is an ASCII text file with the following structure:


HOST localhost 0036181a1ca6 5053 ISV solidangle LICENSE solidangle arnold 302 31-dec-2010 1 issued=27-apr-2010 _ck=14d6cd3634 sig="12N250DgmjQbGgzFcua8gx=C1b8bD1Lt0ihs9d2LT5ER1az tf6Ty*zz~HPGYLo"

In the above example, the license server is localhost and the port is 5053 (the default port for RLM). If you need to change the license port, you can simply update it in the license file. On the client machines, Arnold will try to use the localhost as the license server. If your license server is in a different machine, you will need to set the ARNOLD_LICENSE_HOST environment variable and point it to the license server name. It will also try the default RLM port (5053). If you have changed the port in the license file, you must also set the ARNOLD_LICENSE_PORT environment variable so that it matches the port in the license file.

Installing the RLM license server as a Windows service


In Windows, it is possible to install the RLM license server as a service. The service will be started when you boot the machine, and it will run in the background, with no login required, and no open command prompt. The steps are: Copy the RLM files to a local folder, e.g., "C:\Program Files\RLM_Licensing\". You cannot use a network path. Open a command prompt and enter these commands:
cd "C:\Program Files\RLM_Licensing\" rlm -install_service -dlog "C:\Program Files\RLM_Licensing\mylogfile.txt"

License troubleshooting
License server installation is generally a pretty straightforward process. The only problems noted so far have been related to faulty hardware (problems with network card, which is used to identify the machine). During license usage, especially in large render farms, you can easily lose track of the licenses being used by each client. To get this information, you can use the local web server running in your license server. This web server is started when running RLM, and it is normally accessible using the following URL (unless you modified the port number in your license file. In that case, check the output messages when running RLM and change the port number accordingly):
http://localhost:5054

Once in that web page, just click on "Status" to get all the information about the installed licenses and their current usage. If you are using the kick command-line tool, you can get basic information on the status of your license server via the -licensecheck option:
$ kick -licensecheck [<port>@<host>] Connecting to license server on <port>@<host> ... OK product: version: arnold 303

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Getting started with SItoA

15

expires: total licenses: inuse: timeout:

01-Jan-2012 1 0 disabled

License server timeout If the Arnold render process aborts, crashes or is otherwise not terminated cleanly, its RLM license may remain checked out at the server for a long time. This can amount to a substantial reduction in usable licenses in both large and small render farms. This problem can be mitigated by setting the following RLM command:
TIMEOUT 120 arnold

This command will configure RLM to reclaim licenses checked out to any Arnold client application from which it hasnt received a heartbeat in 120 seconds (2 minutes). Old licenses have a minimum timeout of 3600 seconds (1 hour), while new licenses have a minimum timout of 120 (2 minutes). If you require a shorter timeout than your current license allows, please contact Solid Angle technical support. Starting with Arnold 4.0.3, this feature is automatically configured in the solidangle.opt options file that we distribute with the Arnold package. To manually add this setting through the browser-based administration tool, open your browser and go to http://localhost:5054/ , where localhost represents the license server hostname, and 5054 represents the web server port number. Click on the Status button and then the "solidangle" button under the "OPTIONS" heading. Add the command and save the changes. Click "Reread/Restart Servers" and then click "REREAD/ RESTART" to put the new timeout option into effect. A quick way to check whether you have timeouts enabled or not is via the kick command-line tool:
$ kick -licensecheck Connecting to license server on <port>@<host> ... OK product: version: expires: total licenses: inuse: timeout: minimum timeout: arnold 303 01-Jan-2012 1 0 240 120

Killing the license server When the rlm process starts, it creates another process specific to the Solid Angle ISV. If you just kill the rlm process, the ISV server remains active, taking the 5053 port for ever, so a fresh server re-start won't succeed. To properly stop the RLM server as a service in Linux, you should first rlmutil rlmdown the ISV, and then kill the main rlm process. We now distribute a basic example script that shows how to performs a clean stop of the rlm process.

Virtual machines as license servers


Unfortunately, we do not allow virtual machines to be used as license servers.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

16

SItoA (Softimage to Arnold)

Getting the MAC address


To generate a license file, we need you to provide the MAC address of the network device used in the server machine. If you don't know the MAC address, you can use the rlmutil tool included with the license manager package. Grab the output from the following command and send it to us:
rlmutil rlmhostid ether

You may get several IDs, especially if you are using virtual machine management software. In that case, please include the output from:
ipconfig /all

Or ifconfig on Unix-like machines. What we need is the MAC address of the physical connection.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Render Options

17

Section 3 Arnold Render Options


SItoA has its own Render Options panel to control Arnold-specific features such as multi-threading, sampling quality, etc. These Render Options can be global to all passes or apply to a specific pass only. To open this panel, from the Softimage menu, select Explorer / Passes or Render / Renderer Options (or bring up the Render Manager via Render / Render Manager):

The menus provided on each tab beneath Arnold Render Options are described in more detail in the topics below: System Output
2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

18

SItoA (Softimage to Arnold)

Sampling Motion Blur Depth of Field Subdivision Ray Depth Gamma Correction Texture System Diagnostics ASS Archives

3.1

System

The System tab gives access to general Arnold system-wide controls.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Render Options

19

Multi-threading

Autodetect Use an optimal number of render threads based on the number of hardware processing cores. Number of Threads If autodetect is disabled, this will let you manually set the number of rendering threads.

Buckets

Scanning Specifies the spatial order in which the image buckets (i.e. threads) will be processed. By default, buckets start in the center of the image and proceed outwards in a spiral pattern. Size The size of the image buckets. The default size is 64x64 pixels, which is a good compromise; bigger buckets use more memory, while smaller buckets may perform redundant computations and filtering and thus render slower but give initial faster feedback.

Progressive Refinement

Progressive region It will apply an iterative progressive render to the region tool, starting from the low Initial AA until the current AA samples values. Initial AA The initial AA samples used for the first progressive render. Negative values subsample the render, allowing faster feedback in the region tool

Backwards compatibility

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

20

SItoA (Softimage to Arnold)

Physically based ...

Licensing

Skip License check Will skip the license check and force the renderer watermark. Abort On License Fail Aborts rendering if when the render starts the license is not detected.

Error Handling

Abort On Error Rendering will abort as soon as an error is detected. This is the recommended setting. In general, you should not ignore important error messages, or you'll risk crashes, rendering artifacts and undefined behavior. NaN Error Color The color that will be corresponded to a NaN (Not a number) value. Texture Error Color ...

Search Paths

Lets you configure various search paths: shader plug-ins, procedurals and texture maps. You can enter an explicit path in the text box for any of these options. Use the Browse (...) button to choose a location.
2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Render Options

21

Shaders Specifies the directory where to search for dynamically loaded Arnold shaders. Procedurals Specifies the directory where to search for dynamically loaded Arnold procedural nodes. Textures Specifies the directory where to search for Arnold texture maps. This works in conjunction with the "Save Texture Paths" option in the ASS tab.

Note that the way paths are handled changed in versions 1.16 and 1.17. If you haven't already, it's worth reviewing the 'More about paths' topic.

3.2

Output

The Output tab gives access to output driver settings.

Dither Amplitude Applies a small amount of noise to the final pixel values. This helps minimize banding artifacts apparent on 8-bit output image file formats such as TIFF8.

AOV Composition It is possible to automatically compose AOVs through semi-opaque surfaces rendered using autotransparency. You can enable this option in the output tab of the render settings. For now, the option is turned off by default because there is an associated performance hit in the Arnold core which will be improved in future releases.

TIFF
Unpremultipled Alpha

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

22

SItoA (Softimage to Arnold)

Specifies whether the main RGB channel is premultiplied with the alpha channel (the default) or not. It only works with 8-bit output images. Format Allows you to save the file in scanline or tiled mode. Scanline may work better with composition packages like Nuke or Fusion. Compression Specifies the compression mode of the file.

EXR
Format Allows to save the .exr in scanline or tiled mode. It seems Scanline works better with composition packages like Nuke or Fusion. Compression Specifies the compression mode of the EXR. Preserve Layer Name If checked, will store the AOV in a layer different with the name of the AOV, and not the RGB .

You can also write multi-layer EXR files containing multiple render channels, as explained in the Multi-Layer EXR section.

3.3

Sampling

These settings control the sampling quality of the rendered images. Increasing the sampling rates reduces the amount of noise in the images, but at the expense of increased rendering time.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Render Options

23

Settings
AA Samples Global, brute-force 'over-sampling' control over the number of rays per pixel that will be traced from the camera. The higher the number of samples, the better the anti-aliasing quality, and the longer the render times. The exact number of rays per pixel is the square of this value. For example, an AA Samples value of 3 means 3x3 = 9 pixel samples. In practice, you may consider using a value of 4 for medium quality, 8 for high quality, and (rarely) 16 for super-high quality. It is important to note that this control will also multiply the number of samples performed for diffuse and glossy sampling, so high values for all three can be unnecessary.

Diffuse Samples Controls the number of hemispherical rays fired for indirect diffuse GI shader evaluations. Increase this number to reduce the diffuse GI noise. The exact number of hemispherical rays is the square of this value.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

24

SItoA (Softimage to Arnold)

Remember that the diffuse sampling is done for each AA sample, so high values for both AA Samples and Diffuse Samples will tend to result in slow renders.

Diffuse Sam ples 0

Diffuse Sam ples 1

Diffuse Sam ples 4

Glossy Samples Controls the number of BRDF rays fired for indirect glossy specular shader evaluations. Increase this number to reduce the noise in soft/blurry reflections. The exact number of rays is the square of this value. Remember that the glossy sampling is done for each AA sample, so high values for both AA Samples and Glossy Samples will tend to result in slow renders.

Glossy sam ples 1

Glossy sam ples 4

Refraction Samples Controls the number of samples used to simulate the microfacet-based glossy refraction evaluations.

Lock Sampling Noise Locks the AA_seed so the sampling noise won't change with the frame number (avoiding the film grain look)

Diffusion SSS

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Render Options

25

Raytraced Select this option if you want to use brute-force ray traced diffusion sub-surface scattering (BSSRDF) instead of point cloud sub-surface scattering. This approach removes a number of shortcomings of the pointcloud method, trading them for unbiased noise instead. Raytraced is the recommended approach, but point cloud is the default setting for backward compatibility with old scenes. BSSRDF Samples If Raytraced is selected, this controls number of lighting samples (direct and indirect) will be taken to estimate lighting within a radius of the point being shaded. PointCloud Sample Factor If Raytraced is not the selected method, this controls the number of sampling SSS point cache irradiance evaluations that will be used. This control behaves similarly to AA Samples, but for subsurface scattering (as with AA Samples, it is important to note that this control will also multiply the number of samples performed for diffuse and glossy sampling, so high values for all three can be unnecessary). The default value is 4. Typically this should be set to the same value as AA Samples to ensure every point cloud receives noise-free lighting.

Clamping

Clamp Sample Values Enabling this control, pixel samples will be clamped to the specified maximum value. This can make it easier to anti-alias certain high-dynamic range effects such as bright motion blurred specular streaks (at the cost of reduced contrast). What is clamped is the resulting output value of the renderer computations of each pixel sample and has nothing to do with the number of ray samples of AA, diffuse or glossy traced. Example: If the Max Clamp Value is set to 2, no pixels will have an RGB value greater than 2.0,2.0,2.0 (Clamping) Affect AOVs With this control enabled the pixel samples of the AOVs will also be clamped. (Clamping) Max Value Specifies the clamping value. Be aware that with very low values we decrease the dynamic range.

Pixel Filtering

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

26

SItoA (Softimage to Arnold)

Type The filter type used for averaging individual subpixel samples into a final pixel color. The default gaussian2.0 is an excellent filter, you will rarely need anything other than gaussian. Width The width of the subpixel sample averaging filter, in pixels. For circularly symmetric filters, this is the diameter of the filter's support. Filter Color AOVs Applies Color AOVs the same reconstruction filter as the beauty. Filter Numeric AOVs Applies Numeric AOVs the same reconstruction filter as the beauty. Disabling this check is useful for Depth or masks AOV.

3.4

Motion Blur

These settings control the amount, type and quality of motion blur. Arnold can apply motion blur to cameras, objects and lights.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Render Options

27

General Settings
Enable Enable motion blur.

Shutter Settings
Define when and how the camera shutter opens and closes. The amount of blur is proportional to the time that the shutter remains open (i.e. shutter end minus shutter start). Maximum blur is achieved when start=0, end=1.

Shutter tim e (end tim e m inus start tim e) = 0

Shutter tim e (end tim e m inus start tim e) = 0.5

Shutter tim e (end tim e m inus start tim e) = 1

Start Time, normalized in the range 0..1, within the current frame where the camera shutter will open. End Time, normalized in the range 0..1, within the current frame where the camera shutter will close. Frame Duration You can use this attribute to tweak the size and length of the motion blur trails. It simulates the effect of camera shutter speed. When set to 0, neither geometry nor camera motions are considered. Smaller values create a more subtler motion blur effect. Larger values create a wider or longer motion blur effect, simulating a faster speed (note that values
2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

28

SItoA (Softimage to Arnold)

greater than 1 are possible, but may introduce artifacts which require an increase in AA sample settings to work around).

Fram e Duration 0.2

Fram e Duration 0.5

Fram e Duration 1

Filter The type of filtering applied to time samples. By default, this is a box filter, with all time samples having the same weight. Positioning Decide where on the frame time the blur will be evaluated. The default is centered.

Motion Steps Settings


The number of motion keys used for motion blur can be set separately for both transformation and deformation (if enabled). For situations where there is a direct movement, such as translation and rotation with constant speed, two steps are enough. However, if the object moves erratically during the exposure interval or performs any other kind of non-linear movement, you will need to increase the number of steps. Increasing the number of motion steps does not usually have much effect on rendering times, however you may notice a small increase.

Enable Deformation Blur Motion blur will take into account geometry deformation. This should only be enabled when objects in the scene change shape quickly enough, since this option uses more memory and renders slower. Optimized Export When enabled, all objects are checked to determine their motion status (static/moving/deforming). This information is used to save time when exporting geometry information. This check is not always accurate, in some cases can result in the wrong motion blur information being sent to the renderer. If you suspect this is happening, try disabling this checkbox. Transformation Number of motion keys for matrix transformation. Transformation motion blur is calculated based on a linear interpolation of an object transform matrix, between successive motion keys. Increasing this value will add extra steps, which can improve the blurred result specially for rotating objects. The default is 2, which results in straight lines of blur between shutter start and shutter end. Deformation
2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Render Options

29

Number of motion keys for object vertices. Just like with transformation motion keys, increasing this value allows curved motion paths to be rendered more accurately, at the expense of using more memory.

The following example below, is an extreme case of an object moving along a complex motion path, simulating a shutter opening effect.

A m oth anim ated along a com plex m otion path curve in 100 steps

Transform ation key steps 2

Transform ation key steps 10

Transform ation key steps 30

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

30

SItoA (Softimage to Arnold)

3.5

Depth of Field

From this Render Options Tab users can configure settings to use Depth of Field on render.

Some more DOF examples can be found here.

Settings

Enable Enables Depth of Field effects. Focal Distance This is the distance at which objects appear in perfect focus, for a non-zero aperture value.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Render Options

31

Focus Distance 6

Focus Distance 8

Focus Distance 10

Focus at Interest Point If enabled, the focal distance will be automatically set to the distance from the camera to the camera interest point. Distance Specifies the focal distance in world units. Aperture These settings define the geometry of the camera's aperture and its bokeh effects. Size The radius of the aperture in world units. The smaller the aperture, the sharper the images (shallower depth of field). In the limit, a size of zero produces no depth of field blurring.

Aperture Size 0.05

Aperture Size 0.1

Aperture Size 0.2

Aspect Ratio This is used to stretch the aperture vertically. A value of 2 produces an elongated defocusing effect reminiscent of an anamorphic lens, while a value less than one will squash it. Polygonal Aperture Whether the aperture will behave as a regular polygon of N-sides or as a perfect disk. Blades Number of blades (or polygon sides) of the polygonal aperture. Blade Curvature Curvature of the polygonal aperture sides. A value of 0 means hard straight sides. Increasing this value results in progressively more curved edges, all the way to 1.0 which produces a perfect disk. Negative values produce a "pinched" or star-shaped aperture.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

32

SItoA (Softimage to Arnold)

Rotation Rotates the aperture by any number of degrees.

3.6

Subdivision

These settings control the renderer's tessellation of subdivision surfaces.

Cube subdivided with 0, 1, 2 and 3 iterations See more Subdivision examples here.

Settings

Max. Subdivisions This value sets an upper limit on the number of subdivision iterations for all objects. By default this is set to a very high value (999) which in practice has no effect. Setting this to a low value such as 1 or 2 can be useful when debugging scenes that take a long time to subdivide/tessellate.

Adaptive

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Render Options

33

With adaptive subdivision, tessellation density across an object's surface varies depending on the distance of each surface patch to the camera as well as the image resolution. This will generally create far less polygons than subdividing to a fixed number of user-specified iterations. Pixel Error The "pixel error" refers to the acceptable tessellation error as seen from the camera, in pixels. If there's no displacement, then the pixel error represents the distance (in pixels) from the subdivided mesh to the "true" or "limit" surface -- sort of a "flatness" heuristic. The smaller the error, the closer to the limit surface a mesh will be and the less inter-frame "popping" when the subdivision level jumps. If displacement is enabled, then the pixel error represents the final size of the subdivided quads (again, in pixels). A value of 0 disables adaptive subdivision. Use Alternate Dicing Camera This is mostly useful for debugging and rarely used in practice. When enabled, the user provides a specific camera that will be used for all dicing calculations during Adaptative Subdivision. By default this is disabled, meaning that the current render camera also serves as dicing camera. Dicing Camera The camera that will be used for dicing calculations during Adaptative Subdivision.

3.7

Ray depth

From this Render Options Tab users can configure settings that limit the ray recursion based on ray type. Higher values will increase render time.

A mirror placed in front of another mirror. From left to right, the reflection depth is set to 2, 4 and 10

Total

Total Specifies the total maximum recursion depth of any ray in the scene (Diffuse + Reflection + Refraction + Glossy < Total).

Ray Types

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

34

SItoA (Softimage to Arnold)

Diffuse The maximum number of times a diffuse ray can bounce. Reflection The maximum number of times a ray can be specularly reflected.

Reflection Depth 2

Reflection Depth 4

Reflection Depth 10

Refraction The maximum number of times a ray can be refracted.

Refraction Depth 2

Refraction Depth 4

Refraction Depth 8

Glossy The maximum number of times a ray can be glossily reflected.

Auto Transparency

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Render Options

35

Depth The number of allowed transparency hits. With 0 objects will be treated as opaque. Mode With the default, "always", Arnold will automatically compute the transparency hits and compositing over primary, secondary and shadow rays. "shadow-only" will track the transparency hits over the shadow rays only. "never" will entirely disable the computation of transparency. Threshold Defines at which point the accumulated opacity can be considered as opaque. This optimization parameter is designed to save computations when an object tagged as transparent have large areas that are nearly opaque. For a more detailed explanation of auto-transparency and refraction, see the Transparency section.

3.8

Gamma correction

These options are helpful for users who need to make sure they are working in radiometrically linear space (also called "linear workflow").

Output Gamma

Driver This is the output gamma applied to the images written to disk by any of Arnold's output drivers. The value is ignored if the output is a floating point image (such as EXR or float32 TIFF).

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

36

SItoA (Softimage to Arnold)

Display Driver gam m a 0.5

Display Driver gam m a 1.0

Display Driver gam m a 2.2

Input Gamma

Textures Apply an inverse gamma correction to all texture lookups. For example, a value of 2.2 will linearize a texture that comes in with a gamma of 2.2.

Textures gam m a 0.5

Textures gam m a 1.0

Textures gam m a 2.2

Lights Apply an inverse gamma correction to the light color widget. Shaders Apply an inverse gamma correction to the shader color widget.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Render Options

37

3.9

Texture system

These settings control how to handle texture files in Arnold.

Filtering

Accept Unmipped Textures If a texture map file is not natively mip-mapped, the render will give an error unless this option is checked. Auto-mipmap If a texture map file is not natively mipmapped (e.g. a JPEG file), enabling this option will trigger the automatic generation of a mipmap that will be stored in memory for the duration of the render. This mipmap generation increases render time, specially for scenes with many high resolution textures. This is in contrast to file formats that natively support mipmapping, such as TIFF and EXR, where the mipmap is generated only once (with a preprocessing tool like maketx). Use with care. Filter The type of texel interpolation used for texture lookups. Bicubic produces the highest quality, at a slight increase in render time. Diffuse Blur Controls the amount of blur in texture look-ups for diffuse rays.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

38

SItoA (Softimage to Arnold)

Glossy Blur Controls the amount of blur in texture look-ups for glossy rays.

Tiling

Accept Untiled Textures High-resolution untiled texture maps are very inefficient to render, because they must be loaded entirely into memory as soon as the renderer needs to access a single texel. For that reason, you may want to use this flag to enforce that all your texture maps are already tiled in advance (perhaps by using a preprocessing tool like maketx). When this flag is enabled, any attempt at loading an untiled file will produce an error and abort the renderer. By default this flag is disabled, because most of the popular image formats such as JPEG don't support tiling. Auto-tile For untiled files, Arnold can optionally perfom a tiling preprocess. The rendering performance when using auto-tiling is not as good as with a properly pre-tiled file, but it can be much better than not using any tiling at all. Tile Size This is the size of the tiles when using auto-tiling. Bigger values mean less frequent texture loads, but use more memory. Use Existing .tx Textures If an untiled texture is requested (e.g. concrete.jpg) but a .tx file with the same filename is found (e.g. concrete.tx), the renderer will load the .tx file instead.

Caching

Enable Enable texture caching. Cache Size Control the cache size. Maximum Open Textures The maximum number of files that the texture system keeps open at any given time to avoid excessive closing and re-opening of files when caching individual texture tiles. Increasing this number may result in slightly better texture caching performance. On the other hand, if this value is higher than the maximum number of concurrently open files supported by the operating system (e.g. Linux vs Windows), some texture lookups may fail and return red.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Render Options

39

3.10

Diagnostics

Arnold can generate a log reporting all the steps needed to render an image, as well as any warnings and errors encountered by the renderer. This log also provides detailed statistics that are useful for debugging, optimizing and benchmarking renders. The log can be sent to the Softimage console or to a file. Here is an example log file: Download.

Logs

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

40

SItoA (Softimage to Arnold)

Console Specify whether logs are to be written to the console. File Specify whether logs are to be written to file (the location of the file is specified in the Output Path setting below). Verbosity Specifies the verbosity level and whether log messages are sent to the console or written to a file. Max. Warning Messages Limits the number of warning messages that are sent to the console. Detailed Texture Stats ... Shader NaN Warnings ... Output Path Specifies the output path for Arnold log files (if logging to file is enabled above). You can use environment variables or Softimage tags like [Project Path]. Resolved Path Shows the resolved path where log files will be saved.

Settings

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Render Options

41

Output Path Specifies the output path for Arnold log files. You can use environment variables or Softimage tags like [Project Path]. Resolved Path Shows the resolved path where log files will be saved. Verbosity Specifies the verbosity level and whether log messages are sent to the console or written to a file. Max. Warning Messages Limits the number of warning messages that are sent to the console.

Ignore
This group of switches allows you to disable a number of important rendering features. By selectively disabling some features, you can get a feel for where the renderer is spending most of the time, which helps optimizing scenes. This is also useful for isolating errors and artifacts when debugging. Note that not all of these options are interactive - some of them may require the entire scene to be refreshed/exported.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

42

SItoA (Softimage to Arnold)

Texture Maps Ignore all textures when rendering. Shaders Ignore all shaders when rendering. By default Arnold will render with a simple "N dot eye" shader. Atmosphere Shaders Ignore all shaders in the Volume Shader Stack of Pass. Lights Ignore all light sources. Shadows Ignore shadows from all light sources. Subdivision No objects will be subdivided. NOTE: This parameter is not interactive. Displacement Displacements will be ignored. NOTE: This parameter is not interactive. Bump Bump will be ignored. Motion Blur Ignore motion blur effects. Smoothing Polygon normals will not be smoothed, resulting in a faceted appearance. NOTE: This parameter is not interactive. Subsurface Scattering Ignore Subsurface Scattering calculations. Mulitple Importance Sampling

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Render Options

43

Ignore MIS calculations.

From left to right: original scene, ignoring shadows, ignoring shaders

Subsurface Scattering

SSS sample visualization: Off / Points / Irradiance

Visualize Samples Show the individual sample locations of the SSS pointcloud. Very useful for debugging and tuning for optimal pointcloud spacing.

3.11

ASS Archives

Arnold's native scene definition format is stored in human-readable, editable ASCII files with the .ass extension. SItoA lets you save scenes to .ass files that can later be rendered outside Softimage with kick (a multi-platform, command-line utility) or used for rendering inside stand-ins.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

44

SItoA (Softimage to Arnold)

Output Path Specifies the output path for exported .ass files. You can use environment variables or Softimage tags like [Project Path]. Resolved Path Shows the resolved output path, after variable/tag expansion. Use gzip Compression (.ass.gz) Exports the scene directly to gzip-compressed files with the .ass.gz extension. You can expect compression rates in the 4-5x range. Use Binary Encoding for Float Arrays Specify whether binary encoding is used to compress large float arrays into a more compact ASCII representation, leading to smaller files and faster load times, whilst still being mostly human-readable. In addition, the binary encoding has exact 32-bit precision, whereas without this binary output floating point values are truncated into at most 8 ASCII digits (e.g. 1234.5678). The encoded arrays are indicated by prefixing the array type with "b64" as in the example below. polymesh { name mymesh nsides 54 1 UINT 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 44444333333333

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Render Options

45

vlist 47 1 b64POINT LJ4iv4THCEE/NV4/1nPCvhpuBkEMk10/LJ4iv2uf+kDVzHI/36OGvhkc/kD9+Fs/LGenvtmU8EDqJVo/ l1cGv+Ij50D1 ... Use Binary Encoding for Hair (.bin) If this option is checked, geometric data for hairs/curves will be saved to a proprietary binary file instead of written to the regular .ass file. The binary file will be lazily loaded at render time by a custom procedural node. Saving hair-heavy data into a binary file is both faster to write and saves disk space. Disable this option only for debugging. Use Absolute Texture Paths Provide absolute paths for textures. If this option is disabled, the full path of each texture file in the .ass file will be omitted. Textures will be pulled from the Texture Search Path specified in the "Search Paths" section of the System tab. Use Absolute Procedural Paths Provide absolute paths for procedurals. If this option is disabled, the full path of each procedural file in the .ass file will be omitted. Procedurals will be pulled from the Procedurals Search Path specified in the "Search Paths" section of the System tab. Translate Paths Perform any appropiate file path translation when exporting to .ass files intended to be rendered from a different Operating System. (see Cross-platform Path Translation in the SItoA Paths topic for more information).

Node Types Allows you to filter the export by type: Options Drivers/Filters Geometry Cameras Lights Shaders

Instancing

Use Local Cache ... Time Offset Materials ... Time Offset Textures ...

Export Frame Exports the current timeline frame to an .ass file. Export Animation
2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

46

SItoA (Softimage to Arnold)

Exports the specified animation frame range (start, end, step) to multiple .ass files.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Additional Arnold Properties

47

Section 4 Additional Arnold Properties


The Arnold renderer has several additional parameters which control specific features that don't have a direct equivalent in Softimage. SItoA will add these parameters to scene objects through the Properties / Arnold Parameters menu.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

48

SItoA (Softimage to Arnold)

The Arnold Param eters m enu option is under the Properties m enu

The 'Arnold Visibility', 'Arnold Sidedness' and 'Arnold Standin' menu options are described further in the following topics: Arnold Visibility Arnold Sidedness

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Additional Arnold Properties

49

Arnold Stand-ins

The menu displayed Arnold Properties > Geometry > Arnold Parameters will vary depending on the specific type of object selected (currently either Mesh or Hair):

Different objects have different Arnold Param eters settings.

The following topics describe the different groups of parameters in more detail: Arnold Shape Parameters and Sub-Surface Scattering (common to all geometry objects) Arnold Curves Parameters (hair / curves objects only)

From version 2.3 onward, there is also a general purpose 'User Options' control which allows you to pass a string value directly to an underlying core Arnold node, allowing you to over-ride any attribute of the core Arnold node: Arnold User Options

4.1

Visibility

You can selectively disable an object's visibility for the various types of rays in the renderer, as seen in the example below. By default, objects are visible to all types of rays.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

50

SItoA (Softimage to Arnold)

The tank in this example is invisible to camera rays but visible to all other types of rays, including shadow rays Camera Camera rays (i.e. primary or view rays). Shadow Shadow rays fired in the direct lighting calculations. Reflected Mirror reflection rays. Refracted Refraction rays. Diffuse Indirect diffuse rays (i.e. global illumination, hemi, or GI rays). Glossy Indirect specular rays (i.e. glossy reflection rays). Additionally you may use the built-in "Visibility" parameters that each object has by default in Softimage. When SItoA's own visibility property is applied, it will override any Softimage visibility settings that the object itself has locally. Because Arnold doesn't support the same exact visibility options as Mental Ray (for example, Arnold does not use Final Gathering), they have been mapped out as shown in the image below, where supported parameters are highlighted in red:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Additional Arnold Properties

51

The Softimage visibility types correspond to SItoA types as follows: Primary = Camera Secondary = Reflection, Refraction, Glossy Shadow.Caster = Shadow Reflection.Visible = Reflection Refraction.Visibile = Refraction Global Illumination.Caster = Diffuse Reflection.Caster = Glossy

4.2

Sidedness

Just like you can disable the visibility for specific ray types, you can also change an object's sidedness depending on the ray type. By default, objects are double-sided for all rays. By unclicking any of these checkboxes, the object will become single-sided, which means that those parts of the object whose normal

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

52

SItoA (Softimage to Arnold)

vector points away from the incoming ray direction will not be rendered.

A cube with single-sidedness for camera rays. The normals in the cube are inverted so that we can see inside. There is also a mirror next to the cube.

The same cube, but this time using single-sidedness for reflected rays. Note how we can't see inside the cube directly, but we can see inside through the reflection in the mirror.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Additional Arnold Properties

53

Camera Camera rays (i.e. primary or view rays). Shadow Shadow rays fired in the direct lighting calculations. Reflected Mirror reflection rays. Refracted Refraction rays. Diffuse Indirect diffuse rays (i.e. global illumination, hemi, or GI rays). Glossy Indirect specular rays (i.e. glossy reflection rays).

4.3

Stand-ins

You can use any polygon or hair object as a stand-in, by applying this property to it that references an .ass file on disk (or other procedural formats supported by Arnold). A longer tutorial on stand-ins in SItoA can be found here.

The Arnold Standin property

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

54

SItoA (Softimage to Arnold)

This is what the parameters mean: Path The full path to the file to be loaded. Valid extensions are .ass , .ass.gz , .obj , .obj.gz , .dll (Windows), .so (Linux). The path string supports the use of Softimage tokens. For example, c: \temp\dummy.[Frame].ass is resolved with the current rendering frame when rendering a sequence. Tokens support padding and shifting. So, c:\temp\dummy.[Frame 4# +2].ass is resolved as c: \temp\dummy.0022.ass at frame 20. Override Frame, Frame If Override Frame is on, the Frame parameter is used to resolve the Path's [Frame] token (if it exists). For example, you can have Frame defined by an expression, and still benefit from the Path padding and shifting syntax. If Path is not a sequence, these parameters are not used. Data If Path points to a "dll" or "so", the procedural is a previously compiled C++ program, and you can pass a string parameter to it through Data. There is no standard defined on the format of this string, the format is dictated by the particular implementation of each procedural program. Currently only one compiled procedural is available in SItoA, the sitoa_curves_proc , which is used to render hair objects, and uses a hair .bin file as data. The Data parameter is enabled only if the Path extension is either "dll" or "so". Data also supports tokens, and is resolved after evaluating Override Frame and Frame. Deferred Loading If this is off, Arnold will load the procedural at start-up time, before rendering any pixels. If set on, however, the loading is deferred as long as possible, i.e., until a ray pierces the procedurals bounding box for the first time. Bounding Box Type Tells Arnold what bounding box to use for the deferred loading. Options are: From Object: Use the bounding box of the place-holding object. If the bounding box of the placeholding object is smaller than the objects contained in the .ass file, the .ass shape will crop to the object's box size, and Arnold will issue an "incorrect bounds" error message. From .asstoc File: Rad the bounding box from the asstoc file generated at export time for each exported .ass file. Bounding Box Scale A scale factor applied to the bounding box before it is set as the procedural bounds.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Additional Arnold Properties

55

4.4

Shape

There are a number of parameters that are common to all geometric objects such as Mesh and Hair (in Arnold these are called shape nodes). See the parameter descriptions below for more information.

Shape Parameters
Geometric objects have Arnold parameters for controlling how the object (Arnold shape node) interacts with the renderer.

These are presented as two groups, general Arnold Shape Parameters and Sub-surface Scattering parameters. Arnold Shape Parameters These parameters allow various per-object overrides / hints to the renderer: Opaque By default, Arnold will assume that objects are opaque, which lets the renderer take certain shortcuts and optimizations for maximum ray tracing speed. When this option is unchecked, the object is assumed as "possibly transparent", and Arnold will perform extra computations to support transparency and transparent shadows, according to the shader's opacity settings. Invert Normals Inverts the normals of the mesh. Self Shadows

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

56

SItoA (Softimage to Arnold)

Enable/disable self-shadowing over the object. Receive Shadows Enable/disable received shadows over the object. Ray Origin Bias ... Export Bind Pose (Pref) This option can be used to make procedurals stick and avoid SSS flickering. Remember that deformations need to be above the modeling stack from where the bind pose is exported. Smooth Subdiv Tangents This option makes it possible to remove the faceted look from anisotropic speculars. The object must have a valid UV map for this option to work.

Sub-surface Sampling parameters These parameters allow per-object overrides / hints to Arnold about how to perform sub-surface scattering (SSS). Sample Distribution ... Sample Spacing Average spacing between points in the sub-surface scattering pointcloud. The smaller the spacing, the denser the pointcloud, which improves the quality of the SSS shading at the expense of memory and render time.

Motion Blur These parameters allow you to override and control the number of motion blur keys per object. Override Motion Blur Steps ... Transformation ... Deformation ...

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Additional Arnold Properties

57

Default Arnold Param eters values for Meshes

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

58

SItoA (Softimage to Arnold)

In this exam ple, the tank has Receive Shadow s disabled

4.5

Arnold Curves Parameters (Hair)

These parameters are specific to Hair objects (i.e., the Arnold curves primitive).

Hairs in ribbon mode (left) and thick mode (right)

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Additional Arnold Properties

59

Curves Parameters

Min. Pixel Width If this value is non-zero, curves with a small on-screen width will be automatically enlarged so that they are at least the specified size in pixels. The enlargement fraction is then used in the hair shader to adjust the opacity so that the visible thickness of the hair remains the same. For a given number of AA samples, this makes it a lot easier to antialias fine hair, at the expense of render time (because of the additional transparency/depth complexity). Good values are in the range 0.2 to 0.7. Values closer to 0 are faster to render but need more AA samples. So if your scene already uses very high AA settings, you should use a low value like 0.1. For best results, you may need to increase the auto-transparency depth, and/or lower the autotransparency threshold, but watch the effect on render times. Note that this parameter currently works with the ribbon mode only. Mode There are two algorithms for rendering curves in Arnold: Ribbon: This mode is recommended for fine geometry such as realistic hair, fur or fields of grass. These curves are rendered as camera-facing flat ribbons. For secondary and shadow rays, they face the incoming ray direction. This mode doesn't look so good for very wide hairs or dramatic zoom-ins because of the flat appearance. This mode works best with a proper hair shader (perhaps based on a Kay-Kajiya or Marschner specular model). Thick: This mode resembles spaghetti. It has a circular cross section, and a normal vector that varies across the width of the hair. Thick hairs look great when zoomed in, and are specially useful for effects work, but their varying normals make them more difficult to antialias when they are small. You can use any shader with this rendering mode, including lambert, phong, etc.

A more detailed tutorial about Hair in SItoA is available here.

4.6

User Options

(New in 2.3) This is a general purpose property, consisting of a string, and flag to 'mute' (ignore) the property. If enabled, the string can be set to over-ride any attribute of a core Arnold node. The property can be applied polymeshes, hair, lights, and point clouds. Because the string is passed to the Arnold node directly, it is up to you to fully understand the core Arnold node type being modified, and compose the string correctly. This is a powerful option, and should be used with some care. The following example illustrates how the process works by going through some basic steps.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

60

SItoA (Softimage to Arnold)

This is a very simple scene, with a white light (intensity==3) casting shadow on two grids and diffuse samples set to 0.

Now let's override the rendering options, the light and one of the grids using the user options string. On the light, set its color to 1,1,0.7 and its intensity to 4. On the lower grid, set the receive_shadows flag to false:

Finally, in the rendering options, enable some color bleeding by setting "GI_diffuse_samples 2 ", and this is the new look:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Additional Arnold Properties

61

In order to get the name and type of the attributes to set, you must always refer to the Arnold node type you want to affect. For instance, if you want to change a rendering option, as in the previous example, you can get the attribute names by running:
kick -info options

For a polymesh node, use:


kick -info polymesh

etc. So, always refer to the core Arnold nodes, and not to the parameter's name as exposed in SItoA. As shown, for the rendering options there is a dedicated string, as opposed to the single nodes in the scene, where instead you want to use a local Arnold User Options property.

Ignoring User Options


All the options strings can be disabled by setting the Ignore flag for User Options in the Diagnostics tab of the rendering options:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

62

SItoA (Softimage to Arnold)

Note: any change in the options string forces a scene destroy, since the string is passed to Arnold as it is, and SItoA can't predict if the attribute you're setting is IPR-compatible or not.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

63

Section 5 Lights
To add an Arnold light, select one from the Primitive / Light menu. In that menu you can find all the different types of light sources supported in Arnold. SItoA will make use of Softimage's built-in icons used for lights to for example display the area-light shape/ size in the viewport, however because the Arnold lights have a few parameters that are not found in Softimage's own lights each Arnold light has its own custom light-shader.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

64

SItoA (Softimage to Arnold)

Arnold lights and light filters can be added from the Prim itive / Light m enu

In the following topics, we will first describe parameters that are common to all Arnold lights, then we will describe parameters that are specific to each type of light, and finally we'll describe the built-in "light filters", pluggable Arnold shaders that extend the lights with new features. Parameters common to all lights Arnold Cylinder light Arnold Disk light Arnold Distant light Arnold Point light Arnold Quad light

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

65

Arnold Skydome light Arnold Spot light Arnold Mesh light (new in 2.4) Light filters

Note: From version 2.0, the decay type control has moved from the Light Decay filter to the light nodes themselves. By default, a physically-correct quadratic decay is used. The linear and cubic decay types have been removed. Old scenes with a constant decay in the light filter will be rendered with quadratic decay, and therefore will render much darker unless you alter the decay type on the light node itself. Decay clamp and Decay radius have been removed from the Light Decay filter.

5.1

Common Parameters

The parameters described below are common to all lights in SItoA (except for distant which does not support decay or volumetric shadows).

Color

Color Sets the intensity of each RGB color channel. The slider ranges from 0 to 1, but you can enter higher values. Intensity An intensity multiplier for the selected color. Exposure (f-stop) Multiplies the intensity by 2 to the power f-stop. Note: it is well worth reading the FAQ entry about the exposure parameter.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

66

SItoA (Softimage to Arnold)

Exposure 0

Exposure 2

Exposure 4

Exposure 6

Decay Type Arnold supports two decay types. Constant will disable any decay, and is equivalent to an exponent of 0. Quadratic will use an inverse-square decay folowing the formula 1/distance2, which is actually the only physically meaningful decay in real-world lights. We strongly suggest that you should normally use quadratic decay. Note that distant lights do not support decay.

Arnold point light w ith constant decay/falloff (left) and quadratic decay/falloff (right)

Light Contribution

Diffuse Allow the light to affect a material's diffuse component. Specular Allow the light to affect a material's specular component. Volumetric Allow the light to affect atmosphere/volume shaders. Distant lights don't support volumetrics.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

67

Volum etric On

Volum etric Off

Sampling

Samples Controls the quality of the noise in the soft shadows. The higher the number of samples, the lower the noise, and the longer it takes to render. The exact number of shadow rays sent to the light is the square of this value.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

68

SItoA (Softimage to Arnold)

Sam ples 1

Sam ples 3

Shadows

Enable Enables the computation of shadows cast from this light.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

69

Shadow s Enabled Off

Shadow s Enabled Off

Color Sets the intensity of each color channel for shadows. Normally this would be black. Density Sets the shadow density, or strength. This controls how the shadow blends with the material on which the shadow is cast: a value of 1.0 produces an opaque, black shadow, and a value of 0.0 gives no shadow. Normally this would be 1.0. Volumetric Shadows Allow the light to affect atmosphere/volume shaders. Distant lights don't support volumetrics.

Volum etric Shadow s On

Volum etric Shadow s Off

Bounces

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

70

SItoA (Softimage to Arnold)

Bounces This is the number of times that the light is allowed to bounce before being discarded. In the real world, this number would be infinite. Note that the global ray depth limits are still taken into account. Factor The relative energy loss (or gain) at each bounce. Normally this would be 1.0, unless you know what you are doing. Values bigger than 1 will make it impossible for GI algorithms to converge to a stable solution.

5.2

Cylinder Light

The cylinder light shape simulates light from a cylindrical area source (tube shape).

See the common parameters for details.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

71

5.3

Disk Light

The disk light shape simulates light from a circular area source (flat disk).

See the common parameters for details.

5.4

Point Light

In addition to the common parameters shared with other lights, the point light provides the parameters described below.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

72

SItoA (Softimage to Arnold)

Scene illum inated w ith several Arnold point lights, each light is illum inating evenly in all directions

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

73

Soft Lighting

Normalize If enabled, you will be able to tweak the shadow softness by changing the size (i.e. radius) of the light, without affecting the amount of emitted light. This is very handy for artistic control. Otherwise, if not enabled, the amount of emitted light is proportional to the light's surface area, as dictated by physics. Radius The radius of the light's spherical surface. Although the name of this light is "Point" for historical reasons, it really is an emissive sphere, unless radius is set to zero, in which case it becomes a true point light of no physical size. Small values will create a harder shadow, whilst larger values increase the size of the light and will therefore create softer shadows.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

74

SItoA (Softimage to Arnold)

Radius 0

Radius 4

5.5

Spot Light

In addition to the common parameters shared with other lights, the spot light provides the parameters described below.

Scene illum inated w ith tw o Arnold spot lights, volum e effects w ere enabled for illustration purposes

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

75

Soft Lighting

Normalize See the Normalize parameter in the point light. Radius If Radius is set to zero, then the cone of light from the spot will emanate from a notional point source. With a non-zero value for radius, then the light source will behave more like a spherical source with the radius

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

76

SItoA (Softimage to Arnold)

specified (although again with the light emitted being constrained to a cone). The larger the radius, the softer the lighting from this light source (zero radius will give hard shadows). See also the Radius parameter in the point light.

Geometry

Aspect Ratio Set this to 1.0 for a cone with a circular cross section, or to another value for an elliptical cross section. Some theatre lights, such as PAR cans, produce elliptical cross sections.

Aspect Ratio 0.1

Aspect Ratio 0.2

Aspect Ratio 1

Lens Radius When set to zero, the vertex of the spot light cone coincides with the light's specified position. If non-zero, the cone becomes truncated, and the light is assumed to come from a virtual position that falls behind the light's specified position. This simulates the effect of real-world luminaires that bundle together a light bulb and a parabolic reflector inside a small, closed fixture. For example, a Hollywood-style searchlight has a big lens radius and a very small cone angle, producing an almost parallel beam of light whose intensity decreases with distance only very slowly, reaching all the way to the clouds. The effect of this parameter is more clearly seen with volumetrics.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

77

Lens Radius 0

Lens Radius 1

Lens Radius 2

Cone Angle The cone angle in degrees. No light will be emitted outside of this cone. Penumbra Angle This angle, measured in degrees from the outer edge of the cone towards the spotlight axis, specifies an area where the light's intensity smoothly falls off to zero at the cone edge.

5.6

Quad Light

In addition to the common parameters shared with other lights, the quad light provides the parameters described below.

Scene illum inated w ith three Arnold quad lights: single sidedness (left) and double sidedness (right). Each quad light has been illustrated w ith a textured polygon plane

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

78

SItoA (Softimage to Arnold)

(Note: version 2.01 contains a UI bug, visible above, that means several parameters are repeated in the UI this does not affect functionality and will be fixed in the next release)

Soft Lighting

Normalize See the Normalize parameter in the point light.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

79

5.7

Skydome Light

The Sky Dome can have an Image node plugged into its "Color" slot so that you can map a texture onto. In addition to the common parameters shared with other lights, the Sky Dome light provides the parameters described below.

Resolution The resolution of the image used. Format The format of the image used (mirror ball, angular map, latitude-longitude map or cubic environment map).

Further information about using the Sky Dome light can be found in the separate topic contained beneath the Image Based Lighting in Arnold topic.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

80

SItoA (Softimage to Arnold)

5.8

Distant Light

In addition to the common parameters shared with other lights, the distant light provides the parameters described below.

Scene illum inated w ith an Arnold distant light, this type of light is useful to sim ulate sunlight as all shadow s are parallel regardless of the position of the light

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

81

Soft Lighting

Normalize See 'Angle'. If enabled, you will be able to tweak the shadow softness by changing the size (i.e., angle) of the light, without affecting the amount of emitted light. This is very handy for artistic control. Otherwise, if not enabled, the amount of emitted light is proportional to the distant light's angle.

Angle This is the angular size of the distant light, in degrees. Non-zero values produce realistic soft shadows. For example, the Sun subtends approximately 0.5 degrees as seen from the surface of the Earth. Note that increasing the angular area of the light will make it brighter, unless you also set 'normalize'.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

82

SItoA (Softimage to Arnold)

Angle 0

Angle 2

Angle 6

5.9

Mesh light

In situations where conventional light shapes will not suffice, mesh lights are more suitable. Mesh Light can be used to create interesting lighting effects that would not be possible any other way. For example, effects such as neon lighting or a car light motion trail effect can be achieved more easily with Mesh Light.

There are currently some limitations when using mesh light: It is not currently possible to add a texture map to the color attribute of the Mesh Light. Mesh Light does not inherit transforms from the original mesh. If the Mesh Light position is different to the mesh, Freeze transformations before converting a mesh to a Mesh Light. Mesh Light ignores smoothing on poly objects. Volumetric scattering will appear noisy when used with Mesh Light. We hope to fix this in a future release. Nurbs surfaces do not currently work with Mesh Light.

Select the Arnold Mesh Light from the light menu;

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

83

...and you will be asked to pick a mesh object. The light is then created, and the picked object set as the light's shape in the light primitive ppg. Also, the light is pose-constrained to the mesh, so to visually match its position, scale and rotation. The light is assigned a shader called arnold_mesh_light . It is this combination (the area light shape set to object and the arnold_mesh_light assigned as light shader) that makes SItoA understand that this light is to be treated as mesh light. Note that the mesh, beside becoming a light source, maintains its shading properties. So, its material stays untouched, and reacts to the light emitted by itself as well.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

84

SItoA (Softimage to Arnold)

The light parameters are similar to the other light types - see the common parameters topic. However it is worth noting the the effect of the sampling control with the mesh light:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

85

Sam ples 1

Sam ples 3

Sam ples 6

Mesh Light vs Emission


The below example is a comparison between Mesh light and a surface that has an aiStandard material assigned to it with a high Emission value. You can see that even with Diffuse samples = 16, emission is noisier than Mesh light with Diffuse samples = 2 Example 1

Em ission, Diffuse sam ples = 2, Tim e = Em ission, Diffuse sam ples = 16, Tim e Mesh Light, Diffuse sam ples = 2, Tim e 0:08.44 = 5:36.86 = 0:09.24

Below is another comparison test between mesh light, on the left, and a sphere with a highly emissive aiStandard shader applied to it on the right. As you can see in the mesh light image, light is bounced around the scene, whereas there is no bounced light in the emissive sphere render. This is because the rays from the mesh light work in conjunction with the diffuse GI rays, whereas, only the primary rays are considered when using emission only. Even with 6 GI diffuse samples, the render using Emission only, contains far more noise.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

86

SItoA (Softimage to Arnold)

Example 2

4 m esh light sam ples - clean render

6 GI diffuse rays - noisy w ith no bounced light

In the below example, GIDiffuse samples have been increased to ten in order to get a clean result using only Emission in the scene. With mesh light the scene only requires three GIDiffuse samples. Example 3

Example images

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

87

5.10

Light Filters

Arnold "light filters" are arbitrary shaders that can modify a light's output based on distance, position or other factors. This makes it easy to extend the built-in light sources with additional effects. Light filters can be added to Arnold lights from the Property/Arnold Properties/Lights/ menu.

Light Decay This filter can be added to all Arnold Lights. This is where you will specify the attenuation ranges (the type of distance fall-off used is specified on the light node itself). Light Blocker A light filter that when connected to a light will block out an arbitrary geometrically defined area of light. Multiple light blockers can be applied to the same light. Gobo This filter can only be used with spot lights. In theatrical stage lighting, a gobo (or "cookie") is a thin sheet of metal with holes used to break up the light beam into an irregular, more natural pattern such as tree leaves etc. In the computer graphics world, gobos are sometimes referred to as "slide projectors" (or sometimes "projector lights", but note that in Arnold the Gobo is not light source itself, but a filter applied to a spot light source). Any texture map or procedural shader can be projected through the light. Barndoor This filter can only be used with spot lights. Barndoors are opaque moving panels attached to the sides of the light's opening. They are typically used in theatrical and film lighting for additional control over the shape of the light beam. This Barndoor filter introduces four barndoor flaps. Each barndoor flap has three parameters. The first two parameters position the two ends of the flap across the face of the light. The third parameter (Edge) controls the softness of the edge. The positions are distances from the respective edge. The edge softness is a ramp width. The ramp starts at one (fully-open) at the

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

88

SItoA (Softimage to Arnold)

barndoor's edge and tapers off to zero based on the edge width in the direction to the perimeter of the spotlight.

5.10.1 Light Decay


This filter can be added to all Arnold Lights. This is where you will specify the attenuation ranges (the type of distance fall-off used is specified on the light node itself).

Near Attenuation
The Near attenuation value sets the distance at which the light intensity "fades in". It works like a reverse decay. With near attenuation, you can create a light that has no illumination close to the center of the source. It uses an hermite interpolation, or smooth ramp, between the start and end values. Enable: Enables near attenuation. Start: Sets the distance at which the light begins to fade in. End: Sets the distance at which the light reaches its full value.

Front view

Near Start 4

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

89

Near Start 8

Near Start 16

Far Attenuation
The Far attenuation value sets the distance at which the light "fades out". It works like a normal decay, but you can specify the start and end distance. It also uses a smooth ramp between the start and end values. Enable: Enables far attenuation. Start: Sets the distance at which the light begins to fade out. End: Sets the distance at which the light has faded out to zero.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

90

SItoA (Softimage to Arnold)

Far Start 6

Far End 24

Far Start 24

Far End 24

Examples
The following examples with images show the effects of the Light Decay attributes.

Example 1
The following images show the effect of altering the Near Start parameter...

Near start 2

Near start 4

Near start 6

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

91

Near start 8

...and the Near End parameter.

Near end 5

Near end 10

Near end 15

Near end 20

You can also alter the Far Start and Far End values, as shown in the following sequences of images. Far Start:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

92

SItoA (Softimage to Arnold)

Far start 5

Far start 10

Far start 15

Far start 20

Far End:

Far end 5

Far end 10

Far end 15

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

93

Far end 20

Example 2
The following images show the effect of altering the Near Start parameter...

Near start 2

Near start 4

Near start 6

Near start 8

...and the Near End parameter.

Near end 2

Near end 4

Near end 6

Near end 8

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

94

SItoA (Softimage to Arnold)

You can also alter the Far Start and Far End values, as shown in the following sequences of images. Far Start:

Far start 2

Far start 4

Far start 6

Far start 8

Far End:

Far end 5

Far end 10

Far end 15

Far end 20

Example 3

Attenuation

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

95

Near Attenuation 50

Near Attenuation 100

Near Attenuation 200

Far Attenuation 0

Far Attenuation 50

Far Attenuation 100

Example 4
The following images show the effect of altering the Near Start parameter...

Near start 1

Near start 2

Near start 3

Near start 4

...and the Near End parameter.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

96

SItoA (Softimage to Arnold)

Near end 1

Near end 2

Near end 3

Near end 4

You can also alter the Far Start and Far End values, as shown in the following sequences of images. Far Start:

Far start 1

Far start 2

Far start 3

Far start 4

Far End:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

97

Far end 1

Far end 2

Far end 3

Far end 4

Christmas tree modeling credit - Jeremy Birn

5.10.2 Gobo
This filter can only be used with spot lights. In theatrical stage lighting, a gobo (or "cookie") is a thin sheet of metal with holes used to break up the light beam into an irregular, more natural pattern such as tree leaves etc. In the CG world, gobos are more commonly referred to as "slide projectors". Any texture map or procedural shader can be projected through the light.

Norm al spotlight (left) and sam e light w ith a gobo filter applied (right)

Gobo Parameters
2012 SolidAngle S.L. Confidential Information - Do Not Distribute

98

SItoA (Softimage to Arnold)

Mapping Rotation Repeat S Repeat T Wrap S Wrap T Density Filter Mode Offset X Offset Y

5.10.3 Barndoor
This filter can only be used with spot lights. Barndoors are opaque moving panels attached to the sides of the light's opening. They are typically used in theatrical and film lighting for additional control over the shape of the light beam. This Barndoor filter introduces four barndoor flaps. Each barndoor flap has three parameters. The first two parameters position the two ends of the flap across the face of the light. The third parameter (Edge) controls the softness of the edge. The positions are distances from the respective edge. The edge softness is a ramp width. The ramp starts at one (fully-open) at the barndoor's edge and tapers off to zero based on the edge width in the direction to the perimeter of the spotlight.

Norm al spotlight (left) and sam e light w ith a barndoor filter applied (right)

Barndoor Parameters
Top Left Top Right Top Edge Right Top Right Bottom Right Edge Bottom Left Bottom Right Bottom Edge Left Top Left Bottom

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Lights

99

Left Edge

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Cameras

101

Section 6 Cameras

Arnold provides the following camera types: cylindrical fisheye orthographic perspective (sometimes called a 'standard' view)

The perspective, or standard, camera is the most common. Both the perspective and fish-eye cameras provide depth of field and model the effect of altering the camera aperture. The orthographic and cylindrical camera types enable certain non-perspective views to be created, but do not attempt to model any real-world lens effects.

6.1

Cylindrical camera

This camera node provides a cylindrical view, useful for creating panoramic views. A common use of this camera projection is to allow the creation of environment maps (in 'lat-long' or latitudelongitude format) for later use as reflection maps or for environment lighting.

Horizontal Fov Controls the field of view in the horizontal axis.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

102

SItoA (Softimage to Arnold)

Horizontal Fov 5

Horizontal Fov 30

Horizontal Fov 60

Horizontal Fov 180

Horizontal Fov 270

Horizontal Fov 360

Vertical Fov Controls the field of view in the vertical axis (see 'Projective').

Vertical Fov 0

Vertical Fov 5

Vertical Fov 30

Vertical Fov 60

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Cameras

103

Vertical Fov 90

Vertical Fov 180

Vertical Fov 270

Vertical Fov 355

Vertical Fov 360

Projective The Arnold cylindrical camera can operate in two modes. With 'Projective' set to off, all rays have a common origin - they are cast from the center of the cylinder. In the vertical direction the camera acts as a pinhole camera and in the horizontal direction it acts as a spherical camera. With Projective set to on, the camera is more of a 'true' cylindrical camera; in the vertical direction the camera acts as an orthographic view and in the horizontal direction it acts as a spherical camera.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

104

SItoA (Softimage to Arnold)

Projective on

Projective off

6.2

Fisheye camera

This camera node provides a fish-eye lens type view. Depth of field and aperture controls are similar to the standard perspective camera, but the fisheye camera also provides control over the field of view.

Enable DOF Enables Depth of Field effects.

Depth of Field Off Depth of Field On

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Cameras

105

Focus Distance This is the distance at which objects appear in perfect focus, for a non-zero aperture value.

Focus Distance 1.6

Focus Distance 2.7

Focuse Distance 3

Aperture Size The radius of the aperture in world units. The smaller the aperture, the sharper the images (shallower depth of field). In the limit, a size of zero produces no depth of field blurring.

Aperture Size 0.05

Aperture Size 0.1

Aperture Size 0.2

Aperture Blades The number of blades (or polygon sides) of the polygonal aperture.

Aperture Blades 3

Aperture Blades 4

Aperture Blades 5

Aperture Blades 6

Aperture Blade Curvature The curvature of the polygonal aperture sides. A value of 0 means hard straight sides. Increasing this value results in progressively more curved edges, all the way to 1.0 which produces a perfect disk. Negative values produce a "pinched" or star-shaped aperture.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

106

SItoA (Softimage to Arnold)

Aperture Blade Aperture Blade Aperture Blade Aperture Blade Aperture Blade Aperture Blade Aperture Blade Curvature 1 Curvature 6 Curvature 0 Curvature 2 Curvature 3 Curvature 4 Curvature 5 (Aperture (Aperture (Aperture (Aperture (Aperture (Aperture (Aperture Blades 4) Blades 4) Blades 4) Blades 4) Blades 4) Blades 4) Blades 4)

Aperture Rotation Rotates the aperture by any number of degrees.

Aperture Rotation 0 (Aperture Blades 3)

Aperture Rotation 15 (Aperture Blades 3)

Aperture Rotation 30 (Aperture Blades 3)

Aperture Rotation 45 (Aperture Blades 3)

Fov

Fisheye Fov 90

Fisheye Fov 180

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Cameras

107

Fisheye 270

Fisheye Fov 360

Autocrop

Autocrop on

Autocrop off

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

108

SItoA (Softimage to Arnold)

6.3

Orthographic camera

This camera node provides an orthographic view (no perspective, so objects do not decrease in size if they are further from the camera).

The Arnold orthographic camera node has no attributes, since it merely creates an orthographic view based on the current viewport.

Perspective

Orthographic

6.4

Perspective camera

This camera node provides a perspective view, like a regular camera. This is the 'standard' camera type that you will probably use most often. In addition to normal perspective, this camera type also provides controls for depth of field, and the focal length of the camera, as well as controls to do with the aperture of the camera. This allows various camera lens effects, including bokeh, to be simulated.

Enable DOF Enables Depth of Field effects.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Cameras

109

Depth of Field - Off

Depth of Field - On

Focus Distance This is the distance at which objects appear in perfect focus, for a non-zero aperture value.

Focus Distance 4.3

Focus Distance 5.2

Focus Distance 7

Aperture Size The radius of the aperture in world units. The smaller the aperture, the sharper the images (shallower depth of field). In the limit, a size of zero produces no depth of field blurring.

Aperture Size 0.05

Aperture Size 0.1

Aperture Size 0.2

Aperture Blades The number of blades (or polygon sides) of the polygonal aperture.

Aperture Blades 3

Aperture Blades 4

Aperture Blades 5

Aperture Blades 6

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

110

SItoA (Softimage to Arnold)

Aperture Blade Curvature The curvature of the polygonal aperture sides. A value of 0 means hard straight sides. Increasing this value results in progressively more curved edges, all the way to 1.0 which produces a perfect disk. Negative values produce a "pinched" or star-shaped aperture.

Aperture Blade Aperture Blade Aperture Blade Aperture Blade Aperture Blade Aperture Blade Aperture Blade Curvature 1 Curvature 6 Curvature 0 Curvature 2 Curvature 3 Curvature 4 Curvature 5 (Aperture (Aperture (Aperture (Aperture (Aperture (Aperture (Aperture Blades 4) Blades 4) Blades 4) Blades 4) Blades 4) Blades 4) Blades 4)

Aperture Rotation Rotates the aperture by any number of degrees.

Aperture Rotation 0 (Aperture Blades 3)

Aperture Rotation 15 (Aperture Blades 3)

Aperture Rotation 30 (Aperture Blades 3)

Aperture Rotation 45 (Aperture Blades 3)

UV Remap ...

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Stand-ins (Proxy objects)

111

Section 7 Stand-ins (Proxy objects)


Softimage's normal way of loading stand-ins or "archives" as they are also called is through the "stand-in" primitive. This method is supported in SItoA, however for greater flexibility you may also use any polygon object as a stand-in by applying a property to it that references an .ass file on disk (or other procedural formats supported by Arnold such as .obj , .dll , etc.).

Exporting models to .ass archives to disk


The .ass extension stands for Arnold Scene Source. In order to export any model to an .ass file on disk you may simply use the normal Export Selected Object menu:

Remember that you may export single objects as well as a whole hierarchy made out of multiple objects. Important note: During export, Arnold will honor its current render settings, for example whether motion blur is enabled. You should think about whether you will want to use motion blur with the stand-in before you export.

You can also export the scene with the following command:
SITOA_ExportScene(frameStart, frameEnd, frameStep, toRender, createStandIn, selectionOnly, filename)

You can find information of the parameters involved in here.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

112

SItoA (Softimage to Arnold)

Rendering external .ass archives


As mentioned above SItoA can turn any polygon object into a stand-in. Select the object and pick the Arnold Standin property from the Arnold Properties > Geometry menu. Information about the Arnold Stand-in parameters can be found here.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Stand-ins (Proxy objects)

113

A typical usage of the standin property is to replace an ICE instance shape with complex geometry, as shown below. Because of the number of objects in the model, having all that geometry in the scene would make the export time rather long. Referencing the archive, on the other hand, makes the render start in a matter of seconds.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

114

SItoA (Softimage to Arnold)

Additional features
Materials: You can apply a new material to the proxy object which will propagate to the standin, allowing you to, for instance, render an occlusion or matte pass from the standins without having to export an .ass file with that material already applied. In the image below, you can see that we're overriding the hair material by simply assigning the Arnold hair shader to the cube. Properties: Applying an "Arnold Visibility" or "Arnold Sidedness" property to the proxy object also works. Custom procedurals: you can also load compiled procedurals in both Windows (.dll extension) or Linux (.so extension). At the moment, only one compiled procedural is shipped with SItoA, but there may be support for more in the future. The compiled procedural currently available is sitoa_curves_proc, used to load hair objects saved as .bin files (which are much smaller than .ass files). You can find this in the bin folder of your SItoA installation. So, you can now use sitoa_curves_proc as your standin path, providing the bin file path as data, as shown below. Note that if several bin files were exported for the same hair object (for instance hair.0.1.bin, hair.1.1.bin, etc.), you just need to provide the first one, the others are loaded automatically by the sitoa_curves_proc program.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Stand-ins (Proxy objects)

115

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

116

SItoA (Softimage to Arnold)

Advanced features
In version 2.2, we added a graphic sequencer allowing to preview the standins' content. See the SITOA_Viewer page for details. Also, we provide a way to attach custom user parameters to the exported procedural. We've added a User Parameters grid. Is Enabled, each row of the grid can define a user parameter by its Name, Structure, Type and Value. You can add a row by clicking New Parameter, or delete an existing one by selecting it and clicking Delete Parameter. The Structure can be either SINGLE or ARRAY, the Type can be BOOL, INT, VECTOR, POINT, etc. The syntax to use for the Value depends on the structure and the type. 1. If the structure is SINGLE, and the type is made of a single element (bool, int, float) just type the plain value. Instead, if the type is a vector, point, etc, each field must be separated by a white space.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Stand-ins (Proxy objects)

117

2. If the structure is ARRAY, the array members must be separated by a ',' character. As an example, here is a list of valid entries, and the corresponding section of the exported ass file.

procedural { name cube dso "C:/dev/Arnold/Arnold_DB_2010/Render_Archives/torus_Archive.ass" min -4 -1 -4 max 4 1 4 matrix 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 declare BoolSimple constant BOOL BoolSimple on declare VecSimple constant VECTOR VecSimple 1 2 3 declare VecArray constant ARRAY VECTOR VecArray 3 1 VECTOR 4 5 6 7 8 9 10 11 12 declare FloatArray constant ARRAY FLOAT FloatArray 2 1 FLOAT 13 14 declare StringArray constant ARRAY STRING StringArray 3 1 STRING "One" "Two" "Three" }

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

The SItoA Viewer

119

Section 8 The SItoA Viewer


From version 2.2, SItoA includes a graphic sequencer, called SITOA_Viewer, allowing you to preview the content of the procedural (also called standin) nodes. From any window, set the display mode to Realtime Shaders -> SITOA_Viewer.

The viewer loads all the procedurals in the scene (both archive-types and compiled so/dll) and draws them in ogl, in either wireframe, points, or bounding box mode. The viewer draws all the polymesh, curves, points and sphere nodes and their ginstances generated by the procedural. Softimage instances of the standin are now displayed. Points and sphere nodes (from ICE or simulation software like Naiad) are always drawn as points. There are two way you can set the parameters of the viewer: 1. Globally: by the property called SITOA_Viewer created at the scene root level when you open select the viewer. 2. Locally, per-standin: in the SITOA_Viewer property, turn Use Per-Standin Parameters on. This means that each standin object will drive the way its nodes are drawn, depending on the parameters now exposed in the arnold standin property.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

120

SItoA (Softimage to Arnold)

Note that scene saved with a previous version of the standin property default to the global mode.

You can select the way the rest of the scene is displayed (Scene View), if to use a static color or a random one for each object, and the width for lines and points. When in points mode, the Points Display % parameter defines the percentage (in the 0..1 range) of points that are actually drawn.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

The SItoA Viewer

121

If Refresh On Frame Change is on, the procedurals are reloaded on a frame change. This is handy to preview sequences, but it can be slow with large amounts of data. Also, the graphic sequencer is not very fast itself, so our advice is to use the box mode if you need to move the camera around.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

122

SItoA (Softimage to Arnold)

Note that you can also use the viewer to display a whole ass file generated from a scene. You can simply pick a cube, apply the standin property and select the scene ass file as its Path.

From SItoA 2.3 onward, an additional parameter, 'Use .asstoc (if available)' is provided.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

The SItoA Viewer

123

If this control is enabled, and if a standin path is of type .ass or .ass.gz, and if the corresponding .asstoc file is available, then the standin is always drawn as a box, whose boundaries are the ones listed in the .asstoc file. This option is only available for the viewer, and not for each individual standin property. Note that if this control is enabled, but a standin does not have an .asstoc buddy, then it is drawn as before, i.e., according to the Mode of the viewer or of the standin property, depending on Use Per-Standin Parameters.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

ICE Support

125

Section 9 ICE Support


Arnold provides support for Softimage's ICE (Interactive Creative Environment) visual programming system, allowing you to create complex effects by connecting nodes graphically. SItoA can efficiently render Point Clouds and Strands. Custom attributes are also supported.

Shapes
Currently the following shapes are supported by Arnold: Points Discs Rectangles Spheres Boxes Cylinders Cones Strands In addition, SItoA supports ICE Geometry instantiation on both points and along strands.

ICE exam ples: a bunny m odel covered w ith particles using the sphere prim itive (left) and instanced tanks (right)

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

126

SItoA (Softimage to Arnold)

Exporting Attributes
In ICE, each particle has many attributes such as age, rotation, color, elasticity, size, etc. SItoA fully supports reading predefined as well as custom attributes of any data type in the rendertree using the "Attribute" shaders. To export any attributes you may want to use in the Render Tree, you will need to add a "Set Data" node that assigns the data to an attribute. There is one exception: the color attribute is always exported so you don't need to assign it manually.

Assigning a random scalar value to a custom attribute called "HueOffset"

Strands
ICE Strands are rendered using Arnold's Curve Primitive. The following attributes are required: 'StrandPosition'. 'Size' for constant thickness and 'StrandSize' for varying thickness. 'Color' for constant or uniform (one color per strand) color and 'StrandColor' for varying color. Instances on strands are also supported. Below is a standard set of strands, rendered by Arnold curve nodes:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

ICE Support

127

And this is the same scene, instancing a cone along the strands:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

128

SItoA (Softimage to Arnold)

You can instantiate meshes and models. The pointcloud's attributes (like the color in this case) are also exported as constant values for each instanced object. Since the geometry of the master objects is deformed by the strands, each shape is exported as a separate shape, and not as an Arnold instance. The strands' size and orientation are also taken into account for shaping the objects. Here is for instance a cube shape, which gets twirled by the strand orientation:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

ICE Support

129

In version 2.3 of SItoA, we added support for oriented ribbons. If no instance shape is in place, you can tell the curves primitive to orient the ribbons along the strand orientation directions. To do so, apply an Arnold Property to the pointcloud, and set the Curves Mode to Oriented Ribbon (ICE Strands). This is the same scene rendered with oriented ribbons:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

130

SItoA (Softimage to Arnold)

Motion Blur
Required Attributes:
'PointVelocity' for linear transformation motion blur. 'AngularVelocity' for rotational motion blur. Note that this attribute does not come for free, you have

to set it in the icetree as shown in the snapshot: get the rotation, subtract it from the one at the previous frame, and multiply it by the frame rate. This way you have the angular velocity (radians per second). Finally, set this data as Self.AngularVelocity
'StrandVelocity' for linear deformation motion blur on strands.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

ICE Support

131

From 2.1, we added a new flag called Exact ICE Blur, that, if enabled, does not require the velocity attributes to be defined for points. The pointcloud geometry is evaluated at all the motion blur times, so giving much better results. But there is a price to pay, since it requires evaluating the geometry several times, which can be quite expensive. And, there are two limitation: 1. It does not work at all for strands 2. It does not work for pointclouds with varying number of points per frame (for instance, basic emissions). It will be automatically disabled, but you should do it yourself in advance to save time to the exporter. Related topics: Hair / curve parameters (Arnold properties menu) Hair Tutorial

Shading with Attributes


For objects and strands, you must get the desired attribute by one of the Attribute_* nodes in the rendertree.

Sam e scalar attribute used to drive the Hue offset in the ColorCorrection shader

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

132

SItoA (Softimage to Arnold)

Exam ple render w ith no hue offset (left) and w ith hue offset (right)

Instanced Lights with Attributes


For instanced lights (SItoA light shaders are not texturable), we go with the attribute name. Any attribute whose name starts with "ArnoldLight " (case insensitive) is treated as a candidate for setting a given parameter on the instanced lights. What follows "ArnoldLight " is used as the parameter name to be set. The parameter names used are not those of the light shader. The parameter names refer to the Arnold node used for that light. For instance, all the light nodes in Arnold have parameters called "color " and "intensity ". So, you simple have to set two attributes called ArnoldLightColor and ArnoldLightIntensity , and they will be automatically pushed as the value of the corresponding parameters of the Arnold lights. There is no need to do anything in the light rendertree. SItoA will also convert between different types. For instance, in ICE you can declare ArnoldLightColor as a scalar attribute, and SItoA will assign the same scalar value to the light color's R,G,B. Note that, not being pulled by any rendertree node, you must force ICE to export the ArnoldLIght* attributes, for instance by displaying their values in the viewport, as showing below.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

ICE Support

133

You can set light parameters of type point, vector, color, scalar, integer and boolean. To get the full list of the parameters for a given light type, use "kick -info <node>". For instance, for a point light, kick -info point_light returns this:

Type -----------POINT[] FLOAT ENUM BOOL BOOL NODE MATRIX[] RGB FLOAT FLOAT BOOL FLOAT RGB INT

Name -------------------------------position radius decay_type affect_volumetrics cast_volumetric_shadows volume_density matrix color intensity exposure cast_shadows shadow_density shadow_color samples

Default ------------0, 0, 0 0 quadratic true true (null) 1, 1, 1 1 0 true 1 0, 0, 0 1

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

134

SItoA (Softimage to Arnold)

...

which tells you that, for instance, if you want to affect the shadow color, the correct attribute name to set in ICE will be ArnoldLightShadow_Color (again, case insensitive).

Instanced Standins with Attributes


From version 2.2, SItoA allows for standins driven by ICE attributes as well, similar to the support for lights. You should proceed as usual when instancing standins on a pointcloud. Then, if the standin property has the string "ArnoldProcedural " set for the path and/or the data, then it will be exported by ICE as an Arnold procedural node. In ICE, any attribute starting with "ArnoldProcedural " is a candidate for setting the corresponding procedural parameter. In the example shown below, we set ArnoldProceduralDso to point to an .ass file (depending if the point id is even or odd), and set ArnoldProceduralData to void. "Dso " and "Data " are the names of the parameters of the native Arnold procedural node. We can then set any of the procedural parameters, as long as you we the original name (kick -info procedural ) after ArnoldProcedural. For instance, ArnoldProceduralSelf_Shadows , etc., the same way we did for lights (see above). If Path is a valid dll (meaning that Data must be set equal to "ArnoldProcedural " to be managed by ICE), then the dll path is used, and you can just set ArnoldProceduralData in ICE to have the same dll using different data for different points. If Deferred Loading is on, then the standin object bounding box is used (the asstoc file is not used, even though selected in the standin property). If you need to set or overwrite the min and max boundaries (for instance if using your own custom procedural), you can push two extra 3D vector attributes named ArnoldProceduralMin and ArnoldProceduralMax . Note that, not being pulled by any rendertree node, you must force ICE to export the ArnoldProcedural* attributes, for instance by displaying their values in the viewport, as shown below. Also, while rendering, you may get some warnings from Arnold about names being reused; these warnings can be ignored.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

ICE Support

135

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Multi-Layer EXR

137

Section 10 Multi-Layer EXR


Arnold 3.3.8 added support for multi-layer EXR. So, you can now have many AOVs (aka render channels) writing into the same EXR output file. In SItoA, we simply detect the output filename for the render channels. If several render channels are of EXR type, and they share the same output filename, they are layered into the same EXR file. There are no extra options to tune. With the following setup, all the listed AOVs, except the main channel, are written into the same [Pass]_Test EXR file.

The only limitation is that the bit depth (float/half float) must be the same for all the layers. If two or more EXR channels (with the same output filename) have different bit depth, the bit depth of the first channel in the list is used for the others also, and a warning is logged.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

138

SItoA (Softimage to Arnold)

In this case, for instance, the following warning is fired: INFO : [sitoa] Bit Depth for Arnold_Direct_Specular (float32) differs from Arnold_Direct_Diffuse (float16). Defaulting to float16

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Hair Tutorial

139

Section 11 Hair Tutorial


The purpose of this section is to give users a better understanding of how to render hair efficiently in Arnold. The key parameters that affect hair rendering speed will be explained and illustrated with rendering examples. General optimization tips and tricks will also be covered. The following tutorial covers aspects relating to both the Arnold curves shape node, and the Arnold hair shader node.

Hair rendering mode


Arnold can render hairs in two different modes: "Ribbon" and "Thick" mode, the following image illustrates the difference. In this document only the "Ribbon" mode will be used as it's best mode for rendering thin hair/ fur, which is what this document will focus on.

Hairs in ribbon m ode (left) and thick m ode (right)

These modes as well as other settings related to hair are described more in detail here.

Min Pixel Width (MPW)


The nature of hair or fur is that it is made up of a lot of very fine/thin strands. Typically the smaller something

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

140

SItoA (Softimage to Arnold)

is in screen space the more Anti-Aliasing (AA) samples is required to render it smooth and without flickering in animation, which makes rendering hair challenging. To make fur rendering easier on the sampling Arnold has introduced something called "Min Pixel Width" (MPW). The concept behind MPW is to make extremely thin hair strands automatically thicker in screen space while at the same time making them transparent. This helps the hair strand to render smoother and with less flickering in animation even at lower AA settings. The MPW transparency will only kick in if the given hair is thinner in screen space than the specified MPW value; for example if all the hair strands in the frame are more than 1 pixel wide and the MPW value is set to 0.5, no transparency will be used at all. If the camera for example starts to zoom out from that point thus making all the hairs thinner in screen space, as soon as they go below 0.5 pixels the MPW system will kick in and automatically keep the hairs 0.5 pixels wide while making them more and more transparent the thinner/farther away they get.

The MPW param eter in the "Arnold Param eters" property

How many layers of hair strands will be made transparent depends on the "Auto Transparency" setting in the render options, as illustrated below adjusting this value has a great impact on both quality and rendertime. Setting the auto transparency to 0 will always disable MPW on all the hair in the scene.

MPW accuracy depends largely on the auto transparency

Note: MPW only works on hair in "Ribbon" mode.

Rendering examples
Below you will find the same scene rendered with different settings for the "MPW" value and the "Auto Transparency". In all examples the following sample settings were used: AA Samples: 3 Diffuse Samples: 3 Glossy Samples: 3 Diffuse/GI Bounces: 1 These first set of images all use an MPW value of 0.1, note how the hair is still rather jaggy even with auto transparency set to 5, with these settings higher AA settings would be required to produce smooth results:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Hair Tutorial

141

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

142

SItoA (Softimage to Arnold)

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Hair Tutorial

143

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

144

SItoA (Softimage to Arnold)

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Hair Tutorial

145

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

146

SItoA (Softimage to Arnold)

Here we are using an MPW value of 0.25, this is the default in SItoA even when the Arnold Parameters property has not been applied to the hair, note how when auto transparency is increased the hair is a lot smoother than before even with the same AA settings:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Hair Tutorial

147

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

148

SItoA (Softimage to Arnold)

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Hair Tutorial

149

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

150

SItoA (Softimage to Arnold)

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Hair Tutorial

151

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

152

SItoA (Softimage to Arnold)

Finally we up the MPW value of 0.5, note that even when auto transparency is set to 0 the hairs will always be at least 0.5 pixels thick in screen space though not transparent.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Hair Tutorial

153

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

154

SItoA (Softimage to Arnold)

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Hair Tutorial

155

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

156

SItoA (Softimage to Arnold)

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Hair Tutorial

157

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

158

SItoA (Softimage to Arnold)

Optimization
As seen in the examples above making the hairs transparent has a big impact on render times. For optimal rendering speed it is very important to use sensible values. How smooth/slow hair renders depends on three things: Min Pixel Width Auto Transparency depth Number of Anti-Aliasing Samples The higher the AA samples, the less you will need to rely on MPW to get smooth hair. If your scene is already using 10 AA samples to get smooth motionblur and DOF you can use a much smaller MPW value than if you were using only for example 4 AA samples. As mentioned above MPW will have an effect even if auto transparency is set to 0, so it can be useful as a

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Hair Tutorial

159

"cap" for how small a hair is allowed to get even if you're not making the hair transparent, looking at the render times above thickening the hairs using MPW can have a positive effect on the rendertime when auto transparency is set to 0.

Diffuse Cache
In the Arnold hair shader there is a switch called "Diffuse Cache". This works by automatically baking the indirect illumination into each control point of each hair strand, when this switch is enabled secondary global illumination rays will only sample/see the baked illumination on the hair rather than sampling the full hair shader network as it normally would. Naturally this switch has a bigger impact on render time when there is a lot of global illumination bounces going on in the scene, for illustration purposes the following scene uses the current settings: AA Samples: 5 Diffuse Samples: 3 Glossy Samples: 3 Diffuse/GI Bounces: 3

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

160

SItoA (Softimage to Arnold)

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Hair Tutorial

161

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

163

Section 12 Shaders
SitoA supports most of the standard Softimage shaders as well as a number of shaders which are specific to Arnold. Softimage shaders Arnold shaders

12.1

XSI Shaders

Illumination Phong Lambert Constant Sprite Incidence Ambient Occlusion material_phong material_constant material_lambert sib_sprite sib_incidence_v2 XSIAmbientOcclusion

Texture Image Scalar Image Gradient Cell Cell Scalar Fractal Scalar Mip CameraMap txt2d_image_explicit txt2d_scalarimage_explicit txt2d_gradient_v2 txt3d-cellular_v3 BA_cell_scl BA_fractal4d2_scl mip_cameramap

Attributes Boolean Color Integer Scalar Vector sib_attribute_boolean sib_attribute_color sib_attribute_integer sib_attribute_scalar sib_attribute_vector

Bump

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

164

SItoA (Softimage to Arnold)

Bumpmap Normal Map Normal Map

sib_zbump XSINormalMap2 XSINormalMap3

Volume Fog soft_fog

Color Channels Picker HLSA Combine HSVA Combine RGBA Combine sib_channel_picker sib_hlsa_combine sib_hsva_combine sib_color_combine

Image Processing Color Correction sib_color_correction Color Balance sib_color_balance HLS Adjust sib_color_hls_adjust Intensity mib_color_intensity Invert sib_color_invert RGBA Keyer rgba_keyer Scalar Invert sib_scalar_invert

Mixers Mix 2 Colors Mix 8 Colors sib_color_2mix sib_color_8mix

Conversion Color to Scalar sib_color_to_scalar Color to Vector sib_color_to_vector RGB to HSV sib_color_rgb_to_hsv HSV to RGB sib_color_hsv_to_rgb Integer to Scalarsib_integer_to_scalar Scalar to Color sib_scalar_to_color Scalar to Integersib_scalar_to_integer Scalars to Vector sib_scalars_to_vector Vector to Color sib_vector_to_color Vector to Scalar sib_vector_to_scalar Vector Coordinate Convertor sib_space_conversion

Math Color Basic Color Exponent Color Logic Color Unary sib_color_math_basic sib_color_math_exponent sib_color_math_logic sib_color_math_unary

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

165

Color Smooth Range sib_color_smoothrange Average mib_color_average Change Range sib_interp_linear In Range sib_color_inrange Scalar Basic sib_scalar_math_basic Scalar Exponent sib_scalar_math_exponent Scalar In Range sib_scalar_inrange Scalar Logic sib_scalar_math_logic Scalar Unary sib_scalar_math_unary Scalar Smooth Range sib_scalar_smoothrange Boolean Logic sib_boolean_math_logic Boolean Negate sib_boolean_negate Vector-Scalar sib_vector_math_scalar Vector-Vector sib_vector_math_vector

Raytracing Sprite sib_sprite Dielectric sib_dielectric_ior Opaque mib_opacity Reflection mib_reflect Reflection Diffuse sib_diffuse_reflection Refraction mib_refract Refraction Diffuse sib_diffuse_refraction_phen Transparency sib_transparency

Share Color Boolean Integer Scalar Vector Color 4 Passthrough Boolean Passthrough Integer Passthrough Scalar Passthrough Matrix Passthrough Switch Front-Back Color Boolean Scalar Boolean Vector Boolean mib_twosided sib_color_switch sib_scalar_switch sib_vector_switch sib_color_passthrough sib_boolean_passthrough sib_integer_passthrough sib_scalar_passthrough sib_vector_passthrough Color4Passthrough BooleanPassthrough.cpp IntegerPassthrough.cpp ScalarPassthrough.cpp MatrixPassthrough.cpp

Map LookUps Image LookUp mib_texture_lookup Map Lookup Color map_lookup_color Map Lookup Scalar map_lookup_scalar Map Lookup Vector map_lookup_vector Edit_UV mib_texture_remap_params
2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

166

SItoA (Softimage to Arnold)

Auxiliary Shaders ImageClip sib_image_clip Matte sib_matte Texture Layers sib_texturelayer

12.2

Arnold Shaders

Arnold shaders are described below. Ambient Occlusion Standard Utility Wireframe Bump2D Bump3D Noise Hair Ray Switch Environment Displacement Volume Scattering Sky Motion Vector Camera Projector Skin SSS Shader (skin_sss )

12.2.1 Ambient Occlusion


Shader which calculates ambient occlusion, output as a color value (RGB).

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

167

Scene rendered w ith an am bient occlusion shader

Settings

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

168

SItoA (Softimage to Arnold)

Bright Color: This attribute controls the lightest color of the occlusion. It can work as a clamp to keep the black and white range under a limit or you can change the colors for other desired looks.

Bright 0.25

Bright 0.5

Bright 1

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

169

Bright color set to blue

Dark Color: This attribute controls the darkest color of the occlusion. It can work as a clamp to keep the black and white range under a limit.

Dark 0.25

Dark 0.5

Dark 0.75

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

170

SItoA (Softimage to Arnold)

Dark color set to blue

Opacity: It is possible to drive the opacity of the ambient occlusion effect via a texture map. You must ensure that Opaque is switched off for the geometry.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

171

Samples: Controls the overall quality of the occlusion. Lower numbers are faster to calculate but generate noise. Increasing the number of samples will reduce noise and give a better quality result, however it is more costly to render. The default value of 3 is good enough for most situations.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

172

SItoA (Softimage to Arnold)

Sam ples 1

Sam ples 3

Spread: Spread is the basic dropoff between the bright and the dark colors in the occlusion. A higher spread may require more samples.

Spread 0.25

Spread 0.5

Spread 1

Near: Adjusts the near clipping distance range of the ambient occlusion effect.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

173

Near Clip 0

Near Clip 1

Near Clip 2

Far: Adjusts the far clipping distance range of the ambient occlusion effect.

Far Clip 1

Far Clip 2.5

Far Clip 5

FallOff: A distance based effect. Larger Falloff values increase how fast the occlusion effect dies over distance.

Falloff 1

Falloff 2

Falloff 10

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

174

SItoA (Softimage to Arnold)

Invert Normals: This attribute changes the direction of the rays being traced. When it is off the rays are traced outside of the surface. When it is on the rays are traced inside the surface.

Invert Norm als off

Invert norm als on

12.2.2 Standard
The standard shader node is a multi-purpose color shader capable of producing all type of materials, from simple plastic (Phong), to things like car paint and skin (with effects like sub-surface scattering and Fresnel). The node outputs a color value (RGB).

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

175

Sphere w ith various settings for standard shader

Because of the large number of controls, the standard shader is presented in SItoA via several tabs, each of which contains several groups of controls.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

176

SItoA (Softimage to Arnold)

The standard shader is very powerful, and allows a large number of different sorts of materials to be created, but can be somewhat daunting at first. It's often best to start with a material which has been pre-defined using the standard shader and make incremental changes to it to get the effect you want, rather than starting from scratch. The Arnold Tutorials manual contains a section on using the standard shader to create realistic materials, with a short 'glossary' of settings suitable for common material like car paints, chrome, glossy and matte plastic, and others. The individual settings are described in more detail below, for each of the tabs: Illumination, Reflection/ Refraction, and Indirect Illumination. There are further controls under the Render Channels tab, relating to AOV / render channel use.

Illumination tab
2012 SolidAngle S.L. Confidential Information - Do Not Distribute

Shaders

177

Controls on the Illumination tab are divided into sections: Diffuse, Specular (including Fresnel), and Other. Diffuse

Color: The diffuse color. Scale: Scale the diffuse component. Fresnel affects Diffuse: Specify whether Fresnel affects the diffuse component. Roughness: Controls the diffuse roughness using the Oren-Nayar reflectance model (which models diffuse reflection from rough surfaces). A zero value is equivalent to Lambertian reflectance, higher values (up to 1) are equivalent to a much rougher surface (e.g., plaster, sand, concrete, etc.)

Diffuse roughness 0

Diffuse roughness 1

Backlighting: Provides the effect of a translucent object being lit from behind (the shading point is 'lit' by the specified fraction of the light hitting the reverse of the object at that point). This should only be used with thin objects (single sided geometry); objects with thickness will render incorrectly.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

178

SItoA (Softimage to Arnold)

Backlight 0

Backlight 1

Direct Scale: ...

Direct Diffuse 0-1

Indirect Scale: ...

Indirect diffuse 0

Indirect diffuse 1

Specular

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

179

Color: The color of the specular highlights.

Specular Color 0-1

Scale: Scale the specular component. BRDF: The BRDF model to use for specular reflections. Choose from cook_torrence, stretched_phong, ward_duer.

Cook Torrence

Stretched Phong

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

180

SItoA (Softimage to Arnold)

Ward Duer

Roughness: Controls how blurry your reflections are. The lower the value the sharper the reflection. In the limit, a value of 0 will give you perfectly sharp mirror reflection. Anisotropy: Non-zero values apply an anisotropic reflectance effect, similar to brushed metal. The higher this value, the more pronounced the anisotropic reflectance is.

Anisotropy 0-1

Rotation: ...

Specular Fresnel Rotation 0-1

Direct Scale: ...

Direct scale 0

Direct specular 0.5

Direct scale 1

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

181

Indirect Scale: ...

Indirect Specular 0

Indirect Specular 0.5

Indirect Specular 1.0

(Fresnel) Enable: Turns specular Fresnel on / off.

Specular Fresnel off

Specular Fresnel on

(Fresnel) Reflectance at Facing The specular Fresnel coefficient.

Fresnel Coefficient 0-1

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

182

SItoA (Softimage to Arnold)

Higher Fresnel coefficient values are useful for achieving m aterials such as car paint (Fresnel coefficient 0-1)

Other Settings

Bounce Factor: Determines the amount of indirect light received from the opacity of the material.

In the example below the Bounce Factor of the floor material has been modified. Notice the effect this has on the sphere placed on it.

Bounce Factor 0

Bounce Factor 1

Bounce Factor 2

Reflection / Refraction
This tab is divided into the following sections: Reflection, Refraction, Opacity. Reflection

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

183

Color: The color of the reflection ray at the current point.

Reflection Color 0-1

Scale: Scale the contribution from reflection rays.

Reflection Scale 0-1

Fresnel: Enable: Turn Fresnel effects on or off. Coefficient: The Fresnel coefficient.

Fresnel Coefficient 0-1

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

184

SItoA (Softimage to Arnold)

Exit Color: The color used to demonstrate insufficient reflection ray depth. Useful for showing areas of deep reflection in the image or materials that require higher reflection depth. You can choose to use the environment color or specify a color directly.

Refraction

Color: The color of the refraction ray at the current point. Scale: Scale the contribution from refraction rays. IOR: The index of refraction used. The default value of 1.0 is the refractive index of a vacuum, i.e., an object with IOR of 1.0 in empty space will not refract any light rays. In simple terms, 1.0 means 'no refraction'.

Index of refraction 1-2

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

185

Index of refraction 1.0

Index of refraction 1.5

Roughness: ...

Refraction Roughness 0

Refraction Roughness 0.5

Refraction Roughness 1

Transmittance: ...

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

186

SItoA (Softimage to Arnold)

Exit Color Use Environment: ... Color: The color used to demonstrate insufficient refraction ray depth. Useful for showing areas of deep refractions in the image or materials that require higher refraction depth.

Refraction exit use environm ent

Refraction exit color set to w hite

Refraction exit color set to red

Internal Reflections:

Opacity

Color: Controls the degree to which light is not allowed to travel through the object. Unlike transparency, whereby the material still considers diffuse, specular etc, opacity will affect the entire shader. Useful for retaining the shadow definition of an object, whilst making the object itself invisible to the camera.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

187

Opacity 0-1

Indirect Illumination
This tab is divided into the following sections: Caustics, Emission, Sub-Surface Scattering. Note that 'hard' caustics from small but bright light sources (e.g., spot light through a wine glass) are not currently possible.

Caustics Arnold can produce 'soft' caustics from glossy surfaces or large sources of indirect light.

Refractive: This switch specifies whether the diffuse GI rays can 'see' refraction rays (there are also switches for mirror and glossy reflection rays). By default only the direct and indirect diffuse rays are seen by GI rays. Note that 'hard' caustics from small but bright light sources (e.g., spot light through a wine glass) are not currently possible. Reflective: This switch specifies whether the diffuse GI rays can 'see' mirror reflection rays (there are also switches for glossy reflection and refraction rays). By default only the direct and indirect diffuse rays are seen by GI rays. Glossy: This switch specifies whether the diffuse GI rays can 'see' glossy reflection rays (there are also switches for mirror and refraction rays). By default only the direct and indirect diffuse rays are seen by GI rays.

Emission Gives the appearance that the material is emitting incandescent light.

Color: The incandescent color that the material is emitting.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

188

SItoA (Softimage to Arnold)

Scale: Controls the amount of emitted light.

Em ission Scale 0

Em ission Scale 1

Sub-Surface Scattering The SSS component in this shader uses an efficient approximation to multiple-scattering that is based on Jensen and Buehler's fast hierarchical BSSRDF work. The illumination on the surface of the object is sampled and then cached into an irradiance pointcloud, which is then interpolated at each SSS lookup at render time. The interpolation algorithm uses a convolution of the points with a finite-support cubic scattering kernel. While the look of the SSS effect is adjusted here in the shader, the quality of the SSS pointcloud is adjusted with object-specific settings that are described here.

Color: The color used to determine the subsurface scattering effect. For example, replicating a skin material, would mean setting this to a fleshy color. Scale: The degree of sub-surface scattering (different amounts of subsurface scattering are needed for rendering materials like wax, skin and milk).

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

189

Sub-Surface Scattering Scale 0

Sub-Surface Scattering Scale 1

Radius: The radius determines the size of the points used for the subsurface calculation. Higher values will increase the quality of the appearance of the subsurface scattering.

SSS Radius 0-1

12.2.3 Utility
The utility shader is a general 'all purpose' utility node that can be used for creating passes for use within compositing packages.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

190

SItoA (Softimage to Arnold)

Color Sets the color of the shader when the Color Mode is set to color. Opacity Sets the opacity of the shader. Ensure that 'opaque' is switched off in the Arnold attributes of the mesh. Color Mode The mode used to color the mesh. You can either choose a flat color as specified by the color setting, or the output color can be chosen to represent various things such as the geometry normal, the shading normal, a wireframe view, etc. The examples below have been rendered using the ndoteye shading mode.

color

ng

ns

n Shader Normals in World Space.

bary Barycentric coordinates (bu corresponds to red and bv to green) of the primitive

Single color output. Geometry Normals in Smooth un-bumped World Space. Normals in screen space.

u uv v uv coordinates (u u coordinate mapped v coordinate mapped corresponds to red to the red to the red and v to green) of the green blue channels. green blue channels. primitive.

dpdu Surface derivative with respect to u coordinate

dpdv Surface derivative with respect to v coordinate

prims

wire

polywire

obj

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

191

Shading point, relative to the Bounding Box

Each primitive ID is represented in a different color.

Renders a triangulated wireframe of the mesh.

Renders a triangulated wireframe of the mesh.

Object mode uses the name of the shapes to compute the color.

edgelength

floatgrid

reflectline

bad uvs

nlights Shows in a heatmap mode (black is zero lights, red is the max number of lights) the number of lights that affect the result of the shading point.

Shows in a heatmap A color is mapped Useful for diagnosing Returns magenta in mode the edge length around a Hash the contour lines of the UV of the of the primitive (only function based in the the shape of a mesh. primitive that are visible when adaptive Shading Point. degenerated. subdivision is enabled for the mesh.

id

Material ID. Commonly used when outputting the render per material. ID mode uses the ID parameter shapes have in order to compute the color.

Shade Mode The shading mode used to render the mesh. 'Ndoteye' renders using the eye vector mode. 'Lambert' renders using a simple Lambertian shading model. 'Flat' renders the model as a pure, solid flatly lit and shaded color. 'Ambocc' renders the model using an ambient occlusion technique.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

192

SItoA (Softimage to Arnold)

Flat

Am bocc

Lam bert

ndoteye

12.2.4 Wireframe
Color shader which produces wire-frame style output (as RGB).

Rendered w ith aiWirefram e m aterial. Edge type set to polygon.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

193

Colors: Fill: The color used to represent the polygon faces. Line: The color used to represent the edge lines of the polygon faces. Settings: Color Mode: Determines how the mesh is represented. This can be either triangles, polygons or patches. If triangles is selected a polygon mesh containing quads will be shown as triangles.

Triangles

Polygons

Patches

Line Width: The thickness of the edge lines of the polygon faces. Raster Space: The image space used to reference the pixel values.

12.2.5 Bump2D
Provides bump mapping based on a 2d texture map. Note that bump mapping doesn't alter the geometry of the object, it only changes shading normals, so things won't look right in silhouette; however, very often this does not matter.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

194

SItoA (Softimage to Arnold)

A cube and a sphere using Bum p2D w ith a heightm ap texture (texture show n on left)

There are two ways to apply a Bump2D shader. Both methods will give the same result. Keep in mind that the object will need UV coordinates that will be used to derive the perturbation. The first method is the common workflow in Softimage (and thus, the preferred one), using the Bump Map slot of the material:

The second method is to connect the Bump2D shader to the surface slot of the material and connect the main surface shader to its shader slot:

Settings

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

195

Connections: Bump: The input for the bump mapping (normally a texture map, but could be the output of another shader node which produces RGBA). Shader: Optionally, a shader to specify the color and/or reflectance can be specified here, allowing the node to be connected to the Surface slot of the material (rather than connecting bump2d to the Bump Map slot and the other shader to the Surface slot separately). This may be useful in some situations.

Bump Height: Allows you to scale the height of the bump map.

12.2.6 Noise
Shader which evaluates a coherent noise function (potentially summed over several octaves, giving fractal noise, sometimes known as a turbulence function). The (floating point) output of this node can be used as input to several other shader nodes to produce various effects. This is useful for creating many real-world patterns (marble, granite, leather, etc.).

Settings

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

196

SItoA (Softimage to Arnold)

Octaves The number of octaves over which the noise function is calculated (the fractal noise function is repeated at multiple frequencies, known as octaves; normally each octave is at about twice the frequency, i.e., half the size, of the previous one, but you can alter this with the lacunarity control). Lacunarity Controls the average size of gaps in the texture pattern produced. Lacunarity actually means the change in scale between each octave - in musical scales this would be 2.0, meaning each octave is at twice the frequency / half the scale of the previous one, but for our purposes numbers that are near 2.0, but not actually 2.0 are best. In most cases we recommend using the default value of 1.92. Distortion Defines a degree of random displacement applied to each point as part of the noise calculation, giving a different aesthetic feel. Amplitude Controls the amplitude, or range, of the output. Normally the output is RGBA with values between 0 and 1, the amplitude control multiplies this. Space Coordinates Specify the coordinate space to use. Scale Control the scale of the noise function in x, y, and z directions. Offset Offset the noise in x, y, or z directions.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

197

12.2.7 Hair
The hair shader is a color shader provided to render the look of hair or fur which has been defined somehow. Note that this shader needs to be used on geometry that has been defined to look like hair or fur (for example using Arnold's curves shape node). Other color shaders could be used, but the hair color shader is useful as it lets you define different diffuse colors for the root and tip of the hairs, for example. See also the topic on Arnold Curves Parameters, and the Hair Tutorial.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

198

SItoA (Softimage to Arnold)

Curves rendered w ith hair shader. Model by Jaim e Sotelo

The images below show the separate effect of the root, tip and specular colors. The far right image is the resulting combination of these colors.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

199

The controls are split into groups to control diffuse, specular, and opacity.

Diffuse

Root Color The color at the root of the hair. Tip Color The color at the tip of the hair. Ambient Diffuse The ambient diffuse (ambdiff) parameter in the hair shader is a control that blends between two different shading modes: fully isotropic and the Kajiya-Kay diffuse BRDF. When set to 0, the diffuse part of the shader will be fully isotropic, which means that the strand will reflect the same amount of light towards the camera no matter which direction the light is coming from. When set to 1, the diffuse part of the shader will follow the Kajiya-Kay diffuse equation, which means that light shining down on the tip of a hair will not brighten the strand as much as light shining in from the sides. Any value between 0 and 1 is also valid, and will just blend between the two modes. Indirect Diffuse The indirect diffuse (kd_ind) parameter controls the amount of indirect light (GI light rays) the shader will bounce. The higher the setting, the more that global illumination will affect the final color of the shader.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

200

SItoA (Softimage to Arnold)

Indirect Diffuse 0

Indirect Diffuse 5

Diffuse Cache This works by automatically baking the indirect illumination into each control point of each hair strand. When this switch is enabled, secondary global illumination rays will only sample the baked illumination on the hair rather than sampling the full hair shader network as it normally would. This can give a big reduction in render time if there are a lot of global illumination bounces in the scene.

Specular

Specular Color The specular color plays a large part in the overall appearance of the hair. Note that it is possible to specify a texture map for the specular color which can give a realistic effect.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

201

Specular color brow n

Fractal texture m ap assigned to specular color

Specular Scale the specular contribution.

Specular 0

Specular 0.3

Specular 1

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

202

SItoA (Softimage to Arnold)

Glossy Scale the glossy contribution.

Glossiness 0

Glossiness 50

Glossiness 100

Opacity

Color Controls the degree of opacity of the hair.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

203

Opacity 1

Opacity 0.5

12.2.8 Ray Switch


A shader which allows the red, green, blue and alpha channels of camera, shadow, reflection, refraction, diffuse and glossy rays to be selected and combined as required, and output as RGBA for use elsewhere. For example, when performing image based lighting, this node allows you to switch between a high resolution environment map for reflection and refraction rays, and a much lower resolution / more blurred map for diffuse and glossy rays.

Sphere in front of a m irror shaded w ith one shader for reflection rays and a different shader for other ray types

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

204

SItoA (Softimage to Arnold)

For an example of how ray_switch can be helpful, see the Getting rid of noise topic in the Tips and Tricks section about Image Based Lighting (although note that the precise method described there would not be necessary if you use Skydome light instead of Sky).

Connections

Camera Plug the output of the node you wish to use when calculating camera rays here.

Using a different color (orange) for cam era rays only

Shadow Plug the output of the node you wish to use when calculating shadow rays here.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

205

Shadow rays connected to a red m aterial

Reflection Plug the output of the node you wish to use when calculating reflection rays here.

Refraction Plug the output of the node you wish to use when calculating refraction rays here.

Blue m aterial assigned to Refraction attribute of aiRaySw itchNode

Diffuse Plug the output of the node you wish to use when calculating diffuse rays here.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

206

SItoA (Softimage to Arnold)

White ball w ith diffuse conected to a rainbow im age - diffuse reflection rays on the floor show the rainbow pattern

Glossy Plug the output of the node you wish to use when calculating glossy rays here.

12.2.9 Environment
The sta_environment shader is for use as an environment map in shader networks (specifically, it only works with Softimage built-in shaders like Phong, Lambert and Constant). For the pass environment you should use sky shader instead.

Sphere w ith environm ent and reflection

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

207

Settings

Texture The texture / reflection map to use. Environment Mode The type of environment map (lat long map, angular map, etc.) Reflections ...

12.2.10 Displacement
The sta_displacement shader uses a displacement map to change the geometric position of a mesh. The aiDisplacement node must be connected to the displacement of the shading group of the material that is assigned to the mesh that requires displacement.

Displacement mapping differs from bump mapping in that it actually alters the geometry, and therefore will have a correct silhouette, and self-shadowing effects. It is therefore more 'expensive' than bump mapping in terms of memory usage and you should decide which technique is appropriate for different situations accordingly (for example you could use displacement mapping for objects which are close to the camera, bump mapping for objects that are further away, or quite small).

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

208

SItoA (Softimage to Arnold)

Grid using the sam e displacem ent m ap w ith different height values

The attributes are divided into the following groups: Displacement - control of the amount of displacement, etc. Subdivision - control over the subdivision of the altered geometry

Displacement Height Controls the amount of displacement. Displacement height can be either positive or negative values. Padding ... Zero Value This is a floating point value which is applied as a shift to the displacement amount. This value can vary depending on how the displacement map has been generated. A value of zero means the displacement will be always outwards. A value of 0.5 means that values from 0.0 to 0.5 will push the vertices inwards, and bigger values outwards.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

209

Autobump Autobump puts the high frequencies of a displacement map into the bump attribute so that you do not need as many Subdivision Iteration values. When autobump is enabled, Arnold makes a copy of all of the vertices of a mesh prior to displacement (let's call that the "reference" mesh, or Pref). Prior to shading at some surface point on the displaced surface P, the equivalent Pref for that point is found on the non-displaced surface and the displacement shader is evaluated there (at Pref) to estimate what would be the equivalent normal at P if we had subdivided the polymesh at an insanely high tessellation rate. The main difference between Arnold's autobump and using the displacement shader for bump mapping is that autobump has access to Pref whereas bump2d does not and would be executing the displacement shader on already-displaced points which could "compound" the displacement amounts. The only extra storage is for copying P prior to displacement. There is no analysis of the displacement map; Arnold displaces vertices purely based on where they "land" in the displacement map (or procedural) regardless of whether it happens to "hit" a high-frequency spike or not. The autobump algorithm needs UV coordinates to compute surface tangents. Make sure your polymesh has a UV set applied.

Subdivision

Additional Iterations Internally in Arnold, subdivision and displacement iterations are handled with the same parameter, that is attached to the polymesh object. The iterations value will be added to the Softimage geometry approximation subdivision. Example: if the object has a geometry approximation subdiv of 2, and an iterations value of 3, the total subdivision iterations will be 5. Adaptive Subdivision ... Pixel Error A value of -1 will use the global Pixel Error value from the Subdivision tab of the Arnold render options. 0 will use no Adaptive Subdivision, while other values will override acceptable tessellation error as seen from the camera, in pixels

12.2.11 Volume Scattering


This shader simulates light scattered by a thin, uniform atmosphere. It produces shafts of light and volumetric shadows cast from geometric objects. It works with point, spot, disk, cylinder and quad area lights. Remember that you must also ensure that the volumetric parameters are set for each light you wish to use with volumetric scattering.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

210

SItoA (Softimage to Arnold)

Volum e Scattering w ith a spot light

Volume scattering is a scene-wide volume shader (or an atmosphere shader in Arnold terms). Volume shaders can be attached to the Volume slot of the Render Pass.

The attributes are divided into the following groups: Volume Attributes Contribution Attributes These are described in more detail below.

Volume
These parameters control the scattering of light by the participating medium (fog, smoke, etc.).

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

211

Color: The color of the scattered light. See also the Attenuation Color control.

Volum e scattering color = w hite

Volum e scattering color = blue

Density: The following images show the effect of altering the density setting.

Density 0.4

Density 1

Samples: Controls the number of samples used during volumetric scattering. Increase this value if you are getting too much noise.

Volum e sam ples 0

Volum e sam ples 10

Volum e sam ples 20

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

212

SItoA (Softimage to Arnold)

Attenuation Color: The following images show the effect of altering the attenuation color value. This works somewhat counterintuitively since for example a volume with a red attenuation color (rgb = 1,0,0) will tend to reflect teal-colored light (rgb = 0,1,1) well.

Attenuation color - blue

Attenuation color - orange

Attenuation: The attenuation parameter sets the rate at which the rays of light traveling through the scattering medium are extinguished. A high value means that light will only travel a short distance through the volume, while a low value means that light will travel a long distance through the volume.

Attenuation 0

Attenuation 0.25

Attenuation 0.5

Attenuation 0.75

Attenuation 1

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

213

Attenuation 0

Attenuation 0.5

Attenuation 1

Eccentricity: This control alters the bias of the scattering. A value of zero (the default) gives isotropic scattering (the light is scattered evenly in all directions, giving a uniform effect). Positive values bias the scattering effect forwards, in the direction of the light, while negative values bias the scattering backwards, toward the light. Changing the eccentricity therefore means that you will get a different effect depending on whether the camera is looking toward the light or away from the light. Note that values very close to 1.0 (above about 0.95) or -1.0 (below -0.95) will produce scattering that is so directional that it will not be very visible from most angles (and what scattering you do see may be noisy), so such values are not recommended.

Eccentricity -0.5

Eccentricity 0

Eccentricity 0.5

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

214

SItoA (Softimage to Arnold)

Eccentricity -0.9

Eccentricity 0

Eccentricity 0.9

Contribution
The following attributes allow you to control the contribution that the atmosphere makes to different types of rays in Arnold - camera rays, diffuse GI rays, and reflection rays.

Camera : Controls the degree to which volume scattering affects camera rays. The following images show the effect of altering the camera value.

Cam era 0.1

Cam era 1

Diffuse : Controls the degree to which volume scattering affects diffuse GI rays. The following images show the effect of altering the diffuse value.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

215

Diffuse 0

Diffuse 1

Reflection: Controls the degree to which volume scattering affects reflection / glossy rays. The following images show the effect of altering the reflection value.

Reflection 0

Reflection 0.5

Reflection 1

12.2.12 Motion Vector


This shader will encode a vector representing the motion of the object in the Red and Green components. To use this shader correctly, you must enable motion blur in the render options and use an instantaneous shutter: the shutter start/end values should both be set to the same value. This false color effect can be useful when 'debugging' scenes.

max_displace When greater than 0, this is the maximum amount of screen-space motion. The motion vector encoded in the RG components is then normalized to this value. This is better when writing to 8 or 16-bit formats like JPEG, TIFF etc. On the other hand, when this value is less than or equal to zero, magnitude encoding is used instead: RG holds the unit direction vector, and B holds the magnitude. This is better when writing to floating point formats (EXR etc). time0 Sample time for shutter start.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

216

SItoA (Softimage to Arnold)

time1 Sample time for shutter end.

The two following images illustrate the effect. The first image shows the original scene with motion blur rendered normally, the second shows the false color effect of motion vector.

Original scene w ith 3D m otion blur

Using the m otion_vector shader w ith shutter_start and shutter_end both set to zero. The sphere in the left has a m ax_displace of zero (that explains the blue tint). The other objects have a m ax_displace of 1

12.2.13 Skin SSS Shader


The skin_sss shader node is provided in SItoA to give an easy to use generic skin shader. It is implemented on top of existing Arnold shaders, so there is no need to install anything extra to use it. We've provided it as a separate shader to make the functionality easier to use. Note: skin_sss is not part of the Arnold core, but is an Arnold shader node provided with end-user plug-ins such as SItoA and MtoA to aid usability.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Shaders

217

As you can see, the shader is broken up into different SSS layers, each one with its own scattering radius. There is also a diffuse layer as well as two separate specular/reflection layers. In order to make the shader faster there are switches in the "Optimization" section of the Options tab to speed up computation of secondary rays: Sample SSS Only in GI Rays - when on, GI/Diffuse rays will only "see" the SSS component of the shader, thus making it faster to render. Sample SSS Only in Glossy Rays - when on, Glossy rays will only "see" the SSS component of the shader, thus making it faster to render. You can also control how the layers are combined (composited) - either by simple addition, or using a screen blend, and there is an overall control for the scale of the three SSS layers.

Advantages over the "Standard" shader


As the shader is built on top of existing Arnold shaders, you could in theory get the same effect without using skin_sss , for example by using the Standard shader. However, the skin_sss shader makes life easier by collecting things together in a useful way. When using the Standard shader to do skin it's often necessary to set the SSS radius value differently in each color channel, for example to use a larger radius for the red channel to get red color shining through in thin fleshy areas such as the ears. As shown in the example below, the ears and other thin areas do become red like they should, however there are also a lot of green/blue mis-coloration on the rest of the surfaces. The skin_sss shader solves this problem as well as providing a better starting point for a skin material.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

218

SItoA (Softimage to Arnold)

It can be tricky to get skin effects right using the Standard shader

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

SItoA Commands

219

Section 13 SItoA Commands


SItoA provides custom, script-able commands that allow you to manually execute some of the features of the plug-in.

Details of each command are given below. SITOA_ExportScene With this command, users can export the Softimage scene into Arnold's native scene definition format. One .ass file will be exported for each frame. These .ass files can later be rendered outside Softimage with the kick command-line executable (available on multiple platforms), or with any other custom standalone Arnold Renderer. The command usage is:
SITOA_ExportScene(frameStart, frameEnd, frameStep, createStandIn, selectionOnly, filename);

Where:
frameStart : Start frame of the sequence to be exported. frameEnd : The last frame of the sequence to be exported. frameStep : The increment between exported frames. This allows you to skip frames. For example, if

you set it to 4, only every fourth frame will be exported. createStandIn : If true, the options and camera are not exported, and an .asstoc file is also created, hosting the bounding box information of the exported objects. This is usually the option you want to use if you plan to use the exported .ass file a a standin later. selectionOnly : If true, only the selected objects are exported. filename : The output filename. Note: Prior to 2.3, there was a 4th argument, toRender . This argument was removed in version 2.3. You may need to update any scripts using this command which you wrote prior to 2.3.

SITOA_ExportObjects Similar to SIOTA_ExportScene (see above), but allowing export of a collection of objects. The command usage is:
SITOA_ExportObjects(frameStart, frameEnd, frameStep, createStandIn, objects, recurse, filename);

Where:
frameStart , frameEnd , frameStep , createStandIn : As for SITOA_ExportScene .

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

220

SItoA (Softimage to Arnold)

objects : collection of objects to be exported (defaulting to selection if void). recurse : If true, recursively export also the children of each item in the objects collection. filename : The output filename.

SITOA_DestroyScene This command flushes the current scene loaded in Arnold, which is used for IPR rendering. Because it's difficult for SItoA to detect every single possible user-interface event, users can manually flush the scene, which will force Softimage to resend all the information to Arnold, thus picking up all the latest UI changes. If you find one of these cases, please report it to the developers and we will do our best to fix it. Hint: we recommend assigning this command to one of the available hotkeys from File / Keyboard Mapping. F6 is a popular choice. SITOA_FlushTexture This command invalidates any texture maps in memory, forcing them to be reloaded from disk the next time they are accessed. This is very useful in interactive IPR sessions where the textures are being modified by you or somebody else on the network, and avoids an expensive full scene reload via SITOA_DestroyScene. SITOA_UnloadPlugins This command unloads all Arnold or SItoA plugins that are loaded in memory. This is a necessary step before removing or updating the SItoA add-on; otherwise, Softimage will crash. SITOA_ShowVersion This command prints both the SItoA and Arnold versions of the add-on. This is very useful when reporting bugs or suggestions, so that developers can see what exact version you are using. SITOA_CreateRenderChannels This command creates the following Arnold AOV core layers as Render Channels in the scene: Alpha Opacity Ray Count CPU Time Point SITOA_RegenerateRenderOptions Regenerates the Arnold Render Options panel, updating the layout, adding new parameters, removing old or non-existent parameters. It will assign automatically to new Render Options all previous values the parameters had. Users will have to execute it in old scenes to update Render Options parameters. Take into account that this command doesn't refresh the Arnold properties already applied to objects. SITOA_LoadRenderPlugin (Windows users only) Loads the render plugin (sitoa.dll) according to the current platform (32 or 64 bit). This command is executed automatically when the Arnold Scene Preferences plug-in is loaded. We provide this command for any special cases where users may need to manually unload and reload this plug-in. SITOA_AddVisibilityProperties Adds the visibility properties to the selected objects. SITOA_AddSidednessProperties Adds the sidedness properties to the selected objects. SITOA_AddParametersProperties Adds the parameters properties to the selected objects.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

SItoA Commands

221

SITOA_AddLightDecayFilterProperties Adds the Decay Filter properties to the selected lights. SITOA_AddBarndoorFilterProperties Adds the Barndoor Filter properties to the selected lights. SITOA_AddGoboFilterProperties Adds the GoboFilter properties to the selected lights. SITOA_AddUserOptionsProperties Adds the user options property to the selected objects. SITOA_GetMotionBlurKeys Returns the motion blur keys time samples as a Float Array. The command usage is:
SITOA_GetMotionBlurKeys(objName, deformation, frame);

Where:
objName : defines the object to get the motion blur keys from (they can override the global values) deformation : set to true will get the deformation motion blur keys, otherwise the transformation

ones.
frame : defines where the computation is done.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

223

Section 14 Tips and Tricks


This section outlines some of the tricks of the trade that you can use to improve your Arnold renders. Topics in this section: Transparency (Refraction and Opacity) Image Based Lighting in Arnold Fireflies More about paths make sure textures and shaders are located properly

14.1

Transparency (Refraction and Opacity)

Refraction and opacity are pretty similar in Arnold compared with other render engines, there are however a few differences. The purpose of this document is to give users a better understanding of these differences as well as explaining when to use opacity and when to use refraction.

The Standard shader


Arnold has two different ways of calculating transparency, refraction and opacity. They are different ray types and thus have different controls in the Standard shader as well as in the render options, the image below illustrates how they correspond to each other:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

224

SItoA (Softimage to Arnold)

These two ways of calculating transparency have different purposes, they can be used together but most of the time you'll want to use either one or the other. Usage for Refraction: Glass, water or other refractive materials. Usage for Opacity: Sprite type of effect, such as cutting out the shape of a leaf from a polygon card. Making the tips of hair strands transparent. If you leave IOR at 1.0 both methods can give smilar results, however Opacity or "Auto Transparency" as it's called in the render options renders faster, for sprites Opacity will also cut out the shape completely whereas Refraction will leave the reflections/speculars visible even on areas that are completely transparent, here are two images to show the difference when rendering sprites:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

225

This is the texture and mask used for the leaf:

Note how when using refraction the specular/reflections are still visible in the transparent areas, this version also rendered slower compared to when using opacity. You can of course drive the specular weight using the same mask to fix the problem, but using refraction for this purpose is simply wrong.

Using Refraction and Opacity together


As explained earlier it's usually best not to use Refraction and Opacity together in the same shader as it would cause unnecessary slowdowns in the render, however there are a few situations where combining them can be useful, below are some examples of a simple glass sphere being cut out using a stripe mask:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

226

SItoA (Softimage to Arnold)

Sphere using refraction only

Sphere rendered w ith the m ask texture

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

227

Sphere rendered w ith the m ask driving the Opacity slot

The "Opaque" switch


Here is where Arnold differers from most other renderers. By default all objects are flagged as "Opaque", which allows Arnold to take some shortcuts while tracing rays, thus making rendering faster. If an object is flagged as opaque it means Arnold doesn't even need to access the parts of the shader that handles Opacity. The fact that this "Opaque" flag is on by default means two things: Opacity will not work at all Refraction will work however the shadows casted by the objects will always be solid and not pick up the refraction color or density of the shader From the "Properties" menu you can apply the "Arnold Parameters" which among other things allows you to toggle the "Opaque" switch:

This property can be applied to objects, partitions and groups and has the following options:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

228

SItoA (Softimage to Arnold)

In the following scene you can see the Stanford dragon rendered with the opaque switch On and Off, note that Opacity is not used at all in this example:

Dragon with "Opaque" on

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

229

Dragon with "Opaque" off

Here is another example of the Opaque switch on and off, in this case only "Opacity" is being used in the Standard shader:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

230

SItoA (Softimage to Arnold)

Sprite with "Opaque" on

Sprite with "Opaque" off

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

231

This is the image used to drive the Opacity parameter in the example above:

Optimization
As mentioned earlier using the right method for the right task will give you optimal rendering speed, however there are some things which can further speed things up. When using opacity for sprites, make sure that your mask is pure black and white, for example in the black areas there shouldn't be any noise or other imperfections as that will have a negative effect on the rendertimes, in other words it's not a good idea to use jpeg textures for masks as they often have compression artefacts When combining Refraction and Reflection such as on the dragon above it can speed things up a lot if you make sure that the refraction part of the shader doesn't pick up any reflections, in other words disabling internal reflections, you can do this using a Ray_Switch shader as shown below:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

232

SItoA (Softimage to Arnold)

14.2

Image Based Lighting in Arnold

This document aims to explain to users how to set up Image Based Lighting (IBL). When it comes to IBL Arnold works in a similar fashion to other renderers. However, because Arnold uses a brute force GI solution, noise caused by high-contrast HDR environment maps can become a problem. How to deal with this will also be explained.

Topics in this section:

The sky shader The sky dome Other ways to reduce noise

14.2.1 The Sky Shader


One way to set up IBL in Arnold is to simply use the Sky shader. This shader is intended to be used as a global environment shader, thus affecting all objects in the scene. The easiest way to add a Sky shader to the current pass is from the "Pass" menu:

By default it has a simple white color, and this will illuminate the whole scene evenly using this color. Note that all the examples below are rendered with the Sky shader plus one quad area light acting as key light. The Dragon model has around 7 million triangles and it's rendered as it is without any displacement/ bump maps. The following sampling settings were used in all the examples:
2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

233

AA Samples: 5 Diffuse Samples: 3 Glossy Samples: 3 Below is a version of the dragon with the Sky shader's color set to blue.

Dragon m odel lit w ith sky shader set to a flat blue color

If you select the sky shader on the pass and open the rendertree, you can use any image to illuminate the scene by simply hooking up a normal Image node to the "Color" slot of the Sky shader, as shown here:

Rendertree for the sky shader using a HDR im age to illum inate the scene

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

234

SItoA (Softimage to Arnold)

Note that it's important to set the proper mapping format in the Sky shader. We'll use the following HDR image in "lat-long" format:

And here is the resulting render:

Dragon m odel lit w ith sky shader using a high-contrast HDR im age

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

235

Even though this image is using the exact same GI sampling setting as the previous one, you can see that it has a lot more noise. This is because the environment map has a lot of high contrast areas with bright spots (windows, ceiling lights) and dark shadows, which is difficult to sample. 14.2.1.1 Getting rid of noise

Using the Ray Switch node


Note: this section is mostly obsolete, you should be using the Skydome light instead. Using a very high contrast HDR image for lighting a scene can produce noise which can be hard to get rid of simply by increasing the AA or Hemi/Glossy samples. An HDR image contains a tiny sun disc whose pixel values are in the hundreds of thousands or even millions, is going to need a lot of samples for Arnold's bruteforce hemispherical sampling to find. On the other hand, a HDRI of a thick overcast day with no sun at sight is very easy to sample. In order to fix the excessive sampling noise, one could simply blur the environment map so that it's easier for the GI and glossy rays to hit bright areas. However that would cause the render to lose all the nice highlights seen in the reflections from the environment map. Instead, we will be using different environment maps for each ray type in the scene. Typically, you will need 2 or 3 different versions of the same environment: One high-res and sharp map for reflection and refraction rays One mid-res and slightly blurred map for glossy rays One low-res and very blurred map for diffuse GI rays For this purpose you can use the "Ray_Switch" on the pass rendertree. Below is an image illustrating such a setup:

Rendertree for the sky shader using different im ages for each ray type

And here are the images used for the different ray types, using a gaussian blur in PhotoShop:

HDRI used for RReflection/Refraction rays (3000x1500 pixels):

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

236

SItoA (Softimage to Arnold)

Glossy rays (800x400 pixels):

Diffuse/GI rays (right, 200x100 pixels):

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

237

Depending on the dynamic range of the HDRI you may need to blur more or less to achieve optimal results. Also, how blurry the map used for glossy rays should be depends on the material; for very sharp materials (almost mirror like) you don't need as much blurring, but if your glossy reflections are very soft you should use a bigger blur. Here's the resulting image from this setup:

Dragon m odel lit w ith sky shader using separate HDRI's for each ray type

Note how with this setup the noise is now gone and the illumination is very similar to the version using a single high-res map for all ray types.

Different amounts of blur for the diffuse environment map


Note: this section is mostly obsolete, you should be using the Skydome light instead. The following images illustrate the effect of varying the amount of blur in the HDRI's used for diffuse GI rays. To make things simpler, all the illumination comes from the HDRI - there is no explicit key light. As expected, the more you blur, the lower the noise, at the cost of reduced lighting detail (e.g., softer shadows):

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

238

SItoA (Softimage to Arnold)

Unblurred, high-res HDRI m ap, 3 diffuse sam ples, render tim e 5 m ins

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

239

Unblurred, high-res HDRI map, 12 diffuse samples, render time 40 mins; sharp shadows are preserved, but still a bit noisy even at such high sample settings

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

240

SItoA (Softimage to Arnold)

Blurred HDRI map, 3 diffuse samples, render time 5 mins; this renders fast and has low noise, though shadows start getting a little softer

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

241

Extremely blurred HDRI map, 3 diffuse samples, render time 5 mins; noise-free, but note how most of the lighting detail is lost

Using Smart IBL


You can automate this process with Smart IBL from HDRLabs. Smart IBL offers an unified browser of different HDRI setups which have three basic ingredients: a super high res panorama as camera background a high res HDR as specular component for reflection a blurred low res HDR as diffuse environment lighting There is an Arnold template for sIBL that you can download here. It provides a bridge between Softimage, Arnold and Smart IBL.

14.2.2 The Skydome light


Another way to set up IBL is to use the "Skydome" light. This light works in a similar way to the "Sky" shader, with the difference that it will fire more rays towards bright, important areas of the environment map. This way, shadow details are preserved, while at the same time keeping noise levels low. There is no need to pre-blur the environment map used for diffuse/glossy rays as you normally would need to do when using the "Sky" shader. The light can be created from the "Primitive" menu where all other lights are located:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

242

SItoA (Softimage to Arnold)

Just like the "Sky" shader the "Skydome" light can have an Image node plugged into its "Color" slot so that you can map a texture onto it:

Skydom e light w ith texture assigned

Below you will find the same dragon scene used above, but this time illuminated with one "Skydome" light; note that only one hig-hres version of the environment map is used and sampling levels don't need to be set to extreme values:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

243

Dragon rendered w ith Skydom e light only, 3 diffuse sam ples and 3 light sam ples, rendertim e 6 m ins, note how all the sharp shadow details are preserved w hile noise levels are low

Multiple Importance Sampling (MIS)


The Skydome light will affect both diffuse and glossy shading. All lights now have a switch called "Multiple Importance Sampling", enabled by default, which helps reducing noise in glossy reflections at the expense of only slightly longer render times. Below you will find two examples of the same dragon rendered with a material using glossy reflection only.

Dragon without MIS:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

244

SItoA (Softimage to Arnold)

Now the same scene, this time with MIS:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

245

The above two images show the difference in sampling noise. For illustration purposes only 1 light sample was used.

Skydome light resolution


In order to keep noise and fireflies to a minimum when using the Skydome light it's very important to set the "resolution" in the Skydome shader. By default it's set to 1000 which means if you're using environment maps larger than 1000 pixels you should adjust the "resolution" in the skydome shader accordingly. For example, if your environment map is 3000*1500 pixels, the resolution in the skydome shader should be set to 3000 and so on. You may use smaller resolution values if your environment map doesn't have a lot of small bright spots. Below is an example of a tank model rendered with the Skydome light only, the environment map is 3000*1500 pixels and as you can see using too small of a resolution value in the skydome shader introduces a lot of fireflies and noise.

Tank model with skydome resolution set to 500:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

246

SItoA (Softimage to Arnold)

Tank model with skydome resolution 3000:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

247

14.2.3 Other ways to reduce noise


As a last resource, if you find that the render is still noisy despite using the methods described above, you can try clamping the pixel samples in the render options:

Render options w ith pixel sam ples clam ped at 2.0

By default, pixel samples are unclamped and can have infinite brightness values. If your environment map for example has a sun with a value of say 5000 that will cause a lot of noise even if it's blurred. Typically this isn't a problem for the diffuse/GI environment map as it's extremely blurry, however the map used for glossy rays might need to stay relatively sharp and can still introduce noise in some cases. Below are two renders of the same dragon model used above, with a purely glossy shader (no diffuse component):

Dragon with samples unclamped:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

248

SItoA (Softimage to Arnold)

and clamped at 2.0:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

249

Clamping the pixel samples should be used with care as it's obviously reducing the dynamic range of the render. However, it can be an effective way to remove certain types of noise that might otherwise be difficult to get rid of.

14.3

Fireflies

In this document we'll look at scenes that suffer from a form of sampling noise commonly referred to as "spike noise", or "fireflies": isolated, super bright pixels that jump around from frame to frame in an animation. This noise is very difficult to remove by just increasing the number of samples in the renderer, so we'll try to analyze each scene, identify what causes the noise and provide workarounds.

Sharp glossy reflections


NOTE: Starting with Arnold 3.2.3, the standard shader already includes the exponent clamp fix for the problem described in this section. Unlike the classic Phong and Blinn specular shading models, modern BRDFs are energy preserving. In particular, the "volume" of the BRDF is normalized with respect to the "glossiness" parameter, usually an exponent for a cosine lobe. In practice this means that the thinner the specular lobe, the higher its weight.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

250

SItoA (Softimage to Arnold)

The standard shader that ships with Arnold uses an energy-preserving specular BRDF called "stretchedPhong" (described in this paper). You may have noticed that this shader can produce extremely high sample values when its Phong_exponent parameter is tweaked for almost mirror-like surfaces, i.e., exponent values of 1000 and above. Although, as mentioned before, this is the expected behaviour of an energy-preserving BRDF, this is also unfortunate, because such high sample values are very difficult to sample for a brute-force path tracer like Arnold. This is specially noticeable in recursive glossy reflections involving both diffuse and sharp glossy surfaces. Here is an animation that clearly shows the sampling problem mentioned above: https://trac.solidangle.com/sitoa/attachment/wiki/Fireflies/RockFalcon_v004.mov The eyes have a standard shader with Phong_exponent = 500, and the skin has Phong_exponent = 5. Some of the glossy reflection rays fired from the skin happen to hit the eye at just the right angle to pick up the small but intense specular highlight coming directy from the light source above. Note the annoying sparkles or fireflies around the eye. There are several ways to fix the noise around the eyes: Make the eyes invisible to glossy rays. This can be done by disabling the glossy flag in the object's visibility bitmask. Here is the animation re-rendered with this fix: https://trac.solidangle.com/sitoa/attachment/wiki/Fireflies/RockFalcon_v004_fixed.mov Use a ray_switch shader in the eye, with an appropiately modified shader in the "glossy" slot for example, a shader returning black, or perhaps a shader with a much lower Phong exponent such as 10 or 20. The images below show that lowering the Phong exponent can dramatically reduce the noise in the glossy bounces.

Phong exponent in the eye: 1000

Phong exponent in the eye: 100

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

251

Phong exponent in the eye: 20

Automatic exponent clamp


Instead of switching the responsability to the users, we should try to fix this spike noise automatically inside the renderer. One possible solution is to limit, or clamp, the maximum Phong exponent to a low value such as 20 or 50, but only for secondary reflections. This is equivalent to the ray_switch solution mentioned before. As shown in the image below, this works quite well in practice.

Spike noise caused by highly glossy surfaces. The Phong exponent in the two big spheres is 2000, and 20 for all other objects:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

252

SItoA (Softimage to Arnold)

Clamping the exponent in secondary reflections to 50 greatly reduces the noise:

The first image above was generated with Arnold 3.2.2. The second image was generated with a custom Arnold that uses a maximum Phong exponent of 50 for secondary glossy reflections. Both images used AA=3/glossy=3, or 81 glossy rays per pixel, and rendered in 20 secs. Note that the spike noise is mostly gone. For comparison, the next image shows a reference image accurately rendered with 16000 glossy rays per pixel. The only difference is in the secondary specular highlights, which are slightly bigger in the image with clamped exponents. This "blurring" of secondary highlights is much more acceptable in production than the spike noise. Reference image rendered in 1.5 hours:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

253

Compare against an image with clamped exponents rendered in 20 seconds:

This exponent-clamping technique effectively introduces a trade-off between noise and blur. The more we clamp (i.e. allowing very low exponents only) the more noise we remove, but also the blurrier the specular highlights are, as shown below.

Clamping the Phong exponent to a maximum of 10:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

254

SItoA (Softimage to Arnold)

Clamping the Phong exponent to a maximum of 50:

Clamping the Phong exponent to a maximum of 200:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

255

For this scene, 50 seems like a good compromise.

14.4

More about paths

In SItoA 1.16 and 1.17 we have reviewed the way the paths for textures, shaders and procedurals are treated. Here's a recap.

Search Paths
For the shaders and procedurals search paths (System tab of the rendering options), the following rule applies: All and only the paths in the search paths are used for searching the shaders (procedurals). If the field is void, the SItoA bin path is used. If you don't need to link to shaders other than the ones coming with SItoA, leave the field void. So, when loading a scene saved with a previous SItoA version, the shaders of your current SItoA version will be loaded. The rule also means that if you set the shader search path to, say, a workgroup location only, none of the Softimage shaders (Constant, Lambert, etc.) will be found. So, if you need to have your workgroup's shaders used, be sure to add also the SItoA bin directory to the search path, separated by a ';' (in Windows) or ':' (Linux). The order does not matter. Example: I have some custom shaders in a workgroup located under:
C:\dev\Arnold\WG

and my SItoA addon installed under:


C:\Users\stefano\Autodesk\Softimage_2010_SP1\Addons\SItoA

Then, to have everything working, I have to set:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

256

SItoA (Softimage to Arnold)

Shaders Search Path = C:\Users\stefano\Autodesk\Softimage_2010_SP1\Addons\SItoA\Application\bin\nt-

Note that the full path to the shader DLLs is required.

Environment Variables
Environment variables are supported for the search paths, through the [ENV_VAR] syntax. Let's reuse the above example, and say that in my setenv.bat , I set two env vars:
set MY_WG_BIN=C:\dev\Arnold\WG\Application\bin\nt-x86-64 set MY_SITOA_ADDON=C:\Users\stefano\Autodesk\Softimage_2010_SP1\Addons\SItoA

Then, I can simply set:


Shaders Search Path = [MY_SITOA_ADDON]\Application\bin\nt-x86-64;[MY_WG_BIN]

An environment variable must point to a single location. Something like

set MY_PATHS = C:\dev\Arnold\WG\Application\bin\nt-x86-64;C:\Users\stefano\Autodesk\Softimage_2010_

will not work.

Absolute vs Relative paths


If Use Absolute Texture Paths (From the ASS Archives tab of the rendering options) is enabled, the absolute paths will be exported and optionally translated by the linktab file if Translate Paths is enabled. Otherwise, the relative paths, with respect to Textures Search Path, will be exported. Say we have to export a texture whose full path is C:\img\head\eye.jpg Example: Textures Search Path == C:\img then Exported path == head\eye.jpg Example: Textures Search Path == C:\temp then Exported path == ..\img\head\eye.jpg and so on. In order to have the conversion working, the Textures Search Path must exist. Example: Textures Search Path == C:\invalid (where C:\invalid does not exist on disk) then, a warning message is fired, and we export the plain file name, so Exported path == eye.jpg Textures Search Path can be made of more that one path, separated by ';' on Windows and ':' on Linux. Example: Textures Search Path == C:\img\head;C:\temp If more than one of the directories exist, we don't translate the path. We assume that the user is providing all the needed paths already, so Exported path == eye.jpg

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Tips and Tricks

257

However, if only one of the paths exists, we use that one. Example: Textures Search Path == C:\img;C:\invalid a warning is fired for C:\invalid , and C:\img is used, so Exported path == head\eye.jpg This information also applies to procedural search paths, with respect to the Absolute Procedural Path flag.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Rendering FAQ

259

Section 15 Arnold Rendering FAQ


These issues about Arnold rendering are not specific to the SitoA plug-in, but relate to features of the renderer itself. For issues to do with the use or set-up of the SItoA plug-in, see the SItoA Usage FAQ. Remember that you can find further useful information on-line in Arnoldpedia.

General Arnold rendering issues:

How can I do glossy reflections using the Arnold "Standard" shader? In the specular section, increase the "Scale" parameter. The "Roughness" parameter will control how blurry your reflections are. The lower the value the sharper the reflection. In the limit, a value of 0 will give you perfectly sharp mirror reflection. You also have separate controls to adjust the intensity of the direct and indirect specular reflections. Direct specular are reflections coming from regular light sources (spot/point/ area/distant lights), and indirect specular are reflections coming from another object or an environment map. Fireflies, why do they appear and how can they be avoided? Certain scenes/configurations suffer from a form of sampling noise commonly referred to as "spike noise", or "fireflies": isolated, super bright pixels that jump around from frame to frame in an animation. This is especially noticeable in recursive glossy reflections involving both diffuse and sharp glossy surfaces. This noise is very difficult to remove by just increasing the number of samples in the renderer. There are several ways to fix the noise. Make the objects with the sharp glossy surfaces invisible to glossy rays. This can be done by disabling the glossy flag in the object's visibility parameters Use a ray_switch shader in the the objects, with an appropiately modified shader in the "glossy" slot - for example, a shader returning black, or perhaps a shader with a bigger specular_roughness value Are caustics possible? Given that Arnold uses uni-directional path tracing, "soft" caustics originating at glossy surfaces are perfectly possible, as well as caustics coming from big sources of indirect light. The caustics switches in the standard shader mean that you can tell the diffuse GI rays to "see" the mirror reflection, glossy reflection and refraction from the shader of the surfaces that are hit by them. By default only the direct and indirect diffuse rays are seen by GI rays. On the other hand, "hard" caustics emanating from spatially-small but bright direct light sources, for example caustics from a spotlight through a glass of cognac, are currently not possible. One possible workaround to render caustics would be to light the scene with light-emitting geometry where you set the values for emission really high (20-100) and play with the size of the emitter. However you would have to

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

260

SItoA (Softimage to Arnold)

use really high sample settings to avoid grain. Other renderers more or less easily achieve hard caustics with the photon mapping technique. At Solid Angle we dislike photon mapping because it's a biased, memory sucker technique that is prone to artifacts, blurring, obscure settings, doesn't scale well with complex scenes and doesn't work well with interactivity/IPR. Bump mapping is not working when connecting images to a Bump3D node Bump3D works by evaluating the bump shader (and image in this case) at different points (P + epsilon, P + epsilon, P + epsilon). Since the only thing displaced is the point, the uv coordinates will be the same in the different lookups. These will give the same texel in the image and result in no perturbation of the normal. You should use Bump2D for images. Can I use multiple projections in an object? The Arnold core doesn't currently support multiple UV sets per object. MtoA tries to work around this (via the generic user-data mechanism in the Arnold AP) but this method can only store one value per vertex, not support complex projections or UV maps. Can you attach a shading network to user-data parameters? No, user-data does not support shader connections. How to get rid of noise Computationally, the efficient way to get rid of noise is to go from the bottom up (going from the particular to the general). We would increase the sampling of individual lights first, then the GI and glossy samples. Finally, the AA samples, which acts as a global multiplier of the whole sampling process. However, the only way to improve the quality and reduce the noise of motion blur and depth of field is to increase the AA samples. In this case, this AA increase allows you to decrease the other sampling rates (GI/glossy/light) to compensate. To sum up, you will get almost the same render time with AA=1 and GI=9 than with AA=9 and GI=1, but at AA=9 you will have much better motion blur and depth of field quality. How to reduce SSS flickering Regarding SSS noise and flickering, there are two ways to reduce it: 1. Increasing the pointcloud density of a polymesh with sss_sample_spacing. 2. Leaving the number of points the same, but increasing the quality of the irradiance evaluation at each point. This is highly scene dependent but, generally speaking, you want to use as few points as possible, but increase their quality with sss_sample_factor. The sampling rates used to calculate SSS irradiance are multiplied by sss_sample_factor. So while an AA=8 and GI=2 gives you excellent diffuse sampling in a lambert shader, a GI=2 by itself gives you very noisy SSS. In this case, you need sss_sample_factor=8 to get comparable results in SSS shading. This will ensure that the SSS points "see" a clean solution and you are not compensating the SSS noise by increasing the number of points as suggested in (1) above, which is much more expensive. In Arnold 3.3.0 and previous versions, there was a known bug where the SSS pointcloud itself changed from frame to frame even in static objects, instead of staying "locked" to the object. This created additional flickering and is fixed in Arnold 3.3.1. In addition, you can now select the pointcloud distribution. The default is a blue_noise, random-looking distribution, which is very high quality but can flicker if the mesh is deforming. If your object has been exported with Pref coordinates, then you can use the blue_noise_Pref pointcloud distribution which is "locked" to a reference pose and therefore does not flicker even if the mesh is deforming. There complete list of available pointcloud distributions is:
$ kick -info polymesh.sss_sample_distribution

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Rendering FAQ

261

node: polymesh param: sss_sample_distribution type: ENUM default: blue_noise enum values: blue_noise blue_noise_Pref triangle_midpoint polygon_midpoint

What does SSS Lazy Evaluation do? (Note : As of Arnold 3.3.3, the SSS engine always uses lazy evaluation and the sss_lazy_evaluation parameter has been removed) Instead of computing the irradiance at all points of the SSS pointcloud in one go, small parts of the pointcloud are now lazily computed, as needed. This helps bring down the render time, at the expense of using more memory. It also allows to preview the initial buckets faster, since there is no waiting for the full SSS pointcloud computation. Lazy evaluation is inherently threadable - you can have 8 cores working on a single SSS pointcloud, whereas the non-lazy code would have 1 core used at 100% and the other 7 cores waiting until that pointcloud is fully computed. What does `min_pixel_width` do for curves? min_pixel_width is a threshold parameter that limits how thin the curves shapes can become with respect to the pixel size. So if you were to set min_pixel_width to a value of 1 pixel, no matter how thin or far away from the camera that the curves are they will be "thickened" enough so that they appear 1 pixel wide on screen. Wider strands are easier to sample so they will tend to show much less aliasing artifacts. The problem with simply thickening curves like this for is that it will start to take on a wiry or straw-like appearance because it would be much wider and blocking much more of the background than they should be. A well established method of giving a softer look to thick strands is to map their opacity along their length, the internal user data "geo_opacity" is an automatic way to do this. The value of the "geo_opacity" UData field for strands that are already thicker on screen than the min_pixel_width threshold will always be 1.0, but strands that had to be thickened to meet the min_pixel_width threshold will get lower geo_opacity values in proportion to the amount of thickening. If a shader reads this value and uses it to scale its out_opacity result, then the thickening of the curves will be properly compensated and thin curves will retain their soft appearance. The result is not exactly the same as the curves without thickening, but on average the appearance is very similar and can be much easier for the raytracer to sample. In practice a min_pixel_width setting of 1.0 is probably too high, making the strands look too soft and the difference between using and not using the technique quite noticeable. You will usually get better results with values in the 0.1-0.5 pixel range. Also, the higher the min_pixel_width , the slower to render, because the renderer will make the hairs more transparent to compensate for their increased thickness. For example, a value of 0.25 means that the hair geometry will never be bigger than 1/4 the size of the pixel, so you can get good antialiasing with AA=4 samples. A value of 0.125 (or 1/8) will need at least AA=8 to get good antialiasing etc. ext here goes in a table, but you can edit directly (check text is in table) . What does autobump do for polymeshes? When autobump is enabled, Arnold makes a copy of all of the vertices of a mesh prior to displacement (let's call that the "reference" mesh, or Pref). Prior to shading at some surface point on the displaced surface P, the equivalent Pref for that point is found on the non-displaced surface and the displacement shader is evaluated there (at Pref) to estimate what would be the equivalent normal at P if we had subdivided the polymesh at an insanely high tessellation rate. The main difference between Arnold's autobump and using the displacement shader for bumpmapping (say with the bump2d node) is that autobump has access to Pref whereas bump2d does not and would be executing the displacement shader on already-displaced points which could "compound" the displacement amounts (if that makes any sense).

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

262

SItoA (Softimage to Arnold)

The only extra storage is for copying P prior to displacement. There is no analysis of the displacement map; Arnold displaces vertices purely based on where they "land" in the displacement map (or procedural) regardless of whether it happens to "hit" a high-frequency spike or not. autobump doesn't work The autobump algorithm needs UV coordinates to compute surface tangents. Make sure your polymesh has a UV set applied. How is transparency handled? Set texture_gamma, light_gamma and shader_gamma to the value of the gamma you want to correct (usually 2.2). How do I work in "Linear" colorspace with Arnold? Set texture_gamma, light_gamma and shader_gamma to the value of the gamma you want to correct (usually 2.2). What are .tx files? .tx are just tiled+mipmapped tiff files. The 'maketx' utility part of OpenImageIO (or the 'txmake' utility shipped with RenderMan) can convert any image file into a TX file. It gets slightly more confusing because it is also common to rename .exr files to .tx, since OpenEXR also supports tiling and mipmapping (which arnold supports). The standard libtiff library is all that's necessary to read tiled+mipmapped TIFF, through the use of the appropiate TIFF tags and library calls. What makes the difference and the main reason to introduce this step into the pipeline is tha tiled mipmapped images are much more efficiente and cache friendly to the image library OIIO. How are the settings for textures related? Why .tx files? The texture cache - recommended settings. Recommended settings for maketx and which ones are important. Windows batch scripts: If you copy one of these scripts to a .bat file (simple textfile with .bat as file extension) in the same folder as maketx.exe and drag a link to it to your desktop, you can throw multiple texture images on it at once and they will get converted in one go. If you don't want the verbose output, remove the "-v", but it may help you understand what maketx does. If you don't want the window to stay visible at the end, remove the "pause". Default settings (mipmap and resizing):
@for %%i in (%*) do maketx.exe -v %%i pause

No mipmapping, but automatic resizing:


@for %%i in (%*) do maketx.exe -v --nomipmap %%i pause

No resizing and no mipmapping:


@for %%i in (%*) do maketx.exe -v --nomipmap --noresize %%i pause

How do I adjust the falloff of an Arnold light? You must attach a "filter" to the light. There are several filters for different needs (e.g. gobo, barndoors etc).

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Rendering FAQ

263

To get a normal decay behavior, you will want to use the light_decay filter. Are shadow rays set via the samples setting on a light? Yes. In the current implementation, each light sample needs one shadow ray. Why does the standard shader compute reflections twice? The standard shader can compute both sharp and glossy reflections. Sharp reflections are controled by the Kr and Kr_color parameters. This type of reflection uses one ray per shader evaluation, with a depth limited by the GI_reflection_depth global option. Glossy reflections are controled by the Ks, Ks_color, specular_brdf, specular_roughness and specular_anisotropy parameters. This type of reflection uses GI_glossy_samples to determine how many rays to trace per shader evaluation, and the depth is limited by the GI_glossy_depth global option. Note that using a specular_roughness of 0 will also give you a sharp reflection, but doing this is slower than using the pure mirror reflection code. These two types of reflection can coexist and have independent Fresnel controls. They are simply added together with the other components of the standard shader, without taking into account any energy conservation. We will probably end up unifying both types of reflections in the future. What is the re-parameterization of specular_roughness in the standard shader, and why is it nonlinear? Following advice of testing from artists, it was found they didn't like the linear mapping of the radius of the specular highlight. They instead preferred a mapping that is slightly curved, with an equation of type 1/r^3. This 1/r^3 mapping resulted difficult in the Cook-Torrance and Ward-Duer BRDF cases (requiring expensive powf() calls), and caused the specular_roughness to lose some of the "physical" sense of being proportional to the specular highlight's radius. We therefore opted to square the current roughness parameter. This results in a similar result to the 1/r^3 while maintaining some of the "physical" sense of the parameter (instead of doubling the radius each time you double the roughness, you end up quadrupling the radius). Can the diffuse_cache in the hair shader produce artifacts? The caching of illumination happens right at the hair control points, so yes, you may get artifacts in certain situations: If the first control point of the hair is just below the scalp, the point will be occluded from all lights and environment illumination, and this occlusion will "leak" into the second control point which is above the scalp. So you'd get some shadowing in the roots. If the number of control points is animated, the illumination can flicker. The cached illumination is not motion blurred. In any case, real hair does not have a diffuse component, this is just a hack to get some sort of bouncing in the hair. The cache also uses memory and may not reach 100% thread scalability (as multiple threads may need to write into the cache at the same time). The plan is to deprecate the hair diffuse cache, as soon as we have a more physically based model for hair with multiple scattering etc. How do you capture a 360-degree snapshot from a scene in Latitude-Longitude panoramic format? Lat/long maps can be rendered with Arnold's cylindrical camera. There is an example in the SItoA trac#638. For more information, from the command-line, type kick -info cyl_camera. Make sure that the horizontal fov is set to 360, the vertical fov is set to 180, and the camera aspect ratio is set to 1. How does bucket size affect performance? To simplify filtering, Arnold adds a bit of "edge slack" to each bucket in each dimension. The amount of "edge slack" is exactly 2 * pixel filter width (unless you are using a box-1 filter, which has no slack at all). If the user sets the bucket size to 32x32 with a filter width of 2, the buckets are internally extended to

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

264

SItoA (Softimage to Arnold)

36x36. This is so that each bucket has enough samples in the edges to perform pixel filtering independently of each other bucket, as inter-bucket communication would greatly complicate multithreading. Here is an example showing the number of camera rays as the filter width is increased: 1024x778, AA samples = 1, filter width = 1, traces a total of 796672 camera rays 1024x778, AA samples = 1, filter width = 2, traces a total of 900864 camera rays The corollary is that you should not use buckets that are too small, as the percentage of "redundant" pixels grows inversely proportional to bucket size. The default 64x64 is a good base setting, but 128x128 should be slightly faster. Do any of the light parameters support shader networks? At the time of writing (Arnold 3.3.13) shader networks are only supported in the color parameter of the quad_light and skydome_light nodes, and in the light filters (the filters parameter) of all the lights. How does the exposure parameter work in the lights? In Arnold, the total intensity of the light is computed with the following formula: color * intensity * 2exposure. You can get exactly the same output by modifying either the intensity or the exposure. For example, intensity=1, exposure=4 is the same as intensity=16, exposure=0. Increasing the exposure by 1 results in double the amount of light. The reasoning behind this apparent redundancy is that, for some people, f-stops are a much more intuitive way of describing light brightness than raw intensity values, especially when you're directly matching values to a plate. You may be asked by the director of photography - who is used to working with camera fstop values - to increase or decrease a certain light by "one stop". Other than that, this light parameter has nothing to do with a real camera's f-stop control. Also, working with exposure means you won't have to type in huge values like 10.000 in the intensity input if your lights have quadratic falloff (which they should). If you are not used to working with exposure in the lights, you can simply leave the exposure parameter at its default value of 0 (since 20 = 1, the formula then simplifies to: color * intensity * 1). How do the various subdiv_adaptive_metric modes work? edge_length : patches will be subdivided until the max length of the edge is below subdiv_pixel_error (regardless of curvature). flatness : patches will be subdivided until the distance to the limit surface is below subdiv_pixel_error (regardless of patch/edge size). This usually generates fewer polygons than edge_length and is therefore recommended. auto : uses the flatness mode unless there is a displacement shader attached to the mesh, in which case it uses the edge_length mode. The rationale here is that if you are going to displace the mesh you probably don't want the subdiv engine to leave big polygons in flat areas that will then miss the displacement (which happens at post-subdivided vertices). Should I use a background sky shader or a skydome_light? The skydome_light will most of the time be more efficient, in both speed and noise, than hitting the sky shader with GI rays. The only situation where using a sky shader may be faster than the skydome_light is when the environment texture is a constant color or has very low variance. There are various reasons why using skydome_light is more efficient: The skydome_light uses importance sampling to fire rays to bright spots in the environment, therefore automatically achieving both soft and sharp shadows; sampling the sky shader with GI rays cannot achieve hard shadows in reasonable times, you will need huge amounts of GI samples. The environment map lookups for the skydome_light are cached rather than evaluated at render time. Since texture lookups via OIIO are very slow, this caching results in a nice speedup, usually 2-3x faster than uncached (if you are curious, you can switch to uncached lookups by setting
2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Rendering FAQ

265

options.enable_fast_importance_tables = false and measure the difference yourself).

The skydome_light is sampled with shadow rays, which can be faster than GI rays because shadow rays only need to know that any hit blocks the light (rather than the first hit). This also means the sampling quality for the skydome_light is controlled via skydome_light.samples, whereas the quality for a background sky is controlled via the GI_{diffuse|glossy}_samples . This subtle distinction is very important: skydome_light is direct lighting and sampled with shadow rays, whereas the background sky shader is indirect lighting and therefore sampled with GI rays. How does the ignore_list parameter from the options node work? It tells the renderer to ignore nodes filtered by type. The following example will ignore, at scene creation, all of the occurrences of lambert, standard and curves nodes:
options { ... ignore_list 3 1 STRING lambert standard curves }

Which coordinate space does Arnold assume for a vector displacement? The displacement shader should output a vector in world space. How do the different subdiv_uv_smoothing modes work? The subdiv_uv_smoothing setting is used to decide which sub-set of UV vertices on the control mesh get the Catmull-Clark smoothing algorithm applied to them. Those vertices that do not get smoothing applied to them are considered to be "pinned", since the apparent effect is that their UV coordinates are exactly the same as the corresponding coordinates on the control mesh. The subdiv_uv_smoothing modes work as follows:
smooth (none pinned): In this mode Catmull-Clark smoothing is applied to all vertices of the UV mesh,

indiscriminately. This mode is really only useful for organic shapes with hidden UV seams whose coordinates do not have to precisely follow any particular geometric edges.
pin_corners : Catmull-Clark smoothing is applied to all vertices of the UV mesh except for those that

are connected to only two edges in UV coordinate space (valence = 2). This mode is the default in Arnold (for legacy reasons), however pin_borders is probably a more useful default setting in practice.
pin_borders : Catmull-Clark smoothing is applied to all vertices of the UV mesh except for those that

are connected to an edge that forms part of only one polygon. This mode is possibly the most useful of the four and we would suggest trying this one first. In this mode it is guaranteed that the UV coordinate seams on the subdivided mesh will exactly match the corresponding edges of the control mesh, making it much easier to place textures at these seams while still applying Catmull-Clark smoothing on all interior vertices.
linear (all pinned): Catmull-Clark smoothing is not applied to any vertex. This mode can prove useful

when rendering objects with textures generated directly on a subdivided surface, like ZBrush models exported in "linear" mode. The different modes are illustrated in the following image:

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

266

SItoA (Softimage to Arnold)

How are the polymesh normals computed when subdivision is enabled? Vertex normals will be computed using the limit subdivision surface, overriding any explicit values set in the nlist parameter. The vertex normals specified in nlist are only used for non-subdivided meshes. What is the Z value for rays that do not hit any object? The Z value for rays that do not hit any object is controlled by the far_clip parameter on the camera. By default this camera parameter has a value of 1.0e30f (AI_INFINITE ). Why does iterating through an AtSampler after the first split in the ray tree always return one sample? Splits are typically caused by the BRDF integrator methods, which can fire GI_diffuse_samples^2 or GI_glossy_samples^2 rays. In this situation there would be a combinatorial explosion in the number of rays as the ray depths were increased. Therefore, Arnold "splits" the integrals into multiple rays only once, at the first hit. After that first split, we only follow one single ray, in the spirit of pure path tracing. This may seem like it introduces severe noise, as intuitively the higher bounces seem undersampled compared to the first bounce. But in fact what we are doing is concentrating most of the rays where they matter the most. Since the AtSampler API was added for users writing their own custom BRDFs, we decided it was best to automatically handle splitting versus no splitting at the renderer level. Thus the sample count is automatically reduced after the first split, which affects the sample counts for both our internal integrators as well as any custom integrators that use AiSampler .

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Rendering FAQ

267

How does the time_samples parameter from the cameras work? time_samples is used to remap Arnold's "absolute time" to the "relative time" of motion keys, which are specified as values. If the keys are evenly spaced between 0 and 1, time_samples is not needed. But if they are notyou can remap time specifying the time_samples array. The syntax is the following:
time_samples 2 1 FLOAT 0 1

Which means an array of 2 elements with 1 key (you can't motion blur time_samples ). As an example, let's say there is a camera data with subframe matrix keys (M1, M2, M3) at times (0, 0.25, 1.0). By default Arnold will assume those keys correspond to (0.0, 0.5, 1.0) and when absolute time t is equal to 0.5 Arnold will use M2. If you set time_samples to (0, 0.5, 0.66, 0.83, 1.0) you define a linear piece-wise function F that will map 0 to 0, 1 to 1, 0.25 to 0.5, 0.5 to 0.66, etc. You can use as many linear segments as needed to make the remap smoother. When absolute time t is equal to 0.25 Arnold will use M2, because the remap function F(0.25) = 0.5, and 0.5 in "relative" time corresponds to matrix M2.

Questions about the API and writing shaders:

What is the difference between AiNodeGet* and AiShaderEvalParam*? The main difference between evaluating a shader parameter via AiShaderEvalParam* and evaluating via AiNodeGet* is that the former supports shading networks, whereas AiNodeGet* just returns the "static" parameter value without evaluating whatever other shader may be plugged in there. The other difference is that you can only call AiShaderEvalParam* from within a shader's shader_evaluate method, whereas you can call AiNodeGet* anywhere. Also, calls to AiShaderEvalParam* have much lower overhead than equivalent calls to AiNodeGet* because:
AiNodeGet* operates on strings which needs slow string comparisons, hashing etc. AiShaderEvalParam* is optimized to work on shader nodes, whereas AiNodeGet* can operate on

any node types and thus requires more internal checks and book-keeping. How do I retrieve user-data from a shader? In shader_evaluate, use the AiUDataGet* API, regardless of the the storage qualifier of the user-data (constant, uniform or varying). Note that, for constant user-data, it is also possible (but very slow) to retrieve user-data with AiNodeGet* . For performance reasons, you should never call AiNodeGet* from a shader's shader_evaluate method. It's OK to call AiNodeGet* from node_initialize and node_update, because these methods are only called once. What is the difference between AiNodeGet* and AiUDataGet*? The AiNodeSet/Get* API was designed for scene construction and manipulation, whereas the AiUDataGet* API was designed to be called at shading time. Are shader parameter evaluations cached with AiShaderEvalParam*?

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

268

SItoA (Softimage to Arnold)

Arnold does not cache any parameter evaluations (though this is scheduled for a future release). Evaluating the same parameter twice will evaluate the whole shading network twice, so care must be taken in shaders to avoid redundant evaluations. Can I use the AiNodeGetLink method inside a shader_evaluate? Technically, yes, you can call AiNodeGetLink() , AiNodeGetFlt() and similar APIs in shader_evaluate . However, it is not recomended, because these calls are slow, involving several string comparisons, hash lookups and other potentially expensive operations that can severely affect render times. The solution is to precompute these calls in the node_initialize or node_update callbacks, which are executed once per session or per IPR pass, respectively, rather than per shading sample. Using Anisotropic speculars You need to pass tangent (u,v) vectors to account for anisotropy effects in several BRDF functions (e.g. WardDuer). But these BRDF's are extremely picky about the N, u and v vectors being orthonormal. You could try to use sg->dPdu and sg->dPdv to build the tangent vectors. But there is no guarantee that they will be at a right angle from each other. In fact, the only time dPdu and dPdv are at a right angle with Nf is when Nf == Ngf. Secondly, the sg->dPdu and sg->dPdv vectors are constant values per face. This means that you will almost certainly see the edges between faces when using these vectors as a base for anisotropic shaders, making this solution unusable unless the faces are very small. If anisotropy is important to you, the most common way of generating an orthonormal basis for these functions is to define a "polar" vector in your shader (for example AI_V3_Z) and deriving a u and v vector from sg->Nf and the polar vector like so:
u v u v = = = = AiV3Cross(polar_vector, sg->Nf); AiV3Cross(sg->Nf, u); AiV3Normalize(u); AiV3Normalize(v);

The above technique combined with a "rotation" map is usually enough to get anisotropy oriented any way you want. The polar solution does have its drawbacks however. You will need special treatment for faces that are oriented exactly towards the pole (the cross product gives you null vectors as a result there) and the anisotropy does not "stick" to deformed meshes. To get the tangents to "stick" to deformed meshes you could use textures to define them (similar to the normal mapping technique) or pass tangents in as varying per-vertex data that your shader reads. The problem in this case is that currently we only support one value per vertex for the tangents, so complex uv layouts with islands will give problems. How do the visibility and the sidedness params of a node work?

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

Arnold Rendering FAQ

269

They are masks defined with the following values: Ray type
AI_RAY_UNDEFINED AI_RAY_CAMERA AI_RAY_SHADOW AI_RAY_REFLECTED AI_RAY_REFRACTED AI_RAY_DIFFUSE AI_RAY_GLOSSY AI_RAY_ALL AI_RAY_GENERIC

Hex value
0x0000 0x0001 0x0002 0x0004 0x0008 0x0020 0x0040 0xFFFF AI_RAY_ALL

Description undefined type ray originating at the camera shadow ray towards a light source mirror reflection ray mirror refraction ray indirect diffuse (also known as diffuse GI) ray glossy/blurred reflection ray mask for all ray types mask for all ray types

By default both visibility and sideness are set to 65535 (0xFFFF ). So, if you want a polymesh to be visible only for camera rays, its visibility value would be AI_RAY_CAMERA . And if you want it to be visible to Camera and Reflection you would do AI_RAY_CAMERA + AI_RAY_REFLECTED . What values does the disp_map polymesh parameter support? If the shader connected to the parameter outputs a float value, then displacement happens along the normal to the surface. But if it outputs a 3D vector, that will be the displacement vector itself, in objectcoordinates There is no native support for tangent-space displacement vectors in Arnold. However, you should be able to implement a displacement shader that interprets incoming tangent-space vectors and transforms them on-the-fly to the coordinate space defined by (N, dPdu, dPdv). How can I attach user data to a ray that can be queried in subsequent ray hits? You can attach arbitrary data to the shading state that's passed down the ray tree using the message passing mechanism. For example: To set a value:
float ior = 1.2f; AiStateSetMsgFlt("ior", ior); ...

To get a value:
float ior; if (AiStateGetMsgFlt("ior", &ior)) { ... }

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

SItoA Usage FAQ

271

Section 16 SItoA Usage FAQ


These issue are specific to the use of the SItoA plug-in, and do not relate to features of the Arnold renderer itself. For issues to do with rendering with Arnold in general, see the Arnold Rendering FAQ.

Sometimes the render-region doesn't update when I change various settings in my scene, how can I force it to refresh? Either step one frame forwards/backwards or use the command SITOA_DestroyScene() (most people map it to the F6 key). There is also a command to flush/reload just the textures called SITOA_FlushTextures(). For more information about SitoA-specific commands please see the SItoA Wiki: SItoACommands. Render-region interactivity works great in Softimage 2010 because of recent bug fixes. However, Softimage 2011 is especially prone to lost sync because of an Autodesk bug (described in ticket #746). A neat workaround for this bug is, before you start rendering, to let the first render-region finish completely, even if it's a tiny region that renders in a few seconds; then make a bigger region, and enjoy an immediate update of your changes. Can I use the Architectural shader? No, the Architectural shader isn't supported yet but Arnold comes with its own general-purpose shader called "Standard" which is quite similar. For a list of supported Softimage shaders please see the Shaders section. Where can I find Arnold specific shaders? All the shaders SItoA comes with are accessible from the bottom of the "Nodes" menu in the rendertree, they are also available by going to Get > Material > Arnold Shaders. See also the Shaders section. How can I hide polygons from the render Currently, SItoA only supports clusters with visibility property (which you can create from Get > Property > Polygon Cluster Visibility) How can I do glossy reflections using the Arnold "Standard" shader? In the specular section, increase the "Scale" parameter. The "Roughness" parameter will control how blurry your reflections are. The lower the value the sharper the reflection. In the limit, a value of 0 will give you perfectly sharp mirror reflection. You also have separate controls to adjust the intensity of the direct and indirect specular reflections. Direct specular are reflections coming from regular light sources (spot/point/ area/distant lights), and indirect specular are reflections coming from another object or an environment map. How can I setup Image Based Lighting? The skydome_light will be most of the time the best and fastest way of achieving IBL, in both speed and noise than other methods like using a sky shader. For a more detailed description of the subject please see the IBL page.

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

272

SItoA (Softimage to Arnold)

Can I use the normal visibility properties on my objects? Yes, Arnold will read the visibility options Softimage already has. Take into account the checkbox for "Reflection Visible" controls normal/sharp reflections, and "Reflection Caster" controls glossy visibility. It's a bit of a hack but it's as good as it can be done. In any case, you can also apply an Arnold visibility property to an object, partition or group which has all the visibility options that Arnold natively supports in it. Keep in mind that doing this will override your objects normal visibility settings. How can I avoid my procedural textures seeming to swim? There's a few ways in which 3D procedural textures can "swim" in animation: 1. Your object is undergoing a rigid SRT matrix transformation 2. Your object is deforming, the vertices moving around freely - for example a walk cycle 3. Your object is neither moving nor deforming, but it has displacement mapping (a lesser form of deformation), and for whatever reason you'd like to texture based on the un-displaced position The most problematic one to solve is 2. Since Arnold stores 2D UV coordinates (as opposed to UVW), there is no way to attach the required pose reference information. But there is a workaround: Create a Spatial UVW projection, a Color at Vertices map and an ICE Tree on your mesh Get data -> Spatial Projection UVW from the ICE Tree, convert to color and set data Vertex Colors. Then, you can read this information within the vertex_rgba node, that outputs a Color that can be converted to Vector and therefore feed it into external Coords input of most of the procedurals Can I use Softimages' built-in color management for linear workflow? The color management in Softimage will at the moment only affect the display in SItoA, for textures the only supported workflow is to have your linear images stored in a HDR format (.exr, .tiff-32, .hdr) and your non-linear, sRGB images in a LDR format (.jpg, .tif-8, .png etc). Then, in the global render options, set your Input Gamma values in the Gamma Correction tab to 2.2. Arnold will consider floating point images as linear and will only apply the de-gamma calculations to LDR images. Why do my shadows stay solid black even when they are cast by a transparent object? For optimal render speed, Arnold flags all objects "opaque" by default. To get shadows to respect transparency you need to disable the "Opaque" flag on the object(s) in question, you can do so by applying the "Arnold Parameters" property from the menu: Property->Arnold Properties->Geometry->Arnold Parameters For a more detailed description on the subject please see the Transparency page. Do I need to disable opaque on a point cloud if I want the instanced particles to be transparent, or only on the "master" object? You only need to put the Arnold properties in the point cloud if you want the instanced particles to be transparent. If you apply to the "master" object, it will only apply the properties to that copy Why does DOF work in Preview but not in Render Region? At the moment, SItoA is ignoring the [multi] : Render Region Options, so if you want to have DOF in your Render Region you need to use the [Per View] : Render Region Options available from the Down Arrow of the Render Region Window. It's advised that one define its Render Options at the Pass level and tick the Use Current Pass Options checkbox in the Render Region Options. How to do lookups in a shader to different UV shells Arnold does support mapping out of the usual 0,1 range. You can use this behavior to apply different mapping shells and do lookups to different image nodes (one per shell) composited with a mix shader in additive mode. The Idea is that for each shading point only one lookup to the different images will give the expected value (the one associated to the shell the face that is being shaded is in) and the others will return black (so they won't add to the final result).

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

SItoA Usage FAQ

273

To specify for each image the shell it belongs to, you can use the UV remap fields of the advanced tab from image node. What you want to do is to "offset" the corresponding shell to 0,1, adding or subtracting the needed value, both in U and V. If you want to offset a shell located in the range U=2,3 and V=1,2, then in UV remap you need to set U to -2,-1 and V to -1,0 . With a shell in the negative ranges then you need to put positive numbers in the remap. To remap a shell that is in the range U=-3,-2 and U=-1,0 the remap values would be U=3,4 and V=1,2. You can download an example here Download. Render Region freezes when changing values in Pass shaders This is a known problem. The PPG logic inside the Pass spdl is doing a lot of scene changes that cause unnecesary render calls. When the user does changes in the PPG, the scene will be rendered more than once while the UI doesn't respond. It's not really crashing, and eventually the render appears and the UI responds. This has been improved in Softimage 2012 (but it is still not 100% fixed). My ICE particles render in the wrong place, or not at all Check that all your ICE point clouds are zeroed out SRT, since Point Clouds under a hierarchy render in wrong place (see #532) What's the best way of handling ICE Instances in Arnold? You can use the InstanceShape node on particles, or you can try instancing Arnold Standins. Does SItoA support Object and Children Hierarchy Mode for ICE instances? Yes, if you put them in a model. If you want several models, put them inside a group in branch mode. Why does cached Hair not render correctly? There is a bug in Softimage versions prior to 2012 which makes the hair not render correctly, since the data coming from the API is wrong. This has been fixed in Softimage 2012 (see ticket #353). Can't see the Arnold specific render channels in the Pass Options Menu If the default renderer in the preferences is set to Arnold, the standard Arnold Channels will be automatically created when creating a new scene. But you can always manually call the SITOA_CreateRenderChannels() command. Bump mapping is not working when connecting images to a Bump2D node Bump2D need a consistent uv set applied. Bump mapping is not working when connecting images to a Bump3D node Bump3D works by evaluating the bump shader (an image in this case) at three different points: P + epsilonx, P + epsilony, P + epsilonz. Since the only thing displaced is the point, the UV coordinates will be the same in the three different lookups. These will give the same texel in the image and result in no perturbation of the normal. You should instead use the Bump2D shader for images. Can I use multiple projections in an object? The Arnold core doesn't currently support multiple UV sets per object. SItoA tries to work around this limitation by using the generic user-data mechanism available in the Arnold API. But this method can only store one value per vertex, thus not supporting complex projections or UV maps. See trac#278 for more information. SItoA doesn't support the Color4_Passthrough shader, is there a workaround? See trac#643 for more information on the implementation of Color4_Passthrough. As a workaround, you can use the old Color_Share, which is still there. For instance in SI 2011 you have to browse it from C: \Program Files\Autodesk\Softimage 2011\Data\DSPresets\Shaders\Texture\Share an and drag and drop to the shader tree. How do I load .tx files made by maketx? Softimage doesnt recognize them There is an option called "Use Existing Tiled Textures" in the Tiling Group of the Texture System tab from the renderer options, which lets you automatically use .tx files if they exist on disk. So, if your scene has one .jpg and one .tx in the same directory, with the same filename, you can use the .jpg in Softimage and

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

274

SItoA (Softimage to Arnold)

SItoA will automatically swap it out for the .tx at rendertime. This issue has been reported to the Softimage team (so it understands tiled+mipmapped tx files natively). I have a mesh that subdivides and renders fine in Mental Ray, but Arnold refuses to render it subdivided - what's going on? Arnold is a little more particular about mesh integrity than Mental Ray. What you probably have is a bit of bad geometry somewhere that needs to be cleaned up before Arnold can subdivide the mesh for rendering. When you draw a render region or render a preview, you will probably see a yellow warning pop up at the bottom of your viewport that says something like:
[subdiv] Face 3707 Edge 402, 1552 used more than twice

You will also get a warning in your log (assuming you're using Detailed logging) that says something to the effect of:
WARNING : [arnold] 00:00:00 377mb

[subdiv] polymesh (no_subdividey.map_marker_1000) is not manifo

To find the offending polygons/edges, just type their Face/Edge numbers into the search box in the MCP (while in the appropriate selection mode - face/edge) and SI will select them for you. Realize that Arnold will only give the warning once per scene refresh - so if you missed the Face number, you'll need to do a SceneDestroy and another render region to get the error to show up again. Once you know where the problems are, just correct the bad geometry (do a SceneDestroy for good measure), and the mesh should render Zoom animation on camera doesn't work Animating focal length doesn't work because a Softimage limitation. Basically, if you render a batch of 10 frames, say frame 90 to frame 99, frame 90 gets the camera evaluated correctly, and then when it moves on to frame 91 it doesn't update, so whatever frame the batch started on is the focal length. There is more information on this problem at https://trac.solidangle.com/sitoa/ticket/585

2012 SolidAngle S.L.

Confidential Information - Do Not Distribute

You might also like