To create a shader network material and assign it you must create one or more nodes of type ArnoldShadingNode, one NetworkMaterial node, and one MaterialAssign node. In the NetworkMaterial node parameters (green highlight) you should click the Add Terminal button, and choose the type you desire. Let's use the Arnold Surface type, as there are other types available that we don't need yet. It creates an input port on top of the node that you will be able to connect a shader network to later:
Next, edit the ArnoldShadingNode parameters. Click the nodeType drop-down, and select standard_surface. It should build a list of parameters for the Arnold built-in standard shader; set them how you like (for example, decrease specular to 0.3):
At this point, you could experiment; try adding another ArnoldShadingNode to your node graph, set its nodeType to noise, increase its octaves (to say, 3) and decrease its scale (to say 0.1 in each dimension), to make it more interesting. You should then plug the nodes together:
- Noise shader node output (out) into the standard shader node input (Kd)
- Standard shader node output (out) into the NetworkMaterial surface input
- NetworkMaterial output into the Merge node
Your node graph should look like this:
Finally, for the material, we must assign it. Edit the parameters of the MaterialAssign node, middle-mouse dragging the pony from the Scene Graph tab to the CEL Add Statement text again. Then, expand the materials group in the Scene Graph tab and middle-mouse drag NetworkMaterial to the materialAssign field (not the text) in the Parameters tab. The parameters should look like this:
Now, let's create two lights, one point light, and one skydome light. Usually in Katana you would create a GafferThree node (in Katana 1.x, a Gaffer node) to create your lights (your homework is to do this once you are done with this tutorial), but we're taking the longer route through to see all the steps that truly go into light creation under the hood. The process is quite similar to material creation, except we don't create shader networks. For each light, create and hook up the following nodes, setting their parameters (this process should start to feel familiar):
- LightCreate node: in the parameters, for the skydome light set the name to /root/world/lgt/skylight so it is differentiated from the other light.
- Material node: in the parameters, click the Add shader button, set it to type light, then set the arnoldLightShader type to the desired type. For the point light, expand the shader parameters (arrow next to the arnoldLightShader type) and set the exposure to 10. For the skydome light, set the intensity to something like 0.4.
- MaterialAssign node: create it, and connect it to the Material node you just created, as well as hook that node to the LightCreate node you just created. Then, make it viewed (blue highlight) and editable (green highlight). You can then middle-mouse drag the light in the scene graph (light or skylight) to the `` expression so you are assigning the light material to the new light. Finally, middle-mouse drag the new material (Material or Material1) to the materialAssign parameter.
Once both lights are created, connect them both to the Merge node so that they are present in the scene:
The final step is to position the point light. Make the Render node viewed (blue highlight) again. Go to the Viewer tab, select the ../light from the bottom list, and use the middle/right mouse buttons to position the camera. This is actually moving the point light itself into position.
Finally, right-click it and kick off a Preview Render (switch again to the Monitor tab to see the results). It should look like this:
To increase the render quality and remove the noise, create an ArnoldGlobalSettings node, insert it in between the RenderSettings and Render nodes and set the Anti-aliasing Settings -> AA_samples to 4: