Concept art by Serge Birault. Final artwork by Wei Wong.

Tutorials | Making of The Princess

Making of The Princess

Download Project - 3GB

Created and written by Wei Wong. Edited by Leif Pedersen.

...the render stares back at you

As an artist, I often ask myself, why do I make art? The reasons for recreating something which wholly exists or to materialize that which is conjured through untethered imaginations differ for many people and even range from piece to piece. In my pursuit to revisit that question, I started this project primarily to challenge myself technically, both in my grasp of the myriad of 3D softwares and in the principles of aesthetics. Trailing closely behind that reason was my desire to explore what evokes emotional connection in an image.

When I first saw master artist Serge Birault’s “The Princess,” I was immediately drawn to her gaze. Her stare seemed to be suspended between a state of intense awareness and drowsy stupor, her demeanor strung in the center of tranquility and tenseness. I couldn’t really figure her out and it is the enigma that made me want to recreate the piece in hopes of finding out why I am captivated by her.

Concept art vs final CGI artwork.

My final image is a culmination of my journey to find those answers for myself. I recognize that it is still far from perfect and perhaps not quite what the original artist intended, but I hope that as I share some of my learning, that you’ll be able to gain tools to find answers for yourself.


I broke down the modeling to two parts; sculpting the head and making the clothing and accessories.

For the head, I started off with a base mesh and removed the body, leaving just the parts that I needed. While keeping the subdivision at its lowest in zbrush, I used the move, clay build up, and move topology brush to quickly achieve larger shapes of the head. Since I only had one concept image to go off on, I used other reference images to get a better understanding on the unique features of a female Asian head. It is also important to have correct supporting geometry for the epicanthal fold of the eyelid. Once I was happy with that, I proceeded to increase the subdivisions and sculpt-in the secondary forms. Sculpting was an iterative process that carried on throughout the span of the project that required me to observe and respond to the look of the model in different stages.

For the tertiary details, I used Texturing XYZ’s high definition multichannel maps and projected them onto the head in Mari. This was my first time using these maps and even though the process felt intimidating at first, it turned out to be more straightforward than I had initially thought. I then passed the projected image through a shuffle which allowed me to get a texture map for the individual red, green, and blue channels.

Foundry's Mari excels at high resolution texture painting 

Back in Zbrush, I prepare the mesh for the application of these maps by saving the subdivided mesh as a morph target first. Then using the layer function, I added each of the exported channels from Mari and applied it as a displacement map, being careful to label each layer. This allowed me to adjust the strength of each of the types of displacements that I got from the multichannel texture map.

The applied projections left a few artifacts and unexpected results in the displacement, which can be removed by using the morph brush to carefully brush those areas back into their original state. This left spots in the head sculpt where there are no tertiary details, so to remedy that, I used Texturing XYZ’s face displacement alphas and drag rect mode for brush strokes to patch up morphed out areas. With that, I proceeded to export the displacements of the head from zbrush.

Zbrush makes sculpting displacements a breeze

For the clothing and accessories, I followed this formula:

1. Blocking out in Maya. Quads work best in Zbrush.
2. Subdividing and sculpting in Zbrush
3. Retopologizing to add supporting geometry for the added forms in Maya, creating UVs.
4. If needed, I’ll import the new mesh, project the details onto the new mesh, and add additional details.
5. Export displacements.

Texturing and UVs

Texturing is a challenging area, but it is also where I begin to feel the model coming to life. I always start by creating the diffuse map first before deriving other maps, like specular and subsurface, from it. In my attempt to make the head as true to life as possible, I projected the diffuse map provided in the texturing XYZ multichannel maps as a base in Mari and then layered on the blush and colors that I observed in the concept as well as in reference images. I also utilized the displacement map that I got from my head sculpt to very slightly accentuate some of the pores and wrinkles, mainly in the lips. I found that I can mostly rely on my displacements to obtain the look of those details in the render, otherwise they can very quickly make the skin look a little dirty.

In comparison to the head, the costume was quite a bit larger, so in order to maintain a similar definition quality, I unfolded it into 3 UDIM tiles. I also knew I was going to need the fabric tiling to follow seams of the costume correctly, so I was mindful in selecting areas to cut the UVs and straightening certain borders. This is where the checker map in the UV editor is helpful in vetting how well repeating textures are going to align on the model. The time taken to make good UVs can pay off immensely in making the texturing of an object more convenient and the eventual product more believable.

