Naming Convention

This document explains the way we name the exported Arnold nodes after the corresponding Softimage objects.
We try, as much as we can, to have a unique syntax for all the nodes (in older SItoA versions, we had several different ways to compose the names, and different characters to separate the name fields.

This also to give a scripter/developer the ability to retrieve a given node out of the native Softimage object, and vice-versa. 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 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.

Viceversa, if you need to retrieve an exported node name out of a Softimage object, here are the details, depending on the node type:

Softimage ObjectArnold Node(s)Arnold Node(s) Name
MeshpolymeshMesh FullName + ".SItoA." + time
Lightpoint_light, distant_light, etc.Light FullName + ".SItoA." + time
CameracameraCamera FullName + ".SItoA." + time (2.6, was Camera plain Name in 2.5
Shaderstandard, utility, etc.Shader FullName + ".SItoA." + time + "." + UniqueId
StandinproceduralStandin FullName + ".SItoA." + time
InstanceginstanceInstance Model FullName + " " + master node name
Instance of lightlight (cloned)Instance Model FullName + " " + master node name
Hairone curves per chunkHair FullName + ".SItoA." + time + "." + chunkId
Shape on hairone polymesh per strandHair FullName + ".SItoA." + time + "." + strandId + " " + master node name


PointCloud ShapeArnold Node(s)Arnold Node(s) Name
Pointspoints (mode=disk)PointCloud FullName + ".SItoA.Disk." + time
Spherepoints (mode=sphere)PointCloud FullName + ".SItoA.Sphere." + time
Discone disk per pointPointCloud FullName + ".SItoA.Disc." + time + "." + discId
Boxone polymesh with six quads per pointPointCloud FullName + ".SItoA.Box." + time
Rectangleone polymesh with one quad per pointPointCloud FullName + ".SItoA.Rectangle." + time
Cylinderone cylinder per pointPointCloud FullName + ".SItoA.Cylinder." + time + "." + cylinderId
Coneone cone per pointPointCloud FullName + ".SItoA.Cone." + time + "." + coneId
Instanceone ginstance per pointPointCloud FullName + ".SItoA.Instance." + time + "." + instanceId + " " + master node name
Lightsone light (cloned) per pointPointCloud FullName + ".SItoA.Instance." + time + "." + instanceId + " " + master node name
StrandscurvesPointCloud FullName + ".SItoA.Strands." + time
Shape on strandsone polymesh per strandPointCloud 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:

If this model is instanced by Model_Instance, then the instanced 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 a 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:


  • No labels