Professional Services
Order outsourcing

Grandma: Creating an Ultra-Realistic Portrait in Maya, XGen & ZBrush

Principal Character Artist at Guerrilla Games Arno Schmitz explained how he managed to create a realistic portrait of his grandma in 3D, shared the workflow, and showed some techniques for making realistic-looking faces.


My name is Arno Schmitz. I’m the Principal Character Artist at Guerrilla Games, where I’ve been working for almost ten years. In that time, I’ve contributed to Killzone Shadow Fall and Horizon Zero Dawn, including its DLC the Frozen Wilds. Currently, we are hard at work on Horizon Forbidden West.

My 3D education started at the Breda University of Applied Sciences (formerly known as NHTV), where I studied Game Architecture and Design. After graduation, I went to study abroad at the Florence Academy of Art, where I attended the 1-year intensive Drawing Program.

The Grandma Project

The grandma project started very naturally, as a follow-up to the two portraits I’ve done for both Father’s and Mother’s day. The goal was to create something in a similar style but pushing some aspects to challenge myself. With every single portrait, I’ve been trying to improve a certain aspect. In this case, I focused mainly on a more complete image, so I added more props, like her glasses, vest, among others. With every portrait, I’m also tackling a more difficult hairstyle. This can be seen in the progression from my dad to my mom, and now my grandma.

Regarding the references for this piece, I shot different sets of pictures of my grandma. Some for photogrammetry, others for general reference and closeups. This was all done in one session. On a later occasion, I took a picture when she visited for my birthday. This particular picture turned into the main reference for the expression, posture, and costume

Face and Hair

For the face, I started with some rough photogrammetry data. I shot handheld with my DSLR and processed the pictures with 3DF Zephyr. This rough photogrammetry data is not very useful for the final product but gives you a good indication of the big shapes. It’s also perfect for people suffering from “blank canvas syndrome” because your brain goes straight into fixing the problems you see. 

Below you can see the progress done in ZBrush.

As for the hair, I usually create a DynaMesh blob that represents that volume of the hair. Later this gets replaced by the XGen Groom. But this step helps me to understand the volume of the hair. Usually, I trace my guide curves on top of this volume as a starting point for the final XGen guides.

For tracking likeness, I use a photo from the same angle as the final pose. I also keep track of previous iterations in one giant layered photoshop file. At the end of every evening, I make a render. This way, I can track if the changes I made that session are positively or negatively impacting the likeness. Below you can see a selection of these renders. Before I start working, I usually flip between the few latest iterations. This helps to make a plan of attack for the upcoming work session.

The setup for the eyes consists out of two pieces of geometry. The outer layer represents the sclera and cornea. The cornea region has a bulge and a mask with a soft border for the transmissive area which reveals the inner piece of geometry. This is a concave piece with a texture of the iris.

My models also have tear-line geometry (marked in green in the image below). This uses an AI Standard Surface with water preset as material.

Retopology and Unwrapping

I have a base topology that I use for all my heads with premade UVs. The first step of each portrait is wrapping that to my photogrammetry output. For this, I use a program called Wrap 3. 

I don’t change the topology for the face further down the pipeline since I rely on the UVs and SubDivision levels to get clean Displacement Maps for the final render.


Most shader inputs on the props are simply flat colour values, even the albedo. The earring, for example, uses an AI Standard Surface with the gold preset, and another with the Diamond preset. Usually, I tweak these settings slightly to get the look specific to the project. Only the clothing uses tiling Displacement Maps to give the impression of a lot of detail. The XGen fuzz on the clothing also helps a lot in this regard. 

For the skin texture, Mudbox is my weapon of choice. I love how simple and fast it is. The start of the face texture usually are photographs with all the lighting painted out. After that, I spend some effort to get the discoloration right. I like to go quite extreme with the discoloration, so it shows up through the SSS (Sub Surface Scattering) in the final result since the SSS can wash out some color variation and also some of the sharper details. 

Below are the settings for my Skin Shader. I’m using an AI Standard Surface. The starting point for most of my materials is the presets provided by Arnold. I then start adjusting the values from there. I kept it very simple in this case. Instead of using a Roughness Map, I used a flat value and relied on the variation in the sculpt to get the variation in the specular response.

Lighting and Rendering

For rendering, I use Arnold with such light sources as one basic IBL that I’ve been using for a decade now, plus a few big area lights. At first, I went for a very classic 3-point lighting. But later I decided to replicate the lighting from my reference as close as possible

With every new head, I find I’m doing slightly fewer adjustments in post-production. Usually, I do the depth of field in post. This gives me more control over what areas stay sharp than doing it directly in the renderer. I also always do some curves to make the colors more dramatic.

For this specific series of portraits, I also use big soft brushes with the color of the background to add a sort of mist. This helps to blend the non-important elements with the background, so the viewer stays focused on the areas I want to give attention to.

Below you can see an example of how those big brush strokes and depth of field help to blend the image together better.

In the end, I also always add some noise that acts as film grain. This helps to make the image look more photographic and can help if you accidentally introduce banding with your curve adjustments or big brush strokes.


A rough guess is that this project took 3 months of spare time. Mainly evenings and weekends. In this case, the motivation was very easy. My mom and dad were quite touched by their portraits, which I gave them printed and framed for Father’s and Mother’s Day. So, this time I wanted to do the same for my grandma.

The main challenges are the energy levels. Usually, after a solid workday, it can be tiring to sit back again in front of the computer, and it’s pretty tempting to sit on the couch and watch some TV or play video games instead.

My main advice to beginning Character Artists is that you need a lot of hours of focused practice. Try to work on manageable projects, that are appropriately challenging, or even slightly above your skill level, and try to push a specific aspect of your skills with every new project you tackle. Just as with working out, if you don't push yourself, your artistic muscles won't grow.

Arno Schmitz, Principal Character Artist at Guerrilla Games

Interview conducted by Theodore Nikitin

Join discussion

Comments 2

  • Anonymous user

    Wonderful work, I am writing my dissertation on face modelling and the influence of what metahuman can have. If anyone has any journals relating to this subject, can you please let me know. I am struggling to find literature


    Anonymous user

    ·2 years ago·
  • Anonymous user



    Anonymous user

    ·5 months ago·

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