The straighten UVs/Shell and Get/Set functions are some of the tools I use when making UVs for clothing.

The clothing and accessories were textured in substance painter since I felt that I would be able to get great results without the more robust projection features in Mari. I love to use the variety of grunges and masks to quickly generate interest in the textures. The substance asset library also has a huge collection of materials that you can use to kick you off on an accelerated start, but never be satisfied without layering on customized elements that will help sell the object as a real world entity. I try to ask myself, if my character were to don this costume, how would her activities wear out areas in the costume? Where would those areas be?


Eye Material

The eyeball consists of two sections: the outer sclera and the iris. The main sclera material is built in the top half of the image. Using Lama Layer, I am able to procedurally append material qualities; subsurface and dielectric properties to my eye textures. The advantage of using the Lama system is the ability to have greater control over each of the added characteristics of the material. 

MaterialX Lama is a production proven layered material system created at Industrial Light & Magic

The center of the sclera needs to be a translucent material represented by the single dielectric node which is then blended into the main material using a LamaMix and a PxrRamp. This allows the iris underneath to be revealed even though it is fully enveloped by the sclera mesh.

Simple geometry, complex shading!

Skin Material

For the skin shader, I used the PxrSurface with the Non exponential path traced model as recommended in the Louise tutorial. The subsurface quality is an important defining characteristic of skin, so I spent quite a bit of time on adjusting the subsurface color and mean free path color to get the results I wanted. The subsurface color was driven by an adjusted diffuse map as RenderMan's inverse albedo algorithm makes this straightforward. There was no need to make multiple maps for different skin layers. 

Subsurface scattering is crucial for realistic skin 

Since single scatter is no longer recommended with the new Pathtraced subsurface models, I used a specialized texture to drive the Bleed attribute, which allowed for further control in the more fleshy areas, such as the lips and nose. This gives these areas a “gummy” look without losing detail.

Using the Bleed attribute is less destructive than trying to manipulate the DMFP.

I utilized two specular maps to give me greater control over the highlights of the face. Both specular properties were set to a physical specular fresnel mode. For the base specular, I also added a tiling pore texture in the roughness using PxrManifold3D to break up the highlights a little more. Tiling a texture in maya can sometimes provide the extra resolution, allowing me to escape the need to generate other texture maps in large formats, this makes memory usage far more efficient. I plugged in the stronger highlights of the face on the nose and lips into the rough specular container.

A tiling skin texture which gives the roughness a little more break up

For the most part, I had all the properties of the shader in a simple two node connection; from texture > to adjustment > to shader.

Clothing and Accessories

For the hat and accessories, I used the Lama system to simulate the metal and velvet. I was able to separate these two effects with a metalness map. However, I used PxrSurface for the clothing to cash in on the fuzz parameters. In order to get more resolution in the cloth, I used the PxrBumpManifold2D in order to tile a cloth normal in the fuzz bump parameter on top of the normal map of the costume that I got from Substance painter.


I thought a major contributor to the story of the concept was also how the character was lit. By dissecting where those highlights and shadows were in the concept, I translated that information into where the light sources might be. I took note of the shadow cutting across her neck and highlights in her eyes that helped bring focus to her face. Another major feature was the shadow against the wall, which grounded her into the background.

Geometric light blockers works well to limit lighting in the scene

I first placed lights in the scene to achieve those highlights and shadows in the face and then worked outwards, placing additional lights where needed. This was also a lengthy process as I wanted to be faithful to the mood of the painting. I found light linking very helpful in recreating those specific shadows and highlights.

Light linking can be a useful tool for isolating geometry from light contribution


During the texturing and lighting phase, I used IPR in the viewport extensively to quickly get a rough glimpse of what the final image might look like. Using the lower samples and variance values enabled me to have more liberty to iterate.

In preparation to render the final image, I measured the dimensions of the concept in photoshop and used the values for my image size; width and height in the render settings. I then bumped up the height value to 4096 while maintaining the width/height ratio. The final image is rendered with PxrPathTracer, bxdf mode, light sample value of 1, bxdf value of 1 and indirect sample value of 1. It is generally best to let the adaptive sampler do its job instead of increasing these values manually, as it can greatly increase render times.


I did a very simple pass of color correction just in photoshop to match the concept more closely. The slight blue tinge in the shadows and red in the fur of the hat were a couple of things that I added to the final image.

About the Artist


News | Join us at Siggraph 2022 for a day of Special Presentations!