Lukas Walzer told us about the production process behind Dean, explained how the unusual hand-painted look was achieved, and discussed hard surface modeling.
Hi, my name is Lukas Walzer, a 3D Artist currently working in Hamburg, Germany. My path to the CG industry began during my study of Industrial Design in Regensburg where I originally hail from. Although I always liked designing stuff, I soon noticed that visualizing the final product in Blender was always my favorite part, so I started pursuing my own CG projects after graduating.
Soon after I got a job as a Modeling Artist at Mackevision in Stuttgart, then as a 3D Artist at UP Design Studio also in Stuttgart. In 2018 I got hired by Animationsfabrik in Hamburg, where I work as Lead Artist now and was involved in Lookdev and various other VFX aspects of the life-action feature remake Laura’s Star coming to theaters this December.
The Dean Project
My latest personal project started the same as many others did: With an awesome concept or reference and the deep desire to learn something new. Although I am always searching for the thing you could call "my style" or "my way of doing stuff", it never really works and a part of me is not unhappy about it, because I always want to try new things in CG.
For instance, in this example, I wanted to create something similar to the breathtaking NPR shading in the Tall Grass episode of season 2 in Netflix’s anthology series "Love, Death & Robots".
I also recently discovered the amazing art of deepfry on ArtStation, who mixes vintage-styled street thugs with Cyberpunk technology, creating an intriguing IP that really caught my attention. Especially the character Dean was interesting to me since he combined several elements that I wanted to incorporate: an interesting face, lots of cloth details, and cool hard surface parts in a style that I hadn’t really tried yet before.
So I decided to combine those two ideas – Dean and Tall Grass – to make a new 3D character entirely NPR-shaded.
Designing the Face, Body, and Clothes
When I work on human characters, I almost always start with an existing basemesh, in this example from the free Blender character generator MBLab. It gives me a base model with a decent topology, correct anatomy, and even a basic rig that allows me to pose the model and align the camera to match the concept’s perspective as best as I can.
For the face, I used the awesome FaceBuilder addon by KeenTools. It drastically simplifies the process of generating a 3D base mesh that follows the shapes of an existing face. It was originally meant for matching actor’s faces in VFX production, but works just as well for painted characters.
When I had blocked out the main shapes of Dean with super simple geometry, I used MBLab’s base rig to move all elements into a relaxed A-pose. I noticed that many A-Poses you see done for AAA games give the elbows quite some angle, and I believe this is because it allows for easier and more versatile modeling of the clothing folds that appear there. I followed the same principle, since I knew there would be a lot of cloth wrinkling on his right elbow.
At this stage the model looks poorly, but I put my faith into the strong visual language of the concept to guide me through the long, although pretty straightforward process of creating the high poly model.
All three types of meshes (face, cloth, hard surface) require different approaches.
For the face and hair, I relied solely on sculpting. After cleaning the model that FaceBuilder generated, I started refining the shapes and trying to stick to the concept as close as possible. Since I wanted the face to really feel painted from all angles, I incorporated rough brushstrokes into the design, similar to the main character’s face in Tall Grass. Then I smoothed them out using the Scrape Brush like a traditional clay artist would do.
For the hard surface parts, I either used traditional straightforward SubD modeling (for the easier shapes) or sculpted the more complex shapes first as a kind of 3D sketch, following the method described by Rachel Frick. It’s about first creating the base shape of e.g. the left arm’s paneled bracer, then cutting out and defining stuff with Booleans, and then converting it to a sculptable mesh via Remeshing. You can then indicate the panel lines in Sculpt Mode with the Crease Brush. The rest is just straightforward retopology.
I really recommend modeling the rougher shapes first (the panels), then SubDividing everything and shrinking it to a clean surface. This way you get all the additional resolution you need for the smaller details while maintaining a clean silhouette. I have to admit that the paneled exoskeleton parts were the trickiest ones on this model, and I needed a few attempts until I got it right.
For the cloth parts, I usually start with a pretty low poly geometry. In fact, most fashion objects have a very simple shape that gets its complexity with cutting, seams, and wrinkles. So I try to cover the blockout mesh in a realistic way so that the shape and size of the elements seem believable. Then I look at real-world references to see where the fabric is cut and sewn. I cut my mesh in the same way and separated the different parts with enough overlap. On some parts I would need to apply a Solidify Modifier to add extra thickness. Using only the Bevel and Shrink/Fatten commands (Ctrl+B and Alt+S) I can further detail specific loops to turn them into seams.
I usually do it like this: One big bevel sets the surrounding loops that tighten the topology. Then I move the innermost loop inward a tiny bit and bevel it again, this time even tighter. And then I drag the innermost loop quite a distance inward to create the seam crevice. Of course, for this technique to work you have to think about the seam positioning already when creating the low poly model.
When the SubD base of the clothing is finished, I use the Multires Modifier to non-destructively sculpt over it and add folds and wrinkles using alpha stamps and a quick custom-made brush for the tiny parallel wrinkles where the seams are tucking in the fabric. Apart from the non-destructiveness of this workflow, the Multires Modifier offers yet another advantage: I won’t have to worry much about baking artifacts since the normal information generated from the Modifier is always a) super fast and b) super accurate. That’s really important when dealing with those loads of overlapping and tightly packed geometry that would otherwise produce lots of issues.
Lastly, I make a copy of the high poly and extract all loops that will bear seams. I convert them into curves and use the Array and Curve Modifier to clone a simple cylindrical seam shape all over the loops to create the seam lines.
At this stage, the highpoly geo of the cloth is pretty much done and ready for unwrapping.
Retopology and Unwrapping
The UV Unwrapping itself is not a big deal if you set up the mesh in an efficient way. That means already deleting geometry that would not be seen by the camera, like inward placed faces generated by the Solidify Modifier. They take up a lot of UV space for nothing, so it’s worth the time to go through the mesh thoughtfully. If the clothing parts are set up as I described above, unwrapping them is a piece of cake since in real life they would be basically flat surfaces that were warped into their shape. That means the reverse process is just as easy! For the most part, the automatic unwrap function is fine, and often you do not even need extra seams.
For the organic and hard parts, however, the process is just the usual one: identifying the parts where more than two surfaces meet and placing seams accordingly. A bit tedious, but fortunately not very challenging.
This would be a high-res model with a level of detail fit for feature production, so I didn’t worry about too high poly counts or too many texture sets. I created one 4k set for the head, four 4k sets for the chest and right arm, two 8k sets for the lower part of the body, and one 8k set for the left cyberpunk arm. That was more than enough for the details I was going for.
I used the free UV Packer addon for Blender that finally gets rid of the tedious work of packing every single UV island, and it did a great job arranging my UVs as best as possible.
As for retopology, there really was none. As I said, I modeled everything (except the head) in a traditional SubD workflow with Multires detail on top. All I had to do was baking the higher SubDivision levels to Normal information for the lower levels inside Blender, which, as I said, is really fast and accurate when utilizing the Multires Modifier.
Since I wanted to basically hand-paint the whole model and achieve a very high level of detail, I knew that painting on multiple 4k or even 8k UDIMs would be a real pain. So I decided to create proxy 1k UV sets that I could easily paint inside Blender’s Texture Paint Mode without causing crashes. I used those proxy textures to block out the colors, constantly picking them from the original artwork.
Then I took the proxies into Photoshop, enlarged them accordingly, and started painting over them. At that point I didn’t need to worry anymore about the placement of colors, I just tried to achieve more depth and level of detail by painting over and over again with a rough paintbrush-like brush. Then I baked AO and Curvature Maps in Blender and multiplied/overlayed them in Photoshop over the metal parts to add some extra harshness to them.
The finer Normal details like the ripped denim and belt buckle ornaments were also handpainted, converted into Normal Maps, and merged with the baked Normal data.
As a finishing touch, I sharpened the textures inside Photoshop quite extensively to really make the brushstrokes pop and achieve this gritty, high-contrast painterly style.
The procedure was pretty much the same for all parts of the model, except for the head, which also happened to be the first asset I finished because I really wanted to get it right. I used projection mapping to transfer the original artwork to my texture and then painted over it in Substance Painter, where I’m quicker iterating how much of the projected face I wanted to shine through. This was especially important for the eyes, and it was a bit tricky to balance the values around them to really match the original face.
I used some tricks on the shader to make the whole character feel even more painterly. Although I used the standard Principled Shader for everything, I mixed it a bit with Blender’s old Cycles Toon Shader that somehow looks realistic, but a bit less PBR and a bit more cartoonish.
Then I created a tiling Displacement Map containing wild clay brushstrokes to add additional Normal detail to the character. I even plugged the color pass into the bump input with low strength, to give the color brushstrokes themselves a bit of depth.
Lastly, I distorted the Normals of everything with wildly scattered colorful brushstrokes that were aiming to make everything look even less computer-generated. It’s basically like deliberately producing Normal artifacts. You can clearly see this effect on the background material, that used the same technique.
Rendering and Lighting
The lighting on the other hand was again pretty much straightforward. A quite standard studio set up with an interior HDRI from Polyhaven, the Main Light from above, a Rim Light, and several smaller area lamps highlighting specific areas.
For the first time, I made use of Blender’s new Spread feature for area lamps, where you can directly control the directionality of the light, which is pretty useful to restrict the light and have way better control.
Usually, I do a lot of post-production stuff on my artworks, but this time my tweaks were rather minimalistic. Just some slight contrast enhancement, highlight crushing, and – again – sharpening to make everything even crisper.
I think in this case, where I tried to stick to the concept as close as possible, to the extent that I even made the shaders look painted, the concept itself plays a huge part in the final 3D character’s appeal. Of course, deepfry already did an amazing job, and all I had to do was extrapolating the 2D design into 3D space.
But even when you start with a concept of your own, it’s in my opinion crucial to have a clear understanding of what you want to achieve. I think most of us, regardless of skill level or talent, can identify appealing images, given a large enough amount of images to choose from. The trick now is to really study those appealing artworks and try to find out what makes them special, splitting them up into their smallest parts and seeing how everything works together.
Whenever I see flaws in my own work (or the works of others), it’s almost every time this: I see where you were heading, but you didn’t think thoroughly enough! You relied on memory and experience rather than observation and deduction. Now, don’t get me wrong, experience is what makes geniuses achieve amazing results and making it look like the easiest thing, but it needs to be built first.
You may find these articles interesting