Realistic hair with Maya and ZBrush
Take a look behind the scenes of 3D artist Ryan Reid's striking Mondus...
My name is Ryan Reid and I am currently a senior student in college studying 3D graphics and design. I started drawing at the age of to, my father introduced me to 3D software at the early age of seven, and I have been studying and practicing my craft throughout my education ever since. I will be showing some of my processes for the creation of Mondus.
Before I dived into modeling Mondus, I wanted to find something that the CG community hadn't tapped into. I did some brainstorming and concepting in ZBrush first and then chose to create an African male with achromasia (also known as albinism). I did some research on how it is caused and it is basically an inherited disorder characterized by little or no melanin production. I came across a public figure whose name is Deejay Jewell, whose features were unique, so I gathered references on him as well as other African albino figures before beginning to sculpt.
Step 01: Sculpting
In ZBrush I started out sculpting the head from a sphere and went through many changes until I got a good base. Once I was happy with my base mesh, I moved to secondary forms, which were subtle wrinkles and asymmetry. After my secondary forms were completed, I started my tertiary detailing. For this step I used scan data alphas from Surface Mimic. I also did a lot of manual work using the Dam Standard brush for tight wrinkles and lip detail. For my main sculpting brush, I used the Clay Build Up brush.
Step 02: Texture maps
I created my diffuse texture map in MARI by projecting photo images onto my head model. My normal map was from ZBrush since all the tertiary detail was created there. Once I created my normal map, I generated an ambient occlusion map and a cavity map from my normal map with an action script I used in Photoshop. Once I created the ambient and cavity map, I combined them together in Photoshop to create my specular map. I then painted darker areas and lighter areas, which then became my roughness map.
Step 03: Skin shader
For my rendering engine, I used V-Ray. After I created my V-Ray shader connections with different material blends, I then created a light rig to show how the skin shader reacted. Before you light your scene, I would suggest creating a simple light rig to show how the skin shader is reacting under different light intensities. Your skin shader should be able to look pretty good in any type of lighting situation. Using different HDR images is also good for testing your skin shader. For example, I used one V-Ray rectangle light that did a 360 around my model.
Step 04: Hair modeling
For the next step I decided to take on a unique design for braided hair. I started out by creating a three-part braid in Maya, and then converted the geometry to an IMM brush, which was done in ZBrush. Once I created the brush, I drew on my model where I wanted the braids to be placed. Once placed, I then Polygrouped the hair geometry and created fanning to the root of each sub-braid. This way, when I generate the hair in Maya, each root will look different and feel well-rooted.
Step 05: Extract curves
For this step my hair geometry is now in Maya. I extracted NURBS curves from each sub-braid and there you have it: a perfect set of braided hair guides. I applied Maya's nHair system and used a V-Ray hair material as the override shading for the hair system. I distributed a couple of nHair systems to random sub-braids, which were named and grouped in the outliner, which allowed me to select any sub-braid curve group and apply accordingly for extreme breakup.
Step 06: Root hairs
After I converted the braids to NURBS curves, I had to create individual root hairs in-between the braids in order to convey how tightly they were braided. For this step I used XGen, which is a hair-generating system that was introduced in Maya 2015. In Maya 2016, there is a new function called "Add or Move Guides", which I used to add each root hair individually. One of XGen's special functions is its interpolation of figuring out the directionality of the hairs. I can simply place each hair curve without rotating them in the right direction. Using XGen saved me lots of time for this step. I made sure each root guide curve penetrated the braid curves, so when I added a nHair system to the root hairs later, the render would give off a fake blending between the root hairs and the braided curves.
Step 07: Hair result
After I successfully created the braids and roots, I then had to create loose curly hair for his hairline and shaved beard. I used Fibermesh in ZBrush to spawn the hairline and shaved beard. It's a very straightforward process; I simply masked off where I wanted the hair to spawn and tweaked the parameters in the Fibermesh UI to give the hair a wispy curl. Once I completed the hair with Fibermesh, there's a pull-down menu that allows you to export the Fibermesh as curves. I then created another nHair system to spawn nHair in place of the curves from ZBrush. Due to the density of African hair, the overall nHair count was pretty harsh, but it gave me a stunning result. With the hair sorted I was finished and very happy with the final result.