If you are starting this tutorial here, you will need to download the result of the previous section.
Create a Grid and scale it up to the horizon. Something around 1000 should do.
- Go the SHOP and tab-create an Arnold Shader Network called ground. Enter this and tab-create a Standard Surface shader. Connect the RGB output of standard1 to the surface input of OUT_material.
- Duplicate the vopnet and call it robot_eye_ball. Select the standard Surface shader and go to the Specular tab. Change Specular to 0.116 and Roughness to 0.226
- Duplicate the robot_eye_ball vopnet twice and name them robot_eye_body and robot_eye_pupil.
- Under Base, change the Diffuse Color of the pupil to black. Change the Base Color of the body to anything you like because it will be overridden shortly.
- Drag the ground vopnet from the SHOP onto the Grid in the viewport to assign it or go to the material tab.
To assign the robot shaders, we will need to apply them to the groups inside the obj file. Enter the one_eyed_robot network and create a material node after the copy1.
- Change Number of Materials to 3 and use the drop down arrow to select the group and Node Selector to assign the materials as follows.
Group - robot_eye_pupil > Material - /shop/robot_eye_pupil
Group - robot_eye_ball > Material - /shop/robot_eye_ball
Group - robot_body robot_eye_lid robot_eye_iris > Material - /shop/robot_body
Now go to Outputs and tab-create an Arnold ROP. Leave it as default values for now though if you have an Arnold License, you might want to disable Skip License Check in Properties > System.
Tab-create an Arnold Light and under the Light tab set Light Type to Skydome. Increase the light's Samples to 2. Change Color Type to Shader and click on the Arrow to the right of the Color Shader parameter.
- This changes the network view to look at the vopnet held inside the Arnold Light node. Inside the Arnold Vopnet tab-create a Physical Sky shader and also an Environment Output. Connect the output of the physical_sky1 node to the Color input of OUT_light and the background input of OUT_ environment.
- Select the Physical Sky and increase the Intensity to 4. Depending on where you placed your camera you may want to change the sun direction. This sun is rotated with the Azimuth control.
To view the Physical Sky as a background, the vopnet inside the light must be connected to the Environment parameter of the Arnold ROP. This is under the Main tab.
Render the scene using your preferred context, and you should see something similar to below.
Now to add the color variety. Enter the one_eyed_robot_network and select the copy1 node. Name Variable 2 to seed and set Value 2 to rand($PT + 65465). This is generating random seed value based on the point the robot is assigned to.
This seed value needs to be attached to each robot as an attribute that can be passed to the shader. Again, we will use the copy nodes stamp ability.
- Add an attribCreate node before the Out_robot1 null and call it attribcreate_seed.
- In Name put seed, the Class is Primitive and the Value is stamp("../copy1", "seed", 0)
- With the attribute created and assigned to each robot, we need to make sure it is exported to the ass file. Go back to obj level and select the one_eyed_robot node.
- Add some Arnold Properties by clicking the button in the Arnold Toolbar or by tab-typing.
- Under the Attributes tab put seed as a Primitive Attribute.
As this seed value will now be exported, we can use a User Data node to collect it and apply it in a shader network.
- Go to the robot_body shader vopnet and tab create a User Data Float node. Put seed as the Attribute.
- This seed value can be used to change the hue of the diffuse color. Connect the user data to the Hue Shift of the Color Correct. Connect the Color Correct to the Diffuse Color of the standard shader.
- Set the Input of the Color Correct to a desaturated red (1,0.15,0.15).
Go to the Arnold ROP and under Properties > Sampling, increase the AA Samples to 4 and Specular samples to 3.
Now render again to see a robot army of many colors!
You can download the result of this section below.