Creating realistic handmade portraits


Creating a realistic portrait can be easier when you have access to 3D scans, high resolution texture maps, or even alpha brushes from photographs. But what happens when you don’t have all of that? In this tutorial, we will cover some techniques used to create all of the skin details using only ZBrush basic tools. Paint high definition skin maps from scratch using Mari, grooming hair with the xGen and rendering realistic shaders with Arnold in Maya. Everything you need to know in a workflow that was designed to make use of the most powerful software of the CGI industry.

1. Starting with a basemesh

Use the basemesh provided in this tutorial or the DemoHead project sample that comes with ZBrush. You can also create your own basemesh which is better to practice your anatomy skills. Try to match the reference as close as possible to the basemesh using the Move tool. Don’t worry about topology at this stage. ZBrush has a “see-through” slide in the interface that you can use to let a reference open in the background. This way you can switch between references without using an image plane.

realistic portrait basemesh
A good basemesh helps when starting a new likeness project. © Emerson ëCello

2. Getting the forms

Once the primary forms is done, use the the ClayBuildup and DamStandard brushes, get the main shapes of the model (secondary forms) following the muscles, and make sure you have the proportions right. Go easy with the subdivision level of your model. Stay close to one million polygons. It will be enough for the head.

realistic portrait form
Primary and secondary forms without going too crazy with subdivisions. © Emerson ëCello

3. Time to retopologize and UVs

Export the head as OBJ with something around 60k polys from ZBrush, and import inside Maya. Select the imported mesh and make it a Live Object. Now, you can use the Modeling Tool Kit to create a new low poly mesh of your model. When the low poly version is done, generate your UV map and split it in multiple UVs (UDIMs).

realistic portrait model
Flowing topology. Split the UV map into several UVs to get the most of the details. © Emerson ëCello

4. Mastering the pores

Starting with a basic subdivided plane and sculpting something that looked like a couch button. Remember that the amount of detail you put in it, will be seen in the close "micro" render in the future. From that, create an alpha brush and save it as Pore Brush for example.

realistic portrait pores skin
Create a unique pore and save it as an alpha to be applied in future projects. © Emerson ëCello

5. Sculpting high details

Re-import the new low poly version of the head into ZBrush. Subdivide it to achieve one million polys like before and use the Project All button on the SubTool palette to reproject the details from the old OBJ into the new one. Detailing time: in the GeometryHD subpalette, subdivide your model three times and with the mouse upon the model, press A to enter in the HD mode. Use the brush pore you created with the DragRect option to place each pore at a time (watch the video). It will take about two hours to finish the whole head.

realistic portrait sculpting
Don’t rush. Details need some time to be nailed. © Emerson ëCello

6. Wrinkles and fine details

After all the pores are in place, use the DamStandard brush to create the wrinkles. You can use the standard brush with Zadd mode on to add some pimples on the nose, and add more details under the eye. With the Multi Map Exporter, under the Zplugin menu, set the Map size to 4k or 8k to get the most of the details. Click on the File Names button to set UV tile ID format to <UDIM>. Export the head again as OBJ with 60k polys. This will be the mesh for the final render.

realistic portrait wrinkles and details
With only three brushes you can create all the details needed. © Emerson ëCello

7. Painting handmade maps

Inside Mari, create a Basic Procedural Color layer and choose the skin tone. To keep all the controls as possible, create another layer to paint the pores. Choose the PORE brush and set the opacity to 0.20 or 0.30. Increase the spacing to 0.2 and turn on the Jitter position with the max value of 70. This will be the basic setup for the whole painting process. Choose a lighter and a darker skin tone and paint the variations. In the end, you should have something like in the image.

realistic portrait map painting
Use color variations to create the appeal of a real skin. © Emerson ëCello

8. Specular map

Create one channel to each map you will need to keep things organized. With the same brush setup as before, create a Basic color in black and paint the specular map with white. The areas with more glossiness, add more white. In the end, you should have something like the image.

realistic portrait map
Specular map created with a Spray brush. © Emerson ëCello

9. Additional Specular (coat map)

The coat map will be to shine the most glossy zones (forehead, tip of the nose, lips, and eyelids). We will paint a separated map to get more control inside Maya. This time, create a White Procedural Color layer and paint on a new additional layer above with black. Use the SuperSlow brush to paint those areas according to your reference and the skin type of your model.

realistic portrait map
Coat map used to gloss the main areas of the skin. © Emerson ëCello

10. Exporting maps

Export each map at a time. To do that, select the Channel that will be exported first and right-click on it. Choose Export Flattened on the drop-down menu and select the option Export Current Channel Flattened. The default setting should work fine but be sure to let the Colorspace to sRGB.

realistic portrait exporting maps
Export each channel as a different map. This way, you can get more control. © Emerson ëCello

11. Light setup

Although a HDRI environment makes things fast, use a combination of spot lights to simulate the physical ambient. Set one to be a Key light (with a higher intensity). Usually the main light is at 45-degrees (called Rembrandt light) to give a nice look in the scene. Add two Fill Lights and one Back/Rim Light to give more details in the shadowed areas.

realistic portrait lighting
A light setup that simulates the real world. © Emerson ëCello

12. Hair, eyebrows, and eyelashes

To create hair, you have two methods. The first one will be used to create the main hair, eyebrows, and eyelashes. Select the faces in the basemesh you want to groom. Create a xGen Description, choose to create primitives as Splines and set to Control Primitives by placing and shaping guides. Use the Add or Move tool to create the guides and the Sculpt Guides to give them the shape. Create a new description for each one (hair, eyebrows, and eyelashes).

realistic portrait hair
xGen is a powerful tool to create hair. Placing guides manually helps you to achieve the final look. © Emerson ëCello

13. Beard and peachfuzz

For the beard (just like the peachfuzz), create the hair automatically will be faster. Select the whole mesh and create a new xGen description but this time, set it up to Groomable splines. This is more interactive and let you use the Grooming tools to change the length, the width, position, and so on.

realistic portrait beard
Beard and peachfuzz created with groomable splines which allows you to use the grooming tools. © Emerson ëCello

14. Shading network

The simpler, the better. With the AIStandardSurface, the maps will be connected straight forward. Displacement from ZBrush needs to be set as RAW in the colorspace and all the others as sRGB. The skin shader/color is composed with the same Diffuse map. Duplicate the File Node and attach a RemapColor node. One to Surface Color and the other to Surface Radius. Increase the red and blue position/values in the ReampColor to take some changes in the Surface Radius.

realistic portrait shading
The shading network should be clean as possible, especially if you don’t have an ultra power computer. Keep it simple. © Emerson ëCello

15. Render the final shot

With the camera and lights ready, it’s time to render. To have a clean and noiseless image, make sure the light samples are set at least to 2. Camera samples (AA) at 8, Diffuse/Specular/Transition/SSS set to 4. For a closer shot (like a macro), increase those values but remember that the higher the number, it will take more time to render the scene.

realistic portrait render
Increase the light samples and camera (AA) samples to get a nice detailed final image. © Emerson ëCello

Related links:

Fetching comments...

Post a comment