Making Of 'Old Man' by Frederic Scarramazza
After making a few models of girls, I felt like doing something slightly different. I challenged myself to make a realistic portrait, and chose to do an old man. Although some people asked me if it was an attempt at creating the portrait of an existing person, it was not. Nonetheless, of course I used lots and lots of references throughout the creation process.
I might be telling you something you've heard a thousand times before, but it is very important to get as much reference material together as possible before you begin. Also, try to get close up references for each part, even if it comes from different people and other ages than the one you are trying to achieve. If you want to achieve a realistic result, it's really useful to know how things are done in real life. Most importantly of all, you have to take the time to observe and understand how everything works (muscles, fat, wrinkles, bones, etc.). Take some time to study the details and don't forget that 3D software is just a tool, and that to make a realistic human character requires a sold knowledge of anatomy.
You'll find tons of references on search engines and on websites like 3dsk. Here are a few thumbnails of some references I used for this project (Fig.01).
Before we start, I would like to tell you that it took me several months to achieve this result, because I was learning as I went and it was all during my spare time. So, instead of explaining all the phases of the original creation process (which probably wouldn't be interesting), I'll detail the workflow I've put in place and that I will use from now on.
As a common workflow, I started with the base mesh (Fig.02) and UVs (Fig.03) in 3ds Max, then imported it into Mudbox for the sculpting process.
I have several base meshes I usually use for any human character I sculpt. Two or three base meshes are suitable in most cases (though proportions change from one person to another, general shapes, bones etc., are things you find on every human being). Another example of a base mesh that gives me satisfaction can be seen in Fig.04.
Once the sculpt is done, you might want to do some retopology if necessary. In this case, I didn't do any since the model was only intended for a still image and the result was okay.
During the sculpting process, you might want to go deep into each level before increasing details. I usually think of each level of details as a base for the next, going from the general shape to the fine details (Fig.05 - 06).
I put the face in pose quite early, as I had a precise idea of what the final posing would be, and having the head posed is helpful to work on details such as eyes and symmetry breaking. I also prefer to get rid of the Symmetry tool as soon as the general shape is blocked. It helps get a better, more lifelike, feeling (after all, if I had to do the same work with clay, for example, the Symmetry tool wouldn't be available.
As you might have noticed in the preceding images, I didn't sculpt all the fine details. One thing I learned during this project was that it's more comfortable and flexible to work on fine details such as pores and light wrinkles with a bump map. I see several advantages in doing it this way:
• There's no need to get mad with mesh resolution (I stayed under 1 million polys for this model)
• The alpha maps require a lot of tuning and tend to inflate the model when you sculpt pores and details with them
• If you have to redo some areas (and more specifically, if you have to smooth some parts of your sculpt), the fine details layers stay intact
• Saves some rendering time, since fine details are not obtained by displacement, but by a normal bump.
To paint bump, I use the bump channel of the painting area of Mudbox. This tool is just top notch stuff! You get the same feeling as if you were sculpting. Then, it's all about using alphas, stamps and stencils. You can use those packaged in the software or create your own.
To add nice variations to your painting, don't forget to use randomization for your stamps. Mudbox offers some interesting options regarding rotation, spacing and size randomization (Fig.07).
As well as the sculpting tools, the painting tools allows you to use the "steady stroke" option, which comes in very handy when painting wrinkles for instance.
I created a stamp for the pores (Fig.08), but used the inbuilt ones for all the rest. Here, you can see the result of the bump map painting inside the view port (Fig.09).
Fig.10 shows the painted bump and the last level of sculpting, so you can see what's geometry and what's not.
Then I exported this channel to Photoshop (Fig.11) and converted the grayscale bump map into a normal map using the Nvidia filter (Fig.12). Mudbox can also convert the bump into a normal map, but exporting the channel to Photoshop allows you to make some color adjustments if needed and the Nvidia filter offers some interesting options to tweak the depth and orientation of the normal map.
Modelling the pullover was based on the same workflow, but I didn't use any normal maps this time, only displacement, since the level of details was a bit lower (Fig.13 - 14).
For the eyes, I used the construction technique described in this cool tutorial, here on 3DTotal:
http://www.3dtotal.com/index_tutorial_detailed.php?id=948. I just used a bit of displacement for the iris. I made the grayscale displacement by painting over my eye texture, defining bumps and holes here and there.
No photo projection was used to paint the diffuse texture of the face. Everything was made from scratch.
Here's how I did it:
I turned the color of the material to something very different from human skin, like green, which helped me to see if I'd covered the whole surface during the painting process. Then I painted a base color similar to human skin (Fig.15).
And now, for the fun part! Using stamps and stencils, I started making some color variations on the same layer, using the Burn and Dodge. When doing this it's important to always keep in mind that you should work with stamps for the whole process, to keep having some noise and variations. Areas such as upper head, cheek bones and chin received more "burning" than the others, as they are more exposed to sunlight (Fig.16).
This stage took a long (long, long) time. It was all about fine tuning and testing. If I went a bit too far in the burning or dodging process, I used the airbrush and my base color to paint over the areas I wanted to attenuate.
Once this layer seemed OK, I created some other layers to add color variations to the skin, veins, spots, aging marks, freckles etc. I kept in mind that human skin is not only composed of red-pink-yellow colors, but you can also find areas with touches of purple, blue, green or gray tones (around the eyes, on the cheeks for males with shaved beard, etc). Once again, it was crucial to have as much reference material as possible at this stage too.
I used a different layer to paint the mouth color, which allowed me to tune it separately from the rest in Photoshop when it came to testing the look of the map during renders.
Here are some screenshots of the final painting into the mudbox viewport (Fig.17).
Here are the same pictures with flat lighting, so you can see the details better (Fig.18).
And finally, the diffuse map (Fig.19).
The original size was 4096 x 4096 (Fig.20).
One cool thing about painting an old dude's skin is that you can go pretty far in detailing without being unrealistic. It would have required more finesse to make a young lady, for example.
The bump channel, as I explained earlier is easy to make, since it's already made (see Fig.11). I used this map to paint the specular channel.
In Photoshop, I used the bump map as a background, then added the displace map in Multiply mode on top of it with an opacity of around 60%. Using displace is optional as bump alone can give good results, but if you use both, you'll have wrinkles (displace) and fine details (bump) as a basis for painting the specular channel.
Next I turned the luminosity to something near to dark gray (Fig.21), then into a new layer I start painting white zones where I wanted highlights and specularity (mostly cheeks, chin, lips, upper head)(Fig.22).
I set this layer to Screen mode; this way I got all the detail of the bump going through the white zones I'd just painted. Now, playing with the opacity of the white layer, I was able to adjust the level of specularity. I also added a tuning layer between the bump and displace group and the "white zones" layer, to adjust the luminosity of the details, in order to obtain this for my final specular map (Fig.23).
Of course, all these maps needed tweaking once I started test rendering the picture. I could have done a simple specularity map, with just black and white areas, without using the bump map as a background, but using this bump map helped to get better details during the rendering. It sort of underlined the bump, as if skin pores and wrinkles didn't have as much specularity as the rest of the skin, which is probably right in real life too.
On this project, I wanted to test the new mental ray sss2 shader. It basically works the same way as the former version, but has some new tools, that are definitely worth a look. You can now play with a 3 color tuner (red, green and blue) for the radius of each level (epidermal, subdermal, backsurface etc), You can also use two layers for reflections and two others for specularity, and the results are way better than the former shader.
So, how did I get started? First of all, I set up a simple scene. Then I imported my basemesh, applied a Turbosmooth modifier to it, with enough render iterations to get my sculpting details, then added a Displace modifier and plugged the displacement map into the map slot (Fig.24).
Your displacement map needs to be at least a 16-bit image or you'll get poor results. I worked with a 32-bit EXR map, which are very convenient when using displace. I just put the displace strength to 1.0 and there was no need to spend hours making adjustment (Fig.24).
Next I applied the sss2 material to it, and plugged my normal bump into the bump map channel (Fig.25).
When doing something like this, don't forget to set the gamma value for the normal map to override: 1.0. You'll have to do this for the specular and displace maps too. To tune the normal bump intensity, first, use a standard material. This goes faster than the sss to render. You can also leave the subdivision levels of the Turbosmooth modifier to 1 or even turn it off, since your bump and displace are independent (one other advantage of this technique.
Next I placed a couple of directional lights, with very sharp shadows (raytraced shadows, of course, and a small area size). I turned the mr photographic exposure control on, tuned it, placed a camera and then hit render. To get something close to what I wanted, I used the scale conversion factor (Fig.26). I didn't need to use individual channel adjustments, as mr sss2 has good default settings that needed just a little tweaking (Fig.27).
Once the scale was OK, I started playing with the individual RGB parameters of each layes, to see how it influenced my shader at rendering. You can get some quite interesting red color bleeding in the areas where light meets shadow if you keep using values that are multipying by 2 from right to left (e.g., 24, 12, 6 or 8, 4, 2).
I used the same values for the last two channels (green and blue). Then I plugged my diffuse map into the epidermal and subdermal channels (one cool thing about this new sss2 is that I didn't use a different map for the epidermal and subdermal channels, since you can control the RGB amount directly by tweaking the shader values).
I set the unscattered diffuse weight close to 0, since it only attenuates the scattering effect (you can use it for make up or body painting, for example). Then I tested it until the result suited me.
Fig.28 shows some late shots I rendered during the testing phase. I felt then it was OK to move on to the final render.
As you can probably understand, this stage took quite some time. Here is a screenshot of my SSS tunings (Fig.29), but keep in mind that all these values are pretty worthless if taken "as is" to your own model. Might be helpful anyway to give an idea of how my shader was done.
For the hair, eyebrows and beard creation, I imported my base mesh once again. I selected faces and detached objects to make "scalps": one for the hair, one for the beard, and one more for the eyebrows.
I also made some hair for the pullover.
I painted a black and white map to be used as a length map (basically, black areas will have a hair length of zero, while white ones will have full length. You can play with shades of gray too to get intermediate length)(Fig.30)
I used these meshes as proxy object to grow hair. Then, I applied the Hair and Fur modifier, and combined hairs until I got the result I wanted (Fig.31).
The hair was pretty easy to style, as this man has short hair and is partially bald.
To render the hair, I used mental ray and simple spot lights. I also rendered the hair in a whole new scene and composed the result with my character render.
To make the lights from the hair scene, I matched the lights from the render, imported (merged) those lights, and then created simple spots and aligned them to the original lights. I did the same for the camera, so I was absolutely sure it was all accurate.
To render the hair with mental ray, I used the mrprim (Fig.32).
When doing this you can either use the default material of the Hair and Fur modifier, or use a mental ray material, with a hair map plugged in the surface channel. I personally like to use the shader_p Hair_TK pack (Fig.33).
Using a mental ray shader simplifies the tuning a lot when you use multiple proxies to grow hair, and you want them all to look the same (for example, when growing long hair, you might want to have several proxies, but they're all the same hair in the final render, so just by tweaking one material, all proxies receive changes. No copy/paste is needed so it saves a lot of time). Plus, the shader p Hair_TK gives good results in my opinon.
I used shadow maps for the rendering tests, then turned them into raytraced shadows for the final renders. Sometimes, when you've got more than 2 or 3 spots, rendering with raytrace can take a very (very very) long time, or even crash. So, I employ a little trick and use raytraced shadows on only one spot: the key light or the backlight. It helps you to get better render times, and mixing raytraced shadows and shadow maps can produce some interesting soft shadows effects inside the strands.
I rendered hair with the original mesh of my character here, with a matte/shadow material applied to it. Then I saved it as a TIF (Fig.34).
Rendering and Final Composition
Everything was set, so it was now time to render and compose. Here, you can see the simple scene setup (Fig.35).
The mental ray settings can be seen in Fig.36.
Here are the light tests and close-ups (Fig.37).
My render passes can be seen in Fig.38 - from top left to bottom right: render, Z-Depth pass, ID pass, Hair render. I don't use a lot of passes, as you can see. I like when my render comes out fine and needs only tiny adjustments in post.
I could have rendered a Z-Depth pass for the hair too, but it was much simpler to blur them manually in Photoshop using the Waterdrop tool.
After some more tweaking involving color adjustment and adding depth of field, here is the final image (Fig.39).
Thanks for reading, and I hope you have enjoyed this Making Of and had the opportunity to pick some useful tips.
I would like to thank all the people in the WIP sections of numerous forums around the web who helped me during this project, who gave me support and very useful advice. These kinds of communities are great, make you feel you're never alone, and that helps a lot.
If you have any questions, don't hesitate to contact me by email.