Making Of 'Close-up Portrait'
In this Making Of I will try to explain the way in which I created my "close-up portraits". I am going to mainly focus on the texturing/shading part.
I reused the geometry of an old nurbs body that I made years ago. I converted it to polygons in Maya and then deleted the faces that were not going to be visible. I took care to make sure that almost all the polys were four-sided for a better subdivision later.
Then, in ZBrush, I adjusted the proportions - it's easier to do this by using the Move and Standard brushes (Fig.01).
I created the UVs in Maya. This resolution was enough to create the UVs and making them later with more subdivisions would be more difficult.
I decided to create two different UV shells/textures to get more texture resolution, one for the just the face and then other for the rest of the head. I tried to place the seams in a hidden part (Fig.02).
Once I had finished the UVs I started creating the texture. I used photographs from the Ballistic DVD "ESSENCE: The Face" as the source for the textures of the skin. This DVD comes with hi-res photos of a woman (Fig.03).
I created the texture by switching between Bodypaint and Photoshop. I made several projections of the photos on the geometry and then merged the all together in the final texture.
Here's a little more detail (Fig.04).
In Bodypaint, I started by first assigning a white 4096px texture to the geometry. Then I chose a photo to project on the geometry and rotated the 3D view in a similar way. Now it was on to projection painting. This created a projection layer.
Then "Freeze3Dview". This created a snapshot of the current 3D view placed in the projection layer. (I chose 4096 pixel resolution, asÂ with that I didn't lose resolution when it was re-projected).
I saved this image as a PSD file. Then, in Photoshop, I modified the original photo to match the geometry in the areas. I made different layers to have more control in specific areas (Fig.05).
When ready, the final PSD had to have this layer configuration (the original) in order to be Bodypaint compatible (Fig.06).
Back in Bodypaint, I merged the texture with the new one and disable "Freeze3Dview". This baked the projection in the texture. I then saved that texture (Fig.07).
As you can see, this projection was only good for a part of the face. I repeated this process several times to cover the whole face with projections. I made five (two laterals, two quarters and one front) and some extras to add details to the lips and nose.
Once I'd done all the projections, I merged them all in a PSD, chose the best pixels for each one and matched the colors between all so I couldn't see any differences between them (Fig.08).
Detailing in ZBrush
I already had the base geometry and the texture. I subdivided in ZBrush and added details using the information of the texture (Fig.09).
I created a black and white version of the color texture and used it as intensity masking. I created a first layer of detail (Fig.10).
Then, without the masking, I added some grains and bumps. I also added bumps with a brush with spray to give a less uniform skin; the original was too much smooth and "perfect".
Once I had the final detail, I chose a level of subdivision to use in Maya for the render, deleted the lower subdivisions and calculated the normal and cavity maps for that level using Zmapper (Fig.11).
I wanted soft and lateral lighting; it is called "low key" lightning. I think this kind of lightning gives great result for portraits. It also highlights the skin texture. Here is a little sample of all the reference pictures/inspiration photos that I used (Fig.12).
Before deciding on the lighting, I created a quick skeleton to create different poses. I made some render tests with a lambert and geometry hair that would give me a rough idea. For each one I made different lighting set ups (Fig.13).
I wasn't sure which one was the best, so I chose several configurations and went ahead with those. I put each configuration in a different frame, so it was easy to change from one to another. For all the configurations, I used only one area light that changed its position (Fig.14).
I used an SSS mental ray shaders with the textures. The epidermal and subdermal textures are variations of the original one (Fig.15).
I broke down the shader and composed all the layers in Photoshop, so the weight values shown here are not important.
To break down the shader, I duplicated the original, made one for each layer and changed the values of the weights for each. For example, for the diffuse pass, the weight of diffuse is 1 and epidermal, subdermal, specular, etc is 0. I only changed the weight values; all the other values were the same for all.
I used Final Gather and I made this layer (Fig.16).
Then in Photoshop, I used this blending mode to create the final skin (Fig.17).
With this technique I had more control than using the original shader. I could quickly adjust the percentages of each skin layer, and change colors, contrast and levels for each layer.
I made a mask for the reflection pass. I only wanted that reflection on the lips and this mask was okay because I was going to create still images. If it were for animation, I would have painted the weight of the textures before rendering the passes.
The eyebrows and eyelashes are polygon cones with different sizes. All were manually placed; it was simple but tedious work here (Fig.18).
The eyes are three meshes: exterior, iris and a back cover (pupil) (Fig.19).
The "exterior" mesh uses a blinn shader with transparency in the center that allows us to see the other parts. The transparency map is a Maya circular ramp.
Here is a render without textures, only with the transparency (Fig.20).
I took photos of my own eyes to create the textures (Fig.21).
Here are the shader values that I used. As a special thing, I also used a bit of translucence (Fig.22).
For the reflections of the eyes, I mapped a HDR texture on a sphere and deleted the faces that didn't have the light source. I placed it where the light was to simulate that the light comes from a window (Fig.23 - 24).
Apart from this, I created extra geometries to create the tear line and to improve the blending between the eyeball and the face. I also adjusted the eyelid to the shape of the eye for the different poses (Fig.25).
Once I'd modeled the teeth I used photos to create the textures. For the shader, I made several tests to simulate a good translucency. Finally I used the SSS fast skin shader with this configuration (Fig.26).
The reflection is in an extra pass. I made it with a blinn shader to compose later in Photoshop.
For the hair there were two stages: the generation and the shading.
I made many tests to create the haircut that I wanted, and it was so painful. The best that I found was shave and haircut, using nurbs curves to create the hair (something like a loft, but with hairs). With this method I could control the style of the hairs.
For that, I selected two or more curves, created the hair and selected "Interpolate Guides". I created different hair systems for each style to give some variety. If you only create one, the result is very "smooth" (Fig.27).
I created two different hairstyles and also a bald version (with the hairs from the skin texture. So I then had three different hairstyles to choose for each pose. In this image you can see the different systems used for each style (Fig.28).
Once the systems were created, I ran a dynamic simulation to lay down the hairs in the final position.Â I used a version of the geometry with smoothed ears to avoid problems with the dynamic simulation.
For the shader, I used "shaders_p" hair system. I played with different shaders and this was the one that gave me best results. It can be downloaded here: http://www.puppet.tfdv.com/download/shaders_p_e.shtml
To use that shader instead of the shave and haircut one, you have to uncheck "OverrideGeomShader". Then you can apply the shader that you want to the hair system.
I made different shaders with little variation in the position of the specular and assigned these to the different hair systems. I then rendered the hairs in a different pass ready to be composited later in Photoshop.
I wanted to add fur to the face because the camera is so close to the face and I think this adds a lot of realism. I created different systems, each one with a different width, length and orientation. I used the Paint Fur Attributed tool to paint the baldness of each system.
I rendered in a separate layer, and composed in Photoshop with the blending mode set to Screen (Fig.29).
I merged all the layers that I had previously rendered. Nothing special here; I just configured all the layers and passes in Photoshop.
Finally I added a layer of noise, a bit of blur and some chromatic aberration to try and reduce the CG appearance (Fig.30).