Learn how to achieve realistic 3D face rendering using Maya and Arnold. Explore skin shading, subsurface scattering, and displacement maps for lifelike results.
We cover setting up cameras and basic lighting, then dive into skin shading, including subsurface scattering.
We also use displacement maps for detailed skin texture and create a realistic cornea shader for the eyes.
In this tutorial, we’ll go through how to set up nodes inside Arnold to make realistic renders.
First, add lighting from the ZooTools sub-menu through the Light Presets.
Select any light preset you want, for this tutorial, we’re using the first default one.
Turn on the Light inside the workspace by clicking the lightbulb icon.
Next, make a new camera from the Camera Manager.
Change the name, and resolution and tick both the Match Res/Film Gate and the Display Resolution Gate.
At the end, click Duplicate Current.
By adding keyframes on the render camera, the camera will have different angles to take the render.
Make sure you are on the render camera, in the Panels, Perspective, and switch to the right camera.
While having the render camera selected from the Outliner, add a keyframe on the 0th frame.
On the other frames, set up 3 more frames of camera angles.
After setting up the frames, switch back to the perspective camera from the same Panel sub-menu but this time switch to the persp camera.
Open the Hypershade window and dock it next to the Outliner.
Select the head of the model, hold down right-click, and add a New Material.
Click the Arnold material in the Assign New Material window, and select the aiStandardSurface.
In the Hypershade, there will be a node for the aiStandardSurface material.
If you want to locate a node fast for any part of a mode, select that part and click the locator button in the Hypershade.
Rename the material to AI_Face.
In the Property Editor, click on the checkerboard square next to the Color.
Click on File in the new window.
Two new nodes will be added in the Hypeshader graph that are connected with the longer node which is the material node.
Click on the material node, AI_face, and click on the outlined box next to the Color in the Property Editor.
In Image Name, click the file icon next to it.
Select the Base Color PNG file then press open.
Wait for the base color to load and it will appear on the model.
To disable the XGen guides, switch the Workspace to XGen.
Select the Collection and Description then press the Hide Guides button.
Do this to every Description until all the guides are hidden.
Switch back the Workspace to General to continue adding the texture maps.
Next to the Roughness, click on the checkerboard square.
Click on File in the new window.
In Image Name, click the file icon next to it.
Select the Roughness PDS file then press open.
Wait for the Roughness map to load onto the model.
Open the RenderView from the Arnold tab.
Minimize the window and place it on the side.
Open the Subsurface sub-menu inside the AI_Face material, and increase the Wight to 1.
In the graph where the nodes are, connect the Base Color node’s Out Color to the Subsurface Color inside the AI_Face node.
This will set the Base_Color map as the Surface Color for the Subsurface Scattering.
Click on play in the render view, click the selection tool, and only select the ear on the model so that it renders only that area, making the render faster.
We can see that the subsurface scattering is white.
To change the color, click on the Radius white box.
Select a red-ish color, and adjust the Scale value to control how intense the subsurface scattering is.
Open the Render Settings window.
If you have a powerful GPU you can set the software to render with that.
Make sure that the Render Using is set to Arnold Render.
Most of the time, it is common to render with the CPU instead.
If you are rendering with a CPU, open the Arnold Render settings to make sure each value is set properly, especially the SSS (Subsurface Scattering).
To add a Displacement map the model needs to have a high amount of polygons.
Instead of adding more divisions to the model, we can instead use the Displacement Manager to add more topology on the rendered image rather than the model itself.
In the Displacement Manager, add 4 Divisions, set the Scale to lower than 1, 0.07, and tick the Auto Bump box.
Click on Create Displacement to make new nodes inside the graph for the displacement.
Next to the Image Path, click on the three dots.
Select the Displacement PSD file, and click open.
When we play the render we can see pores on the surface of the skin.
You can change the Scale to adjust how big the bumps from the displacement maps are going to be at any time.
That is all for the skin and we’ll move on to add the texture maps to the corneas of the eyes.
Open the Render Settings again, in the Common settings in Image Size, you can change the Preset resolution before rendering to get a better quality render.
Select the right and left cornea from the outliner.
Just like before, assign them a new aiStandardSurface material.
Rename the material to AI_Cornea.
Instead of adding the texture maps through each channel one by one, instead, we’ll select all the cornea maps, and drag and drop them inside the graph where the nodes are.
They will all appear in one line and need to be arranged one on top of the other by hand.
On every Normal map, in the Color Space, switch them from sRBG to Raw.
In the Property Editor on the AI_Cornea material/node, increase the Weight of the Subsurface all the way to 1.
With the Middle Mouse Button, drag and drop the Base Color node of the cornea inside the SubSurface Color.
Doing this will automatically connect the Base Color of the cornea to the Subsurface inside the AI_Cornea node.
You can also do this by connecting the two dots like we did with the face, this is an example of how you can do it another way. The same goes for the other texture maps as well.
When we run the render view, we can see how the cornea looks so far.
To connect the normal maps properly, click Tab while hovering on the graph with the cursor, and search for the aiLayerRgba.
Select the new node and first Enable all 3 layers.
After enabling the layers, switch all the Operations to be set on normal_map.
With the Middle Mouse Button, drag and drop each normal map node into its own layer inside the Inputs.
Add the aiNormalMap node, and connect the Out Color from the aiLayerRgba to the Input of the aiNormalMap node.
Lastly, connect the Out Value of the aiNormalMap to the Normal Camera of the AI_Cornea material node.
When we run the render view, we can faintly see the normal map on the surface of the cornea.
To make the Cornea material transparent, we’ll need to add a couple of nodes.
In the graph, add another aiStandardSurface material and delete the blue node that comes with it.
Rename the material to AI_CorneaTrans.
Add an aiMixerShader, connect the Out Color from the AI_Cornea material node, to the Shader 1 in the aiMixerShader, and connect the Out Color from the AI_CorneaTrans to the Shader 2 in the aiMixerShader.
In the outliner, select the left and right cornea, hold right-click, and assign the existing material, aiMixerShader.
Go back in the Hypershade, and rename the aiMixerShader to AI_CorneaMix.
To make it so that only around the Iris the cornea is transparent, we need the add a ramp [Textrue] node.
In the new node, change the Type to Circular Ramp, make sure the white part of the mask is on the left side while the black part of the mask is next to it on the right side, and set the Scale Position to 0.212.
Connect the ramp node’s Out Alpha to the Mix of the AI_CorneaMix node.
Click the AI_CorneaTrans node, and change the Roughness, IOR, and Ttransmission Weight values.
Play the render view to see how the transparency affects the iris.
Now that the cornea is done, we’ll move on to the eyeballs.
Select the right and left eyeball from the outliner and assign a new aiStandardSurface material.
In the graph, drag and drop the eyeball texture maps.
Rename the texture to AI_Eyeball.
Connect the Diffuse Out Color to the Base Color of the AI_Eyeball material node.
Connect the Specular Out Color to the Specular Color of the AI_Eyeball material node.
With the normal map, add an aiNormalMap node, and connect the Out Color of the normal map to the Input of the aiNormalMap node.
Connect the Out Value of the aiNormalMap node to the Normal Camera of the AI_Eyeball material node.
Adjust the Roughness of the AI_Eyeball material node.
With that, we are done with the eyes.
Lastly, we’re going to add a new material to the hair.
Select the hair guides, hold right-click, and assign a new material.
Just like before, click on the File option, and in the new window, assign the aiStandardHair material.
Unlike everything else, for the hair material, we can edit it from the Attribute Editor.