The Creative Process
Why is Autodesk 3ds Max® one of the greatest programs on the market? Because the tools blend so well that artists and other professionals can work with it efficiently, minimizing time and effort.
In this article we will enter a realm of technical skills, tools, pitfalls, and problems I had to face to create The Guna Yala Indian image.
The Guna Yalas are native Indians of Panama and cultural icons that shape Panama’s identity. Living on islands such as San Blas among other regions and reserves, the Guna Yala people are the most pictorial and colorful of them all.
First of all, I want to thank photographers Javier Conte (his website is www.contefotografia.com) and Rita Willaert (you can find her on Flickr http://www.flickr.com/photos/rietje/) for their personal time and effort in helping to make this project possible.
In the beginning of the project I called Javier Conte and told him about the idea of generating a 3d still image based on the topic mentioned above; he was interested so we coordinated photo sessions.
At first, we spent some time searching for someone to model. I remember looking for at least a month, but in the last week Javier remembered a friend that lived near him who agreed to help, so we started the photo shoot.
We began the sessions taking photos of the woman’s front view, side, back, close ups of hands, dresses, skirts, and handkerchiefs. Using two point light rigs with umbrellas and flashlights, we set up the scene so there was even illumination preventing projected shadows onto our 3d model. This was also to help create customized textures used for the 3d model.
Figure 1: The Guna Yala Indian 3d Model by Ruben Darío Karamañites Arango
The model was posed like Da Vinci’s “The Vitruvian Man,” a neutral posture with the hands extended away from the body on both sides. This is currently the best known pose for rigging methodology.
Modeling Phase 1: Head and Dress
After we finished the photo session, I selected the photos that would most help me digitally sculpt the woman correctly.
I also researched anatomy references and size and comparisons of heights in women. These helped me to develop a more accurate 3d model (using meters as my measure units).
Understanding anatomy and research is extremely important when you start modeling parts of the body, especially in humans and animals, because the loops should flow following the muscle lines, which also help determine the correct form of facial expression and provide better control on the head rigging helpers.
In this case I modeled the face with the expression she had in the photograph. After I modeled the head I sent the .obj file to Zbrush for further sculpting.
To export obj files to Zbrush you can use the plug-in GoZ in Zbrush, but if you are not familiar with its functions try this: Go to the Max icon, click on export, then select OBJ format and in the preset you can choose Zbrush and keep everything default. You can uncheck Export Materials and Create Mat-library inside the Material tab, then click export.
As for the dress shirt and skirt, I created a base model in 3ds Max, and then I exported them to Zbrush to paint general wrinkles and base deformations. When I finished with the base model in Zbrush, I exported once again, but in this case to model a new topology inside TopoGun.
With TopoGun, I drew polygons following the contours of the wrinkles, defining the loops better to get the consistency I needed for details at a higher scale. These were applied to sleeves and the upper part of the skirt where the wrinkles were more pronounced and where applying a normal or bump map would fail at creating the proper illumination.
Modeling Phase 2: The Handkerchief
The handkerchief on her head was really easy to do. I created a single plane, converted it into an editable poly, and triangulated it using the Tessellate modifier. Inside the Tessellate properties I chose triangle and on the tensions I dropped it to 0.0 and put 4 in the iterations tab to increase resolution.
After that I assigned collisions to the head and dress as rigid body instances and the handkerchief as a cloth with gravity applied to it. Finally, I created an animated simulation with correct dynamics and physics to simulate the cloth.
Figure 2: The handkerchief
The animated simulation started with the cloth suspended in air with gravity applied to it; the head and dress had no gravity applied to them. I ran the simulation, which caused the cloth to lay on the head and dress and eventually fall to infinity. I deleted all the keys from the simulation I was not going to use and kept the one with the handkerchief in the proper shape.
Modeling Phase 3: Arm Pearls
One of the most difficult tasks in creating this image was to push the limits in modeling techniques and managing incredible amounts of object instances. Building up the bracelets was a long and tedious task.
The first issue I encountered was to determine how these bracelets are truly built. The process is quite difficult—it consists of inserting a wool thread through the pearl’s hole and then at the end tie it up with a knot all the way from the wrist to the elbow, almost completely covering the forearm.
At the beginning I copied the arm and then subdivided it so that the transversal loops will be as close as possible while trying to keep the distance of two pearls. I selected ring, then selected the loop inside the editable poly properties so the parallel edges will be converted into splines using the Create Shape from Selection.
The pearls were constructed as patches using splines and a Lathe modifier to make the holes in the center. I use these patches to make copies of these instances and work them around the splines using the Align menu Spacing tool.
The incident triggered viewport performance problems and an almost inoperable machine with a 1.3 GB NVidia GeForce video card and a scene containing close to 800,000 polygons. This obligated me to find an alternative to handling the large amount of repeated patch instances 3ds Max failed to handle.
Figure 3: The arm pearls
The performance problem appeared to be caused by the patches, which generally have less of a polygon count than other options, but seem to require more processing power.
The solution was to make polygons and use the Turbosmooth modifier for a higher resolution. Using editable polys the scene’s polygon count rose 3,000,000 more or less, at least three times more than when using patches, but my machine processed better and moved evenly in the viewport. I also attached all the instances together to make a single object and displayed it as a bounding box using Object properties so I could keep working on the other arm.
Texturing Phase 1: Zbrush UV Master
After the modeling stage and everything was set up, I began unwrapping (an important step for texturing). The tools in 3ds Max for unwrapping purposes are really good and easy to use, at least for selecting things and efficiently breaking UV groups and polygons. It has a great relaxing tool using the faces method and with 1,000 iterations, so UVs can spread strongly.
In this case, I didn’t use the unwrap modifier inside 3ds Max. Instead I used Zbrush’s UV Master plug-in that comes with Zbrush version 4R2. This plug-in allowed me to unwrap everything after sculpting, which saved me some time.
A great advantage of using the UV Master plug-in was that I just had to paint the areas or the loops I wanted to efficiently unwrap. I also had the ability to automatically relax things evenly without using checkered images to analyze polygon stretches. Finally, it eliminated the need to use sub-elements such as vertex, edges, and polygons to move things around. This helped to avoid errors.
After unwrapping, I used MARI 2.1 to paint. I consider MARI one of the greatest painting programs I have ever used, and extraordinarily useful tools come with the new version.
Some examples of these tools are its new layer system, where before it used channels to paint. Also available are filters such as multiply, overlay, and screen, and an option to use color correction modifiers on each layer.
Texturing Phase II: MARI and Max Shaders
Regarding the process of painting images on the 3d models in MARI, one of the first steps I did to the picture, for example, the front view of the face, was to remove all highlights and shadows and make the picture as balanced as possible, helping to minimize glossy skin due to natural skin oil and light exposure, which cut out skin detail in those areas.
Using displacement maps, normal maps, and bump maps a great amount of detail could be added. I altered the expressions using other photos as reference, and applied proper color corrections, finally painting the image projections inside MARI.
I’ll talk next about displacement maps and bump maps. For the biggest details—bone structures and big wrinkles, for example— displacements are the best option. The problem with them is that you need a great number of polygons for the map.
Here I used the 3ds Max Displace Modifier. This was a good option because I could see the effect of the displacement maps on viewport and could assign how much strength, decay, and luminance center I wanted for better results.
The Displace Modifier is easy to use, but I usually follow specific steps to use it. I usually load the .tif file of the displacement maps—the shirt, for instance—and drop it into the Material Editor socket as an image and then drag and insert it inside Map. The other important step is that I check “Using Existing Mapping” so it recognizes the unwrapping I do in Zbrush or Max. Finally, I check the Luminance center to help keep the majority of the initial shape and move strength to enhance features.
For bump mapping I usually use a composite material so I can add it in the bump channel inside the SSS Shader. This helps me to have control in the opacity values and strengths.
Texturing Phase 3: SSS Shader
In this section we will see some of the techniques I use for getting a proper setting inside the SSS Shader. I usually use the SSS’s (Subsurface Scattering Shader) Fast Skin, because it has lots of properties and also is the most accurate.
These properties are used to simulate skin layers and, with some effort, get results much closer to reality.
Figure 4: Texturing
There are various channels I use inside the SSS Shader. One is the bump shader and, as I stated before, it is used to create wrinkles by using composite materials.
Another channel that is really important is the Overall Diffuse Coloration; here I import the original color image that I took from MARI. The effect for obtaining real skin is enhanced by a series of channels. These are the Epidermal Top Layer, which is a channel that basically is related to dead skin. As we humans are constantly shedding skin, this image is used to simulate it. Basically it’s the original skin image with a very low saturation (almost a black and white image with a bit of red and yellow values).
The other channel I use was the Subdermal Scatter Color which is basically the skin layer beneath our outside skin. These simulate the lower veins, capillaries, internal injuries, and bruises. The image I use is the original skin image with strongly enhanced red values and a little bit of yellow as well.
By default, the SSS skin shader has also specular channels that control the shininess of the skin, but the values are too high for realistic skin and if you render it “as is,” the skin will look like plastic.
The image I use inside the Specular Weight#1 was a retouched image of the displacement maps with high contrast, but with grays and white information in the areas were glossiness (exposure) was strong—for example, the tip of the nose, in the top eyelids, the tip of the ears and lips.
Another great trick was changing the Reflection Weight values to minimum and importing an HDR image inside the Local Environment channel to create a Fresnel reflection effect that helped for realism.
This phase was really not too difficult, but as always it had its own issues. One of the things I found most difficult was the natural position. It was relative to gravity, state of mind of the person who I used as reference, and the person’s expression.
Rigging the body was not demanding because I modeled it in a standing pose. The fingers took the most time.
A great trick is to model the hand with slight bending of the fingers so the rigging can be manageable from straight positions to full fist positions. Flexing the fingers was delicate work because I had to learn where the knuckles bent and how the wrinkles reacted beneath them for proper effect.
With the Skin Modifier properties, painting weights has to be accompanied with good modeling. For example, in areas where the knuckles bend I created several loops so when the Biped Bone bent the form would be maintained while creating the effect of the skin wrap around the internal bone and ligament of the fingers.
It was a great experience managing all the steps to create this image. I found pitfalls that helped me learn, such as the multiplied copies instances with patches, eliminating skin glossiness and shadow information in photo references, among other discoveries that appeared on a lower level.
As I say to my 3d animation students, the learning process is difficult because of the amount of information available. It is important to push yourself to the limit by assigning yourself projects with strong challenges. I believe this is the best way to learn. With hours and hours of hard/intensive work and dedication, in time it will come to you.
Ruben Dario Karamañites Arango was born in a small town called Parque Lefevre in a small country, Panama. He has studied and worked Argentina as a 3d artist and worked in India as a Texturing Supervisor for Skyworks Studios. He is currently the artist making 3d renderings for the Third Set of Locks inside the Panama Canal Authority.