This tutorial covers how to create the first look.

Alembic to Arnold Procedural/Stand-In (.ass) 

Before you start, you are going to need to export the model to Alembic. We can then import that into an Arnold Procedural/Stand-in.

  • Export your original file (in this case the robot) to Alembic: Arnold -> StandIn -> Export Selection to Alembic .. 


  • Import the robot Alembic .abc file (link on parent page) into a Stand-in. Note that the hierarchy is the same in the File Contents window of the Stand-in.


  • Light the scene and render it. You should notice that it has no material assignments and renders gray.

Assigning Shaders

  • Now we can add different shader assignments to different objects.
  • In the File Contents, click Color 1 and then click Add Assignment > shader. This will automatically connect a Set Parameter operator to the Procedural Stand-in. In the Node Editor, click Show Graph or double click the Set Parameter in the operators list. You can see the "assignment" operator in the Operators list (the Operators list shows the operators that apply to what's selected in the File Contents list).

Set Parameter operator created in background

  • Create a Standard Surface shader and choose the Chrome preset. Alternatively, increase Metalness to 1, and Specular Roughness to 0.
  • Middle mouse drag the Chrome shader from the Hypershade to the Shader slot of the Color1 group (File Contents).


You should see the Color1 group in the Selection and the Chrome shader in the Assignment of the Set Parameter.


When we look at the Color1 group in the File Contents, we can see the shader assignment. The grayed out sphere icons represent the inherited assignment (material).

  • Repeat the same above procedure for the Color2 group using a black plastic shader.
  • Render the scene. The material assignment should look something like this.

Export Operator Graph to Disk 

  • In File Contents, select Robot (or / ?) and click Show Graph. Create a Merge operator. We will use this node as the target node to apply a look (where a look is a combination of multiple shader assignments). Manually set up the Merge Operator as in the image below.
  • Reconnect the OUT of the Set Parameter nodes to the Inputs of the Merge operator in the Node Editor.

Alternatively, you could:

  • Click Add Operator > aiMerge and click Show Graph. In the Node Editor, disconnect the aiSetParameter nodes from the aiStandin_Shape node, and connect to aiMerge inputs.
  • Rename the Merge operator to default_look.

Now we are going to export the operator graph to disk so that we can establish a default look point.

  • Select the Merge operator (default look) and go to Arnold > Utilities > Export Operator Graph.
  • Choose a name & version (default_look) and where to save it. Ensure that Export Assigned Shaders is enabled.

Export Assigned Shaders enabled

Testing the Look Dev

Now let's test what we have done so far and that it works correctly.

  • First, create a new scene.
  • Create a Procedural/Stand-in and load the Alembic robot character.
  • Create some lights and render the scene. You should see that it does not have any material assignments yet.
  • Next, we will load our materials, bindings (and any other geometry properties) on the Alembic file.
  • Create an IncludeGraph operator and connect it to the operators 0 input. This can be done in the UI too.
  • In the Stand-in Attribute Editor, click Add Operator > aiIncludeGraph.
  • You won't see the IncludeGraph operator in the Operator list, because it isn't applied to a specific object.
  • Click Show Graph: the IncludeGraph operator is already connected for you, you just need to load the operator graph.
  • In the IncludeGraph operator, load the default lookdev_v01.ass operator graph that we exported earlier.
  • Now render the scene. You should see the robot is now being shaded with the look that we exported.

Lookdev_v01.ass loaded in Include Graph operator


Hopefully, you can see how easy it is to export different look dev files which can then be used to manage complex scenes in a pipeline.



  • No labels