Théo Albertini is a modeler at Framestore London. He recently walked us through one of his personal projects, a 3D adaptation of the artwork The Lonely Lumberjack, by Tom Booth.
Inspiration and References
I was looking at various social media, searching for a new practice study, when I came across Tom Booth’s Instagram. I immediately felt deeply touched by his illustration series on the woodworker. This concept in particular hit me very powerfully as it was such a subtle but profound way to convey the feeling of loss. This imposing figure might almost feel threatening if it weren’t for his deeply sorrowful face, and his gentle fingers grasping the carved wooden hand. I was captivated by this feeling of time suspension while looking at this illustration. It was almost like the woodworker became a statue, forever lost in his thoughts.
The first thing I do every time I start a project is gather as many relevant references as I need in order to be confident about my future workflow and approach to my work. I was very lucky that this concept was part of a series of multiple illustrations where the woodworker was depicted in slightly different graphic styles. It really helped a lot as I could borrow elements of the more detailed illustrations to better understand the concept I’d chosen, and to build on top of that. There are also subtle 2D tricks Tom used to add emphasis to his illustration that are not totally in line with perspective, so I had to find workarounds for this model to work coherently in a 3D space, and not only in a single view. This is also where having multiple illustrations of the woodworker came in handy. I also used realistic anatomical diagrams to better understand some of the volumes. Of course, I keep gathering as many references as I need at each step of the process.
“Theo’s rendition is one of my favorite takes on my woodworker character. I love how he captured a sketch-like quality with his texturing choices to better illustrate the character’s weathered appearance.”
– Tom Booth, author, illustrator, and character designer
One very important decision I took for the project was to model this character directly in pose, because this has major implications on the workflow. My motivation for this approach was to save time. Building the character in a neutral pose would have required a lot of additional steps to make it accurately match the concept; this just wasn’t worth it timewise, as I only wanted to work on this single pose. I’ll come back to this choice further in the process.
I started the modeling phase by creating very rough primitive shapes for the whole character in Maya. Once I had a coherent blockout in 3D space, I moved to ZBrush to link the volumes together and to really build the shapes of the character, with a focus on his face. I didn’t spend too much time polishing the sculpt of the model as I approached this project as topology practice, and I wanted to drive all the geometry of the character without displacement, except for the few folds on his pants. This meant translating all the sharp creases of the model directly in the topology which was a challenging task. As a result, the retopology phase was very interesting as it required some trial and error to get the edge flow I was looking for.
Some parts of characters, such as the hands, are always trickier. For these I quickly realized I couldn’t go for an exact match with the concept because the 2D stylization wouldn’t have worked very well in 3D. I then took inspiration from another illustration of the woodworker series in which the hands have more coherent volumes for this CG project. These are the only parts of the character I had to model in a neutral pose as I had to make sure the proportions and the shape were right before posing them.
Neutral pose of the hands. Some shapes were reworked once they were in pose.
I’d never modeled polygon hairs before, so this was quite fun to learn. I usually go for a more classic grooming approach working with xGen and hair splines, but after some reference-gathering I found that I could better fit the overall graphic style of the project with a polygon approach. The key was to find the right type of profile for the larger strands of the hairs and brows and lay them out to achieve a coherent structure. I could then extract thinner pieces of geometry out of them to add fly-away and breakups, so that the end result would feel more alive.
For the beard I stuck with xGen using grooming strands driven with guides. I took inspiration from both the concept and real beard references to shape the hairs. I set a large thickness value so the curve hairs would better fit the polygon hair, and get a more coherent stylized result. I also tried to preserve the sharp shape of the jaw underneath the beard as best I could, as it is an important part of the concept.
The props play a very important part in the storytelling, so I approached them with the same level of detail as the character. I sculpted the axe handle entirely in ZBrush, except for a rough base mesh in Maya. I really wanted to keep the rough and veiny aspect of the wood as depicted in the concept while better asserting some of the volumes. As with the rest of the character, the concept of flow and movement was really important here, so I wanted the wood lines to run along the handle. For the stump and the hand I used a different approach as I directly painted the huge wood cracks in Substance Painter and extracted them as displacement. This way I had better control over the texturing of these props and could reuse these painted cracks as masks later in the texturing process.
The last touch was adding hairs to the clothes, which always brings a lot of variations and credibility. The process was really straightforward; I populated the meshes with hairs using Xgen interactive that comes with Maya. I added variation to the length with a cut modifier and a noise in the mask. This part is the most important as it helps break the artificial line that hairs create when they’re all the same length. Then I added a couple of noise modifiers to create the curly effect you find with fabric hairs.
I always take extra time to create and lay out my UVs as it makes the texturing process much more enjoyable and efficient. This was especially true for this project as I knew I would have to paint in 2D/UV view most of the time. I tried to end up with the best compromise between minimal UV distortion and large shells to work comfortably. In total, I split my character into 10 UDIMs and put more definition on the parts that I knew were going to show close up, like the head and hands. I organized my layout to make use of both Painter’s UDIM support and texture sets for convenience and optimization purposes. The texel density was calculated for 4K texture resolution, but I knew that if I fell a little bit short on sharpness on some close renders I could always output 8K textures out of Painter to recover extra details at the end.
Character’s UV layout breakup per material.
Texturing was one of the most interesting parts of the project as I wanted to experiment with something a bit new. I was not totally set on what graphical approach to go for at the start, but really wanted to keep the pencil look of the original concept. I actually made a 60-page illustration book using only color pencils when I was in art school back in 2014 and I completely fell in love with this traditional medium. It can convey so much emotion and vividness, Lorenzo Mattotti is one of my favorite artists using this medium. There is an incredible sense of movement in his illustrations which was an important inspiration for this project. I’ve also been a big fan of Van Gogh since my childhood and The Starry Night was also very inspiring in terms of lines, movement, and color variations.
The Starry Night , Vincent van Gogh, 1889 (left), and Chemins de Travers, Lorenzo Mattotti, 2019 (right)
All the assets were fully textured with Substance Painter, which was the perfect tool for this kind of project. The first thing I do when I jump into texturing is assign basic plain material to every part of the model and have a good starting point for every channel (albedo, roughness, specular, etc.). It’s also where I create my layer and folder structure. Having a strong and organized layer layout is key to success with detailed projects, while also enjoying working on them.
For the actual pencil look I think of it in two blocks: the actual crosshatching pattern and the larger areas like occlusions, highlights, skin redness, and so on. From the beginning I intended to convey movement through the lines in the artwork, just as Van Gogh did in some of his paintings. After some testing I quickly realized that this had to be a manual process as I wanted very precise placement and direction over the crosshatched patterns.
Custom cross-hatching texture created for the project
I imported a pencil brush from Photoshop and tweaked it a bit in Substance Painter to get the right amount of texture I wanted. Having a coherent alpha pattern for the whole project really helped to keep the pencil look coherent. I also created variants of this brush for larger areas. Creating and adjusting these presets during the project allowed me to save a lot of time. I also drew and tiled some crosshatching patterns in Photoshop to add an extra level of detail at the end. The majority of the crosshatching effect was painted by hand. The main rule was to combine multiple levels of hatches of different densities to add more variation and depth to the final look. I started from sparse thick lines and moved progressively toward finer and denser lines to add more and more detail. I used the hatching texture I’d created earlier to add a final level of detail on top of the manually painted crosshatches as I didn’t want to lose sharpness on close-ups. I kept everything separate on this project; every color and line density has its own fill layer which gave me a lot more control. When I was happy with the base color, I could assign a value in the other channels for each layer which was very useful to generate a normal map for enhancing the crosshatching and adding variations on the specular color and roughness.
Texturing breakdown of the character’s shirt
One thing I need to point out is that while modelling the character in a still pose helped me save a lot of time, it made the texturing part a lot more tedious. I couldn’t use symmetry in both 3D and 2D mode (except for the head, luckily) which meant I had to do all these crosshatches twice, once on each side of the body. To be honest, at the start of my project I had a much simpler graphic style in mind, so the lack of symmetry wouldn’t have been much of an issue. However, throughout the texturing process I kept adding finer and finer levels of detail, so having a perfectly symmetrical UV layout could have allowed me to save a lot of time here.
I painted the larger areas on top of the crosshatching texture in my layer stack. I used relevant blending modes to preserve all the variations of the pattern underneath. As I worked on a still pose, I had more control over occlusion placement and highlights which might not have worked if the character was standing up in a different lighting setup, for example. Putting bright colors in occlusions was really important for this graphic look — like the purple part on the shirt, for example.
At the very end of the project I took a step back and made color corrections of some parts of the model to make it more coherent overall. Some areas were lacking saturation or brightness until very late in the process, but working on a very segmented layer structure meant I could make corrections very easily at every stage of the process.
I didn’t extensively use the baked maps for this project, like I usually do, but this was still very handy on the axe handle where I could retrieve all the sculpted details from my high-poly model. One very useful habit to have during texturing is using RGB masks. This helps drive some effects during the lookdev part, and these masks are easy to tweak. It’s just more convenient to store 3 masks on each color channel rather than outputting a lot of grayscale texture, which can add up very quickly when working on multiple UDIMs. This helped me generate subtle displacements for the snow on the props that were directly linked to the painted layer, so every change on the mask would propagate on the displacement map.
I used Pixar’s Renderman to render this project, but my process remains relevant in other render engines as well. I really love this timeless feeling conveyed by the original illustration. It’s almost like the woodworker became a statue himself, forever lost in his thoughts. I wanted to emphasize this interpretation in my renders and gave the pencil look an almost wood-like feeling by enhancing the crosshatching with normal variation. The skin was the most challenging part of the model. I used subsurface scattering to soften the harsh crosshatching on the arms and head, and to make light peek through some of the thinner pieces of geometry like the ears and nose. The scattering also creates a lot of color variations, especially in the shadows, and allows the skin to feel alive. I altered my albedo map directly in lookdev to generate a redder, more saturated subsurface color map to simulate blood beneath the skin. The same process was applied on the hairs and the shirt with different values to simulate translucency.
I also played with a fresnel effect on the clothes – the effect is called ‘fuzz’, in Renderman – which adds a sheen effect on the edges of the model. It’s subtle, but it adds a softer look to the fabric and makes it more believable. I also used my RBG mask from texturing to add the subsurface where the snow covers the boots, axe and tree stump. The snow was textured entirely in lookdev by layering and tiling the multiple textures of crosshatching.
Lighting and Render Setup
The lighting evolved throughout the whole project until the very end, but I did set the main lights before starting the texturing and lookdev so that I could have a relevant preview of my materials during the shading process. For this scene I wanted to use dramatic backlighting while still having a soft winter feel to the image. I placed a huge light behind the character to enhance the model’s silhouette and added two key lights on each side to empower the volumes.
Then I added a global environment with a winter HDRI to bring some blue tint to the shadows and soften the lighting in order to make this winter setting more believable. I also placed some light blocker to cast shadows on the ground and to imply some trees nearby. Even if Renderman is a raytracing engine and handles light bounces between objects very well, I gave it a little help by placing a huge light under the character to accentuate the white snow light bounces on the woodworker. Later on in the project I added multiple rim lights around the character to emphasize some volumes and improve the overall readability of the model. A good rule of thumb I was given is that good lighting should still be readable from far away or in very low resolution; this way the picture has much more immediate impact on the viewer.
I like to think about render setup as I build my scene. This is not the most fun part for everyone, but it is a crucial step to have a lot of control and fun during the post-process stage as well as to optimize render time. I split up this scene into four layers rendered separately as follows: one for the character and stump, one for the snow environment, one for the wooden sticks and one extra layer just for the snowflakes, which would be very handy for compositing. After splitting my layers, I then tweaked specific attributes in Renderman to keep lighting bounces and shadows of some objects even if they weren’t rendered on a specific layer. In this way, for example, despite being rendered in two separate layers the snow will still light the character and the woodworker will still cast shadows on the ground. I then set up all the technical render passes I would need for the composition on a separate EXR file. I usually tell Renderman to write a separate pass for every light of the scene so that I can tweak the lighting a bit even after rendering. I also extract the main shading components such as specular, diffuse, subsurface, and so on.
The last pass I tell my render engine to generate is the Cryptomatte IDs. It is an awesome tool that I use on every project which by default assigns a different color value to each piece of geometry in the scene. Then, once my images are rendered, I can use the Cryptomatte plugin in Nuke to select each object in my images and convert it as an alpha mask which allows me to tweak every part of my scene afterwards.
The post-processing stage is really one of my favorites as it helps to set a mood and empowers the final image by adding variations which would be difficult or impossible to achieve in the raw render. I used Nuke for this part as it allows for a fully procedural workflow. I created the compositing scene very early on in the lookdev process, as having a good first post-process part on an early render helps to adjust material directly in shading. I do a lot of back and forth between texturing, lookdev and compositing throughout the project, so that way I have better control over the final result, as if treated as separate steps. I painted a very rough background image in Photoshop, as I knew it was going to be blurred, then I combined all my render layers on top of it. The snowflakes layer from earlier was very helpful to precisely control the effect and not overdo it. Once everything was combined, I used the light passes I’d extracted to knock down some of the over-bright areas. The Cryptomatte masking was very handy as it helped me adjust some intensities on specific objects across multiple images at once.
Once the overall exposure of the whole image was set, I started playing with effects and color corrections. I tried different subtle color arrangements to get the right atmosphere for the picture to convey emotion. Here, I played with a lot of cold blue and purple tones to put emphasis on the sadness the character is experiencing while contrasting with some warm tones on skin and hands to convey the love the woodworker is expressing toward his lost partner. Of course, colors have different meanings depending on the context, but when I tweak my renders in post-process I like to get immersed in the story of a picture to make a conscious decision about the tones and saturation I add to the final image.
There are some effects I add on all my projects such as glows, particles, film grain, vignetting, etc. because they add variation and help bring a lot of realism to the render by breaking the artificial CG feel in a good way.
This project was an incredible journey for me as I learned so many things along the way while having fun working on it. I also learned a lot about time management during this project as I started my new job at Framestore right after the modelling phase. As I really didn’t want to put it on hold, I had to find some hours here and there to keep working on it without overworking myself too much. Instead of becoming a burden this project helped me to have a good balance between working as a modeller on realistic assets on a feature film and doing some stylized texturing and lookdev on the woodworker project.
One of the most challenging parts was the modelling as I had to find a lot of workarounds to make some of the 2D shapes work in 3D. The axe, for example, was really difficult to place as it’s not in line with the perspective in the concept and I had to bend the handle and the metal part to make it fit. This was a very good exercise as a teacher once told me that an essential part of modelling is being able to understand and extrapolate every detail on a reference.
I’m happy with how the graphic style ended up looking. After some trial and error I found a good path to explore and stayed faithful to my references while keeping it somehow different. I would definitely not apply this style on a larger scale project as it took thousands of individual lines carefully placed and stacked for the character alone. Overall, I don’t regret my choice of building the woodworker directly in pose but having a symmetry at least on the UVs would have made the process way less tedious.
I explored different graphic styles during my personal projects this year, but this has really been my favorite. I’m glad I had the chance to work briefly on Tom and Jerry at Framestore before starting this project as it taught me a lot about stylized character modelling. Personal work is very dear to me as it helps me learn a lot, and somehow in a different way than on school or industry projects. Asking for feedback is crucial as some obvious flaws can fly under your nose when working many hours on something. I try to send my work in progress to a few people I know at crucial parts of the process when mistakes can still be corrected without wasting too much time redoing work. It’s also crucial to take breaks from time to times for the same reasons, because when I come back to a project after a day, or a few days, of break I can spot a lot of potential improvements.
Finally, I’m glad to see how fast the technology is developing in the CG world and how it has made the life of artists so much easier. I learned Substance Painter on my own when I was in the middle of learning CG in school, and it was groundbreaking. The software has kept on improving since, and I feel less and less constrained by technical problems and limitations, which makes work way more enjoyable. I’m still a young artist but I always love to share some of the knowledge I’ve gathered during my journey in CG.
Meet Théo Albertini
Théo Albertini is a CG generalist with a focus on modeling, texturing, and lookdev; he has studied art and graphic design in Geneva, and is also a graduate of the ESMA school in Montpellier. He is currently working as a modeler at Framestore London.