3D Portraiture: Eyes, Hair, Shaders for Face
Roman Cyganov talked about the production of realistic portraits and shared his workflow in ZBrush & Houdini.
Hi, guys! My name is Roman Cyganov. Currently, I live and work in Moscow. I graduated from Stavropol Regional Art College, I am a painter/designer by education. I got into 3D a long time ago, about the 4th grade of school. In 2003-2004, I discovered 3ds Max and since then in my life, there were always computer graphics and traditional art tightly merged together. After finishing my education, I joined the army where I was able to develop my painting skills, draw portraits of officers, experiment with light and create works inspired by the masters of the past. I always had access to the library, and there was not a single day when I did not take a new book on art to study.
After the army, I worked in the field of Cinema and Advertising including such brands like Coca-Cola, Toyota, Sony, Samsung, Philips, and many others, plus several Russian films. Recently, I started doing collaborations with other designers such as Jessica Walsh. Currently, I am currently working on the AAA game Atomic Heart as Lead Artist.
Series of Portraits
My series of portraits was aimed at creating attractive images that can intoxicate the viewer’s eye with their energy. In addition, I set myself the task to make a full-cycle production with maximum optimization of the models with further animation of muscles, folds, and wrinkles, not through pre-prepared blendshapes, but through the muscle and bone frame with physically correct contractions and deformations. This frame can be applied to any portrait with the same topology and save time on blendshapes.
I think that for every artist, the most important thing is to create a bright and memorable image. Of course, technical skills help people to clearly see your idea, but the vision is still in the first place. Therefore, each of my work starts either with a sketch or with a selection of references for the mood I want to convey. One of the portraits is based on my wife. Below is a selection of references for anatomy, hairstyle, and hair colors.
After the references are selected, I move to ZBrush. Any work begins with the order in the workplace: first of all, I change the interface of the program so that the necessary tools can be reached very quickly. This trick saves a lot of time and can make the process even more fun (below is an example of my settings). For me, the ability to mask separate areas and use the tool MoveTopological is essential as it helps to find and create those parts of the image that can attract the viewer’s eye. As my art teacher used to say: “Everything is built upon little things.” Great advice! It is attention to detail and their careful treatment that breathes life into your work.
Also, note that at this step, the toolkit itself is not that important. What matters is the understanding of shape and continuous study of anatomy. Of course, if you don’t know the program you work in, the production can be a drag, but the outcome will be worse if you don’t have a vision and artistic skills.
When working on a human, the most important task is to think through his/her character and charisma. This technique was used by Leonardo Da Vinci, Michelangelo, one of my favorite artists of our time Cesar Santos, and many other artists, poets, writers, and directors. When you invest in the character’s originality, he/she immediately acquires an inner appeal and value for the viewer. And, since the eyes are the mirror of the soul and we first pay attention to the face, the center of the composition should be the eyes. Therefore, they should be given special attention to. Usually, eyes involve a series of experiments during sculpting: you choose the right eye shape, the proportion of the iris to the eye and other subtle details one by one building the overall character. Remember, that art should evoke emotions and a professional artist should be able to evoke exactly what he needs. This allows you to communicate with people through your art, and it’s a great means of communication.
Working in Houdini
I really like Maya and I worked in it for a long time. However, I was always confused by the fact that you can always spoil your scene without the possibility to roll back. Houdini, on the contrary, lets me go a few steps back at any time. Houdini projects take up little space on the hard drive which contributes to quick AutoSave and they are stable. The program also allows me to do amazing experiments with my works such as add some effects, decompose into pixels or turn a part of the face into the sand. Houdini is a surprisingly flexible and rapidly evolving tool. It amazes me to see how many updates are regularly added to it by SideFX compared to other programs (although Blender and UE4 are developing very quickly, too, and I love them!). Therefore, learning Houdini seems a worthy investment in the future for me as it is the most progressive tool at the moment.
When working with the skin, I draw a weight map for different areas of the skin which allows me to simulate wrinkles on the go when different areas of the skin collide. The new system of working with fabric perfectly helps with it. Previously, Houdini supported simulation only with CPU but now SideFX added the Vellum tool and expanded it. For Maya, there is an amazing plugin called Ziva.
Eyes & Face
At the moment I use two methods to create the iris:
- radial sculpting in ZBrush with the creation of all the necessary details (this is quite an old but working method)
- procedural approach with the creation of a structure through attribute VOP in Houdini on a high poly model with further baking of parts that can be squeezed out by displacement card. This method is used when the eye implies a stepped structure with elongated fibers.
You can see that some of the fibers on the upper tier are torn from the lower surface (highlighted in red). A layer like this is superimposed on the displacement zone in the form of some filamentous substance to preserve volume.
The whole watery base is also made in a procedural way. The Loop Edge is allocated, and the water tube is created on the basis of it. This allows you not to worry about this part in the future if you decide to somehow change the look or animate your model as this detail will always be based on a specific Loop Edge. Through Attribute VOP it is possible to adjust small noise and deformation of this watery layer which makes the job surprisingly convenient.
Eyelashes or eyebrows are based either on the scalp geometry or by masking a specific zone (on the basis of this mask a hair cover is created). To save time, I always do only one side of the guides. After the work is finished, I only need to put the mirror node and choose Reverse norms-No, and the guides are ready for both sides. In order to add variety and get rid of the mirror effect on the final eyelashes, masks (Attribute) are drawn for the thickness, direction, and density of the hair on one eye.
Also, I want to note that the hair on the face should be moved a little deeper into the skin so that on the close-ups it penetrates the skin. By default, the SSS effect does not see these intersections, so I pass the attribute from the lashes back to the geometry to create a mask at the places where these geometries intersect. This mask is then routed to the transparency channel during the shading phase. And only these zones will have transmission. It is also worth paying attention to the index of refraction for the eye material.
The cornea is the Coat layer with values (n = 1.376) and the Crystalline lens layer for Specular is (n = 1.386).
These are very important details that allow you to make your work more realistic. Do not forget to include caustics! Check this link to learn more about it.
Usually, I use maps from TexturesXYZ in my works. These maps are divided into three channels (R, G, B) and usually, I do not use the R channel. Instead, I insert my details prepared in ZBrush. Despite the fact that the textures from TexturesXYZ are beautiful, they require manual revision and if you do not want all your characters to look the same, I advise you to always make the additional variety of details in ZBrush. As for the irregularities of the skin, I try to lay them initially on my sculpting to further bake in the Displacement map. In Photoshop, I fill in the colors for moles, pimples, and scars.
I don’t actually use Mari to create the makeup as I paint it directly in Houdini. Impose node subdivision and start to draw vertex paint – this allows you not to switch from one software to another. After I drew the makeup, I baked it through GameDev Maps Baker in Houdini. This way, I can always change or modify the makeup, then press the Bake button and the changes get into my shader for the skin.
In this project, I used Arnold Render with its Standard Surface material. As a type of SSS, I use a Randomwalk even though there is Randomwalk_v2 (mainly due to the fact that the new one is slower and in the case of portraits, the quality is almost the same). Below are the settings of the shader I was working on.
Also, it’s very important to work with the color and light scheme. I try to prepare several light setups and constantly experiment with them. I notice that many artists reference painters of the past here. My path is a little different: I try to find modern solutions with color gradations that can be interpreted as contemporary art like this work, for example:
The masters of those times did not have the tools that we have now, and I am sure that Rembrandt and Karl Brullov would have enjoyed all the possibilities of modern light if they had lived in our time. In the picture below, you can see how many color schemes I tried in this work.
Also, you can see my shader settings:
Thank you and good luck with your projects!
Roman Cyganov, 3D Artist, Interview conducted by Kirill Tokarev.