Professional Services
Order outsourcing

Creating Extremely Realistic Portraits with Maya, ZBrush & XGen

Hadi Karimi shared the workflow behind the model of his friend Clara, showed how the hair was done using XGen, and explained why historical figures are challenging to recreate.


I'm Hadi Karimi and I’m a freelance CG artist from Iran. I’ve been a digital artist for about 15 years. My journey started with learning Photoshop and using a very cheap digital pen to teach myself digital painting. Before that, I used to draw portraits, but it was more like a hobby. It was after learning digital art that I started to take it more seriously and learn different software until one day I stumbled upon Cinema 4D which was the first 3D software I learned.

In the beginning, I was just making abstract art and simple compositions, but after a few years, I added ZBrush and Maya to my arsenal and was able to utilize the years of experience that I had gained from my journey as a painter.

The projects I have worked on so far are mostly likenesses of celebrities and some historical figures.

I think my most challenging works so far have been a series of portraits during which I reconstructed some historical figures’ faces. It’s easy to find references when working on a modern celebrity portrait, but for historical subjects, it’s an entirely different process. Especially for those who lived before the invention of the camera, the only references available are paintings, face masks, and sometimes only descriptions of their appearances.

The ones I’m most proud of are my portraits of Chopin and Beethoven.

The Eminem model was one of the first 3D likenesses I modeled, but I recently did a rework. I think he has a very unique facial bone structure.

The Christian Bale model was also a very interesting and tricky subject. The thing about actors is that they all have expressive faces, it takes a lot of practice and experience to fully capture the countenance.


I was kind of bored of working on the faces of famous people and wanted to try something new. It’s not as easy as you might think to ask people around you to be your model, understandably, not everybody is a fan and/or has the stomach for a digital version of their face to be presented to thousands of strangers on the internet. But Clara is also a 3D artist herself and we had worked on a couple of projects together. Luckily, she was intrigued to be a model and seems to be happy with the result too.

A photoshoot of the subject from different angles would have been really helpful, but since we live in different countries, that wasn’t feasible. So instead, I tried my best to study an archive of her photos that were already available in order to capture the likeness.


I usually start my likenesses on a base mesh so I have a clean and ready model from the get-go. My main tool for sculpting has always been ZBrush, where I import the base mesh and keep tweaking it to match the proportions of my reference photos. The texturing process also happens all inside ZBrush. I used PolyPaint to paint the albedo map and used Geometry HD to sculpt the displacement map and transfer all the skin details from the high poly mesh to the low poly model for the final render.

The hair was groomed using XGen inside Maya. XGen is such a versatile hair system that makes any hairstyle not only possible but also enjoyable to model and groom. For this project, I had five different XGen descriptions. One for the long hair which was the most time-consuming part of the hair grooming process. I also have a separate description for the sideburns and the transition hair around the hairline. 

There is a description for the eyebrows which was also very tricky to do! It could spoil the whole likeness if not done right. The lower and upper eyelashes also each have their own separate descriptions, the difference here is that I added and groomed all the strands one by one since it’s not easy to get the nuances of an individual’s lashes simply by randomly generating hair across the surface. This method clearly takes more time but I think it’s worth it in the end. 


I have a collection of base meshes for different outfits that I usually model my characters’ clothes on top of. The biggest challenge for the clothes was getting the folds and wrinkles to look natural. Modeling the details for clothes is very different compared to the face and human skin. Each fabric and material have its own physical properties that are essential to know in order to have a better understanding of how they react and take form under stress.


I actually always sculpt my characters in their natural poses, then add a basic rig inside Maya to be able to pose them for the final composition. I just think it makes it unnecessarily complicated to sculpt a character in a pose, especially when you’re working on someone’s likeness and have to constantly compare the model to reference photos from different angles.

After posing the character using the rig, I added a few blend shapes to fix and readjust some areas around the eyes and neck.


Most of the time I only use the aiStandardSurface for Arnold since it’s always so easy to set up. For the face, I used five different maps: albedo, specular, roughness, coat, and displacement.

For the eyes, there are two separate objects, one for the iris and one for the cornea and sclera. And they each have an albedo and a displacement map.

For the sweater, I used a tileable knit texture to cover the whole surface and on top of that had another displacement map to add the fine details and wrinkles that I had sculpted in ZBrush.


The images below show my lighting setup. It’s a combination of three area lights in quad mode. Here you can see the intensity and temperature for each light that mix of all three results in the final render.

I think each step is equally important if you want to achieve a true photorealistic render. For example, you can’t hide a mediocre sculpt behind high-quality textures or fix a poorly done hair with good lighting, vice versa a bad lighting setup can make the render look boring even if the model is well done.

For the post-processing, I just added a LUT in Photoshop to make the colors more vivid.

I believe the whole process took about two months. Four weeks to finish the likeness, one week to finish all the textures, and a couple of weeks for the hair grooming. There are always technical challenges along the way but the predominant obstacles that you have to overcome are psychological. When you spent so much time on a piece, you can’t help but feel burned out and overwhelmed at some point and that’s where self-doubt kicks in and you keep asking yourself is this even going to work out in the end or am I wasting my time. And the only way to quell this sort of feeling is to keep working methodically until you have something that you can be proud of.

Another big challenge is that when someone trusts me to make a good portrait of them, I just don’t want to disappoint and sometimes that can also be anxiety-inducing.

But honestly, with all these hurdles, I think I’ve learned how to manage my emotions and simply enjoy the ride.

Advice for Artists

I have some tutorials beginner artists can use on my YouTube channel. But I think right now everything is so different than when I started. There’s so much distraction going on. Like NFTs, AI, etc., that can be great if you know how to properly utilize and take advantage of but at the same time could be detrimental in the long run.

“Why would I spend years mastering my craft when people are making easy money selling a bunch of lazy uninspiring art? Should I even become an artist when everything is going to be AI-generated in a few years?” are the sort of questions that the younger generation might be asking right now.

And honestly, nobody has a clear answer and knows what the industry would be like in ten or even five years. But at the end of the day, you have to ask yourself if your fears are bigger than your dreams. If the answer is no then you’ll find a way to shine.

Hadi Karimi, CG Artist

Interview conducted by Gloria Levine

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more