What's new in Version 2.5
SItoA version 2.5 is based on version 220.127.116.11 of the Arnold core.
New features include:
• User Options now has a flag called Resolve Tokens. If enabled, the Softimage tokens such as [Frame] are resolved before the string is passed to Arnold. See the User Options topic for details.
•Help links have been updated and now point to the most specific topic in the on-line help.
• Improved the exporting time with light associations.
•Added <udim> and <tile> token tag support to sib_image_clip.
• sta_vector_displacement shader added. This shader has support for tangent-space vector displacement. This is meant to supercede and replace the old sta_displacement shader, which is now deprecated.
• 25% faster bump mapping (less shader evaluations per call).
• 25% faster ray acceleration structure build (30-80%, depending on platform and compiler).
• Several other speed and memory optimizations.
• Auto-instancing of standins whose Path parameter points to an .ass file; subsequent standins trying to load the same.ass file will instance the previously loaded geometry, potentially saving lots of both memory and disk I/O. By default this feature is turned off, it can be enabled by setting the global option "enable_procedural_cache true" in the User Options string field in the renderer settings.
• After implementing vector displacement (#1312), sta_displacement is no longer needed to perform scalar displacement mapping. The displacement branch can be plugged directly into the displacement slot of the material. Usage of sta_displacement will still be allowed for both scalar and vector displacement, but is deprecated and will be removed in a future version.
• Unified convention names. For more details see the note 'On Exported Names' below.
• Ticket #280 can affect the look of assets shaded with the standard and / or skin shaders. Previously, color values at the edges in the standard shader could go negative when using both mirror and glossy reflection at the same time. A darkening effect could also appear when the Fresnel reflection at the edge was set to less than 100%.
• SItoA for Softimage 2013 is now compiled in Visual Studio 2010.
On Exported Names
In SItoA 2.5 we tried to standardize the way we name the exported Arnold nodes after the corresponding Softimage object (see ticket #1211). The purpose of the ticket was to:
- Have a unique syntax for all the nodes (before, we had several different ways to compose the names, and different characters to separate the name fields).
- Give a scripter/developer the ability to retrieve a given node out of the native Softimage object, and viceversa. For instance, after an .ass file has been exported, a user may want to edit one of its nodes having as a reference the Softimage scene.
As a general rule, the names now have the following format:
Softimage Object Full Name + ".SItoA." + something where "something" is a string depending on the node type and described in more details below.
So, if you need to retrieve the Softimage object out of the Arnold node name, you can simply trim the name string up to the last occurrence of the ".SItoA." substring. Vice-versa, if you need to retrieve an exported node name out of a Softimage object, here are the details, depending on the node type:
Arnold Node(s) Name
Mesh FullName + ".SItoA." + time
point_light, distant_light, etc.
Light FullName + ".SItoA." + time
gobo, barndoor, etc.
Filter property FullName + ".SItoA." + time
image node for the gobo slidemap
Filter property FullName + ".SItoA.GoboSlidemap." + time
Camera plain Name, because of the camera projection shader
standard, utility, etc.
Shader FullName + ".SItoA." + time + "." + UniqueId
Standin FullName + ".SItoA." + time
Instance Model FullName + " " + master node name
one curves per chunk
Hair FullName + ".SItoA." + time + "." + chunkId
Hair by procedural
Hair FullName + ".SItoA." + time, .bin file names unchanged
Arnold Node(s) Name
PointCloud FullName + ".SItoA.Disk." + time
PointCloud FullName + ".SItoA.Sphere." + time
one disk per point
PointCloud FullName + ".SItoA.Disc." + time + "." + discId
Box | Rectangle
one box per point
PointCloud FullName + ".SItoA.Box." + time + "." + boxId
one cylinder per point
PointCloud FullName + ".SItoA.Cylinder." + time + "." + cylinderId
one cone per point
PointCloud FullName + ".SItoA.Cone." + time + "." + coneId
one ginstance per point
PointCloud FullName + ".SItoA.Instance." + time + "." + instanceId + " " + master node name
PointCloud FullName + ".SItoA.Strands." + time
Shape on strands
PointCloud FullName + ".SItoA.InstancedStrands." + time + "." + strandId
where time is the Softimage frame multiplied by 1000 and cast to integer. In cpp that's:
We use spaces in just one case, that is instances, for IPR reasons. For example, if you have a cube under a Model at frame 35, the cube is exported as:
So, also for ginstance nodes, it is easy to retrieve the master node and its Softimage object.
The various ID's (chunkId, discId, etc.) are unique integers, needed when several Arnold nodes derive from a unique Softimage object. For instance, say you have a pointcloud setting the particle shape to cone. A unique Softimage object (the point cloud) is exported as a collection of Arnold cone nodes, and each must have a unique name, as required by Arnold. This is what the .ass file looks like at frame 35: