this is so cool! as someone who doesn't really understand the process of making simulations, i liked the explanations and it makes me appreciate the amount of work and creativity that's involved in making them.
Godot forever s2
Thais Del Rey shared a detailed breakdown of her stylized diorama WindRunner Legacy inspired by World of Warcraft lore. In the second part, she focused on texturing, painting, lighting, and presentation. Read the first part that covered planning, concepting, modeling, sculpting, and UV mapping stages of the project here.
Now, it’s time for the fun part! Texturing is a really important and defining step when it comes to the hand-painted style since the majority of the details is painted manually. This is also the part that I like to experiment a lot in and use different workflows and tools to get some interesting results. With that being said, I will go over a few different techniques and tips I like to use to speed up my process. However, I do want to state that learning how to manually paint is still the most crucial skill for that style and no amount of short cuts will substitute the need for learning and understanding that.
What I like to do is to quickly create a procedural base that I can use to paint over some finer details.
We are going to get that base by blending different maps together to build up some values and colors. First, you can get those maps by baking your high poly detail into your texture sheets in any baker of your preference (my favorite is Marmoset Toolbag’s Baker since it’s much cleaner and faster). We will need the Ambient Occlusion, World Space normal, Curvature (or concavity and convexity), Position and Thickness map. Depending on the baker, the map names may vary but the overall concept is still the same. I will do a breakdown of what each map can be used for in terms of stylized texturing purposes but if you want to learn more technical information about the maps, check out this source.
- World Space Normal: Each channel contains direction information that can be used to achieve different types of lighting. The green channel is the most important one since its values are similar to the one of an object being lit from the top and this is usually the light source for most hand-painted textures. The other channels can also be really useful if you want to achieve different effects. I personally like to mix the green and blue channel sometimes to get this top/front type of lighting on my textures. The red channel is the one I use the least but it still can be used for different effects.
- Tangent space Normal: The idea is the same, each channel contains direction information and if you want, you can use it to achieve different effects. I usually don’t use it for texturing at all since it doesn’t really have a lot of useful values. But don’t be afraid to experiment with it if you want (the blue channel does look like an ambient occlusion map and you can probably find a use for it). They are mostly used for PBR rendering and materials.
- Position: The concept is the same as for the world space normal one but it gives you a linear gradient instead. Each channel contains gradients coming from different directions and you can use it to achieve that top-down gradient on you texture most hand-painted models have. You can also use it to get gradients from other directions if you need them for some specific effects.
- Ambient Occlusion: It is great for hand-painted texturing. You can use it to give occluded areas on the object soft transitions between cavities. Also, the cool part about AO maps is that most bakers offer settings that can give you a variety of effects which you can experiment with. For example, I used Marmoset Toolbag to bake 3 very distinct AO maps that can all be used to achieve different texture results.
- Curvature, Convexity, and Concavity: They contain edges information and can be used to get sharp highlights and cavities on your texture. They can be especially useful for texturing metals. I tend to use them subtly since I prefer to manually paint highlights for a more organic result.
- Thickness: It is great for getting special effects such as Sub Surface Scattering and translucency. This is most commonly used for character textures but it can turn out to be really useful for other things such as foliage, wax, gems, fruits, fabric, and etc. I also like to use it to get some bounced lighting effect on my textures. Feel free to experiment.
- Extra: Some software solutions like Marmoset Toolbag or Maya also allow you to bake actual light information from whatever lighting setup you have in the scene. This is not something I like to use since it takes more time and defeats the purpose of getting a base quickly but feel free to experiment with it if you want.
Now that you know what each map can be used for, we can get a nice paintable base by blending the maps with different layer’s blending modes. I will use Photoshop to explain the process and then move on to other programs like Substance Designer and Substance Painter.
If you look at how the layer types in Photoshop are organized, you will have a clue about what each one of them does.
- From “Darken” to “Darker color” you have blending modes that will give you darker results. They are used to get cavities and shadows.
- From “Lighten” to “Lighter Color” you have blending modes that give you lighter results. They are used to get highlights or light effects.
- From Overlay to Hard Mix you have layer modes that give you results with more contrast. They are used to get both light and shadow effects and are the ones that will be used the most.
Now you can use those blending modes to get a base that has nice values and then color it with a gradient map adjustment. My most used blending modes are Multiply, Color Dodge, Overlay, Soft light, and Hard light. Also, I use the opacity slider to change the intensity of each layer. You can approach this in two ways:
- (My favorite approach) Use the maps to get a black and white comp and then use a gradient map to colorize the texture. You can achieve different colors by using selection and mask tools and applying gradient map adjustment to different colors.
- Start with a base with flat colors and use gradient maps to tint each map as you build your base.
Now that you know the overall approach to procedural hand-painted textures, you can use this information to expand and experiment with different tools and workflows.
Substance Painter can be very useful in this process because you can build a smart material that will help you get a base really quickly by applying the same layer and blending modes the way you did in Photoshop. If you want, you can download my custom smart material to have a better look at how it works. The idea is that you can quickly drag the smart material to your model and adjust the color and opacity to achieve the desired result.
You can also use Substance Designer if you prefer a node approach. It’s the same process and it’s really useful for tileable textures. The difference is that you don’t necessarily need a high poly model, to begin with. You can start just by creating your height map and then use nodes to generate other maps and blend them.
Lastly, you can also use rendering in ZBrush to get your maps and use Photoshop to blend them (like here). I used this technique for some of the tileable textures in this project.
After building up a nice base with procedural techniques, it’s time for the hand-painted pass and for whatever objects you decided to fully paint manually. I use 3D-Coat and Photoshop for this part because I like the back and forth workflow and projection painting that 3D-Coat offers. Painting is something that requires a lot of practice and there are not a lot of shortcuts you can take for that. I put together a little breakdown of the way I painted this material study of a wooden cube. Even though this is not a 3D model I think that doing those types of texture studies on cubes can be a great way of improving your skills. All the techniques I’ll be using in this breakdown can be applied to hand-painted textures as well.
- This step is just defining the flat color of the texture. I like to start with darker colors and then build up the lighting because it feels more natural to me.
- This is when you choose a light source and start defining the base values of each face on the model. The usual light source for hand-painted textures is a top one. The reason for the top-lighting setup is that such models can work in most lighting situations when they are put in the engine and also because this feels the most natural to the human eye due to the position of the sun. Also, keep hue shifting in mind and avoid working with the same color all over. Warm lights and cool shadows tend to work really well and are a great way to learn hue shifting (again, because of the warm sunlight and the cool bounced light from the sky). However, this is not a rule and there are many cases when other combinations such as a cool light and a warm shadow work just as well. The key is to think about variation and get interesting combinations.
- I started refining the values and adding some interesting gradients on the cube. Notice that besides an overall top-down gradient, I also added gradients within the faces to better define the light source. This is also when you want to start painting some ambient occlusion on the model. Lastly, I would avoid using soft brushes for this step so that you can get a more interesting surface.
- In this step, I started adding some details on the cube. Keep in mind that due to the light source the values of the wood cracks (or whatever detail you’re painting) change.
- Highlights are really helpful in pulling off the stylized look and defining some bevels in your model. The trick is to think about the light source and avoid completely straight lines.
- At this point, I decided to add some more details and make the cube more interesting.
- One really important thing is to keep volume and surface detail in mind. Skipping this part is a really common mistake, especially when painting wood. Avoid flat looking faces and try to paint thinking about how light would react when hitting the object’s surface. This is when I started to change the silhouette a little as well. In 3D, you can use the multi-cut tool to manipulate cut and the surface into a more interesting shape. I also like to use a Lattice Deformer on the model to curve some straight lines. There is a lot you can do to the model at this point, just make sure that you keep UVs the same.
- Having color variation is really important and this is something you can really push forward in this type of style. You can add some moss, rust, dirt, oxidation, dust and much more as a way to give more color to the object. Sometimes, I use a brush with a hue-shifting option to add subtle color variations on the surface.
- At the end of the process, I like to add some final polishing with different layer blending modes and adjustment layers. Adding some bounced light can look pretty cool as well.
- I added this extra step just to remind that you can take the texture much further by polishing and rendering as much as you want. I kept the demonstration piece a little loose but feel free to bring your textures to a much more finalized result.
My final note on texturing is to try to keep the colors and materials consistent in the environment. For example, if you are using a lot of gold all over the place, make sure it looks like the same gold since a musky dirty gold can really differ from a pristine noble gold. Try to make everything look like it belongs together.
Lighting and Presentation
I chose to use Marmoset Toolbag for the lighting and rendering of the diorama because I like the way it renders out non-PBR materials. Initially, I did try to use Unreal Engine for the diorama as I wanted to do some particle effects but I decided to switch because I didn’t like the way the lighting was reacting with the hand-painted textures.
My material setup was really simple but I did use a few tricks to push the stylized look further. I used a modified darker version of the albedo textures to drive the specular color and some of the glossiness. This helped me to tone down very dark shadows and created some vibrant bounced lighting. For transparent materials I used cutout and for gems, I used emissive maps. Also, for the foliage, I reused the albedo map to drive some subsurface Scattering.
I used some plugins that allowed me to use panning and pulse to create a couple of effects with some planes. They are really useful and can help you bring some life into your scene.
I also did a skybox for the scene by layering some clouds in different planes and using a couple of panning clouds.
For the lighting, I used a directional warm light for the key light (sun), a faint cool directional light on the opposite side with cast shadows turned off to fill dark areas, a skylight, fog, and multiple point lights and spotlights around the scene to get the result I wanted. Since the goal of the project was just to create an interesting looking diorama, I wasn’t worried about optimizing the scene or limiting the number of lights I used.
My goal was to define the focal point of the scene and drive the viewer eyes to the bows. To do this, I made the interior of the diorama dark and cool and added most of the light and vibrancy to the pedestals. This created some sort of contrast between the light warm and vibrant bows against the cool, soft and dark interior. I also used light shafts pointing to the pedestals to draw the attention even more. For the exterior, I used some lights to fake more bounce light and colors.
Marmoset’s global illumination is great and it makes most scenes look beautiful. I highly recommend this for anyone who has access to Marmoset Toolbag. These are the settings I used for the rendering and post process.
All of those steps are really important if you want to get the most out of your asset. Presentation is often something a lot of people overlook but it really makes a difference in your portfolio. After all the work you had done modeling, sculpting, and painting you don’t want to ruin everything by a poorly done presentation. With that said, no matter how hard you worked during the whole project, don’t be lazy when it comes to showing it off the best way possible because the images in your portfolio are often the only thing people judge your work from.
I hope that anything in this article could be helpful for you. I learned most of what I know from articles and tutorials, and sharing some knowledge with the community has always been a great wish of mine. This is just the way I approach my projects and it’s definitely not the only way to do it.
If you are interested in hand-painted texturing and want to pursue it as a career you can join the Handpainter’s Guild. This is a Discord group focused on this type of texturing where people help each other and give a lot of great feedback!
Thais Del Rey,3D Environment Artist
Interview conducted by Kirill Tokarev
Ornament Brushes/Alphas Vol.2 by Jonas Ronnegard is an Ornament alpha/brush set for ZBrush, Substance Painter, Quixel DDO, NDO and more. There are 55 brushes and height/alpha maps, all 2048×2048 16bit in Tiff, Jpeg, PSD, Photoshop ABR brushes, as well as ZBrush Brushes.