Thomas Severi joined us to discuss the Tavern Hand Paint project, detailing how he learned hand-painting techniques to texture the wood patterns and lines, following a 70-20-10 ratio to keep a balance in the scene.
Introduction
Hello everyone, my name is Thomas Severi, I am 27 years old, I have over 3 years of experience in video games, and I currently live in France. I have a bachelor's degree in Fine Arts, where I studied traditional art with courses in comics, anatomy, painting, and art theory. During this, I acquired skills in 2D drawing, composition, and perspective, which are useful for the concepts and textures of a model.
After three years, I obtained my degree but lacked skills in the field of video games, so I started a three-year bachelor's degree specializing in 3D and video games, where I acquired the skills needed to be a 3D artist, including modeling on several software programs such as Maya, 3ds Max, and Blender 3D, texturing on Substance 3D Painter and Designer, sculpting on ZBrush, and also the basics of game design.
In my third year, I did a work-study program at a video game company, Exalted Studio. It was thanks to this work-study program that I finished my apprenticeship and was able to be effective on the project. I reinforced the skills I had acquired during my two training programs, as I was involved in a variety of tasks such as prop design and 3D modeling.
At the end of this work-study year, I signed a contract with the same studio to continue working together, and for the next two years, I was the 3D artist responsible for most of the 3D models for environments and props. At the end of this work-study year, I signed a contract with the same studio so that we could continue working together, and for the next two years, I was the 3D Artist responsible for most of the 3D models for environments and props such as weapons and consumables. I work fairly quickly, as I can be efficient in both 2D and 3D design at the same time, right up to optimization and integration into the game engine.
In 2025, Exalted Studio released the PC and console versions of the game Big Helmet Heroes. It was on this project that I learned the most and strengthened my 3D skills. Personally, I draw and model a lot for fun. As a role-playing game master (Dungeons & Dragons), I sculpt and print figurines of my players and the creatures they encounter.
Inspiration
This tavern project was a personal idea. For three years, I worked on the same artistic direction, with the same 3D and texture style, but I've always been a big fan of the artistic direction of games such as Wayfinder, League of Legends, and World of Warcraft. The hand-painted textures are really beautiful, and I find the workflow very enjoyable. I watched a lot of videos of artists working on textures in this style, so I decided to take the time to do a project in this style myself.
I've been practicing 2D for a long time, but not really for the hand-painted style without Normal Maps or high-poly baking, so I had a lot to learn to improve. The project was to create an entire environment, as that's my specialization using this workflow, and the main goal was to have a scene with low-poly models with textures that work even without "unlit" lighting and using only 3DCoat for the textures.
As mentioned above, I really like Dungeons & Dragons, and to do this project, I based it on a place I had already imagined several times: a tavern. That's how this project came about. The scene is fairly simple, making it easy to build.
The easiest way to find references was to go on Pinterest to gather the elements I needed, such as wooden mugs, barrels, tables, chairs, etc. I found all the elements that interested me and isolated the types of materials as well. Here, I used mostly wood in several shades for clarity and stone/plaster for the walls, with slight metallic touches to contrast with the warm color of the wood. I also gathered references for textures to work on and analyze how each material was painted.
The hardest part was finding real photos of taverns, which were often too dark or too messy, but it's always important to base a concept on real photos and not just existing artistic projects. For the art direction, I like and know how to do "stylized" work. I find it really fun to create in a style that allows us to distort, enlarge, and disproportionate the objects in our scene.
The Blockout
The composition came from the camera angle. I knew it wasn't a room with a player who could move around and adjust the camera. I just needed to show a small room from a specific angle. I looked at some references of square or rectangular rooms with a hallway. The L-shape was the most fun option, allowing me to have a room that wasn't too big, but still able to fit all my elements.
The goal was to have a small L-shaped tavern with a few elements, a view of the bar and bottles with a few tables and chairs, all in a medieval fantasy world. In Blender, I started building the scene's blockout with basic cubes and cylinders to mark the initial shapes.
After placing the walls and the base of the room, I needed a central element that would anchor the scene and allow the rest to be built to scale. This element is the bar where customers sit and, on the other side, the tavern staff work. Once the important elements, such as the bar, beams, walls, and entrances, were in place, I focused on medium-sized elements such as barrels, tables, stools, and bottles.
In the end, I wanted to have a room with volume and clarity of scene, so that I could plan which elements I would need to model, how to model them, and how many objects could be placed in the room. In the end, I wanted to have a room with volume and visibility of the scene, so that I could plan which elements I would need to model, how to model them, how many objects could be repeated to save time, and isolate the wooden elements from the metal ones.
All this was to have a plan to follow for the next steps, but not a strict plan, because I wanted to be able to modify elements once the textures were in place.
The Concept
After a satisfactory blockout, I need more information, so I render the scene, which saves me a lot of time and allows me to be more precise about the perspective, so I can redraw it. It's at this stage that I add details, refine the shapes, start to distort lines that are too straight in order to break up the blocky appearance, and add my materials.
I don't have the final textures in mind yet, so I don't waste time on this part. I just know which elements will be made of which materials. This gives me a concept that will serve as a guide and help with modeling later on, with an ID label that highlights the different important elements in color, such as wood structure type 1, wood type 2, metal, and small props.
Modeling
For modeling, once I'm satisfied with the blockout, I take a step back and use the Workbench preview render. I like the materials offered, and by activating the cavity, I can get a better overview of the edges, occlusion, and volumes of the scene.
Then, using the references and my list of props, I start by reworking certain shapes, adding details to improve the silhouette, breaking up lines that are too straight, and adding bevels to soften certain angles. For example, for a chair, I go from two cubes that serve as volume to something more elaborate, to get closer to the final topology, adding different materials, keeping in mind the wood/metal duo, with 70% wood and 30% metal.
This is a balance that I like to apply in my modeling. I try to keep areas of "rest" without too many details, just enough for the silhouette, which is the most important element. No matter how many details there are, if the silhouette isn't right, we won't achieve the desired quality.
So I apply more or less this ratio, 70-20-10, in order to have 70% large shapes that define the silhouette, then 20% medium detail, and 10% micro detail. For the chair, that gives us 70% wood for the structure, seat, legs, and backrest, 20% metal parts such as decorative elements and nuts, and 10% details such as marks in the wood, dents in the metal, and small stains.
This means we don't give too much information at once, and the calculations aren't precise, it's more something that guides the creation, but it varies depending on the size of the object and its importance.
As mentioned above, to save time, I isolate similar elements so as not to redo them. Once this list is complete and the shapes have been reworked, I start by cleaning up my topology. I keep in mind that each object can be used in a real-time project, such as a video game, so I pay attention to my polycount. So I start by identifying the vertices and edges that are unnecessary for the silhouette, taking care not to break the edge flow of certain models.
Nothing will be animated here, so that makes the retopology work easier. I also delete faces that will never be visible, as they take up unnecessary space on the UV, but be careful, as some objects will be oriented and, for example, flipped in the scene, so I can't delete everything at the risk of seeing missing faces.
I regularly zoom out and display the wireframe of my object to see if the mesh is too dense for the size of the object in the scene. So I went from a volume like two cubes to a model with a correct silhouette and detail, finally ending up with a model with the right topology for this situation, so I can start unfolding the UVs.
I work on Blender 3D, which offers some really great add-ons, especially for UVs. I start by marking the seams that I will use for cutting, trying to hide the seams as much as possible, depending on the orientation of the model in the scene, but also depending on the shape of the object. At the same time, I group together objects that can share a single texture set, such as all the tables, chairs, and stools, in order to optimize the number of maps.
Tips: To save time, some objects will be cut and mirrored, so that the texturing work will be quick, as there is only one side to texture. Then, to hide this mirrored texture, I will use a technique in Blender that allows me to bake my texture and transpose it onto a new set of UVs, so that I can keep the work I have already done, but I can add details later to break the symmetry.
Once the seams are marked, I think about applying the modifications, particularly to the scale of the objects, and I switch to the UV editor view. If my cutting work has been done correctly, then the unfolding goes well. If I spot a strange island, I rework it.
Now that I have an initial unfolding, I will try to optimize the space and also calculate the Texel Density of my objects. I use an add-on (Texel Density Checker) that allows me to apply a texture with numbered and colored markers to the model. It's a simple grid, but it's really useful. I can also define the size of my texture, for example, 1024px, and apply a ratio to my UVs accordingly.
The add-on allows me to see the percentage used by the UVs and also their density in px/m, so that my table, which is twice as large in the scene, uses more space on the UV than a small stool.
Okay, so now I have my objects with a good silhouette and the final topology. The UVs are grouped by atlas to share the same texture, with a good px/m density, so I can move on to the texture.
Texturing
Step 1: Export
To start with the texture, I prepare the model, the UVs are done, the atlas groups too, so I can prepare the pivot point of my object. There are two possibilities: either I need symmetry, so the pivot must be in the center, or I pack and align the objects for a better overall view.
Exporting to FBX is fairly easy. A quick tip if you have a lot of objects to export: the easiest way is to add the Export->FBX tab to the shortcuts in Blender, which allows you to export your object with a single click.
Step 2: 3DCoat Setup
As mentioned, I use 3DCoat and its counterpart, Photoshop, for textures, so I import my model and go directly to the unlit view, which displays only the color of my texture without taking into account the lighting of the scene.
I use keyboard shortcuts to display or hide the mesh of my model, which will be useful since we are not using high-poly bake, but are relying solely on topology. The advantage of this workflow is that you can create the volume you want using only texture, so if you want to add a nail or a screw, you can do so quickly.
I then use the "Bake Occlusion" function, which allows me to obtain an Occlusion Map based on my model on a layer. The layer will be set to "Multiply" mode so that it overlaps correctly with our future textures. This is extremely useful because it enhances the volume of the model.
Step 3: The Base Colors
Once the model has been imported and the occlusion created, I will temporarily hide this layer, as it will affect the value of our colors if we try to sample this color later. So I create a new empty layer that will hold the base colors. Using the paint bucket tool, I fill in the volume.
The base color is neither too saturated nor too dark. The idea is to avoid colors that are too dark or too light, even for later steps. The best approach is to imagine a forbidden zone in our color wheel.
For the chair, for example, I applied a brown base for the wood and a gray-blue base for the metal. Now that I have completed these classic steps, I can start working on the texture. With the references I have found, I notice a few wood patterns. The hardest part will be simulating volume on a completely flat surface. So I'm going to play with the shadows and reflections of my object. If I create a hollow, I'll have to think about how the light will act on it, because we're going to paint our light directly since we won't be using any lights later on.
Since I am working with an organic texture such as wood, I need to break up the regularity of my base color. So I create a slap with lots of brush strokes using colors around the brown base. Playing with the blending masks, I found one that allows me to give a bark or wood fiber effect.
Now I create the bright edges that reinforce the silhouette of the object, as with the occlusion layer. These edges are naturally present on the object. I try to imagine how the object is in its environment: has it been moved?, knocked around?, who uses it?, etc. All these questions determine whether the object is loved and how this wear and tear is reflected in the textures.
So now I have a wooden object with a colored base, wood-related patterns, occlusion, and edge lighting for the volumes. I can therefore start working on the details, creating this stylized texture on the chair while sticking to the 70-20-10 rule so as not to overload the object.
I use a very handy feature in 3DCoat that allows me to capture the scene and work on it directly in Photoshop. Here, for the chair, I created a pattern on the right side. I want to save time, so I use this tool and in Photoshop, I copy and paste the area, saving the texture, and the file on 3DCoat automatically updates, and in a few seconds, I have applied the same pattern.
Lightning
It's a lot of theory, especially for colors and lighting, but that's what makes the object interesting. If I want to dig a hole or make an impact, for example, I'll start with line art to define the shape. For color, I use the darkest value depending on the area. I also take the mood into account. Here, I want a tavern lit by Warm Light, like candles, so I work with warm colors for the lights and light areas and apply cool colors for the shadows. That doesn't mean I use orange and blue; both colors can be in the orange-red range, but one will be cooler.
Once I have created my impact, I need to place the light that will bring out the 3D directly. The light bounces off this area and does not create a shadow area. This is how I create effects and details on my textures. Overall, in 3D Coat, I only use a few brushes from the basic kit.
The most important thing, in my opinion, is the pressure of the stylus, which allows me to control the opacity and size of my stroke. With this, I create color gradients using the "V" key. I can also pick up the color under my cursor. By combining the two functions, I can apply a color by reducing the opacity according to my stroke and gradually use "V" to pick up colors little by little and smooth the gradient.
I also try not to smooth my textures too much, so as not to create something too soft. The brush effect is really nice depending on the art direction, so I try to keep this hand-crafted look that gives my texture texture. The most difficult thing, I find, is materials that reflect a lot of light, simulating light on a piece of metal, for example, to show that the object is not rough. I studied several Painting videos to learn how light acts on surfaces.
To enhance certain areas, I switch back to Photoshop, as I find the lasso tool easier and quicker to use. I outline the areas and use a soft brush to apply my color to create a gradient, aiming to add volume through color. To work on HandPaint textures, it's best to take references and observe. Studying colors and light is really important because everything depends on that.
There is no Normal Map, so you have to create the volumes yourself, but on the other hand, as mentioned, you can create anything, and you are not tied to a high-poly bake, so it's faster to create variations or respond to feedback. For example, it's quite simple to transform a clean barrel into a worn barrel with certain details. The Photoshop-linked system for working on textures instantly is so handy, you can use all the modifiers to adjust colors, value curves, etc.
So I have my object with its texture set, and I create two final layers that allow me to add a Light Bump to the texture. Using the "color dodge" blending mode, I paint my lights directly and also apply a gradient from light to dark, because my object will be seen from above, so I use this gradient to accentuate that perspective.
Another way to create textures used for large elements, such as walls, floors, or certain objects that require a tile texture. Here, for example, for our floor, I needed a plank texture. The quickest way is to create a repeating pattern, paying attention to the edges so that the transition is not visible. With this type of texture, we can easily adjust the density of the planks by controlling the size of our UV. So, I start in Blender by creating a plane with a basic UV. I duplicate this same plane to create a model that is easy to use for tiling textures, as each plane shares the same UV.
In 3DCoat, there is no need to create an Occlusion Map this time, as the 3D model is flat. I then apply my base color. For elements such as the floor or walls, I pay attention to the contrast of my colors. These objects need to fade into the background, so they must be less contrasting than the tables and other elements of the decor.
Once the color has been applied, on another layer, I start the line art, in this case, planks. It's quite simple, I use a diagonal pattern to break up the lines in my scene. After that, it's the same texture work, using values to create volume and applying small details, but be careful because it's a repeating texture, so you have to try to hide similar elements. Otherwise, you'll quickly notice that the same impact is repeated.
So I get my plank texture, apply it, and adjust my UVs to get the right size for my scene. To improve all this a little, I need to use the scene's occlusion to affect the texture of the planks, so I'm going to duplicate and create a group of the entire scene. The goal is to have an Occlusion Map of the objects placed in the scene transferred to our floor, so I use the same Bake function in 3DCoat and obtain a texture with its occlusion, which then allows me to locate the furniture directly on the map and add a few details such as wine stains, impacts at the base of the columns, etc.
In Blender, my camera is already positioned from the start, which makes the rest easier. For rendering, I use Eevee render with a transparent background, because I want to work on everything in Photoshop at the end.
In Blender's Shader Editor, to get that "UnlitÇ" look for my scene, I link the Texture Map to "Base Color", set Roughness to 1, and also connect the texture in "Emission" so that the scene's lights are not taken into account.
I then do the following renders: an Unlit render of the textures and a wireframe render. For the turns, I import a new camera that I link to a circle surrounding our scene, so I parent the camera to this circle in order to animate only the circle.
Conclusion
I spent about four to five days on this project. The blockout phase was fairly quick, taking about half a day, as was the modeling phase. It's mainly the texturing phase that takes the most time in this workflow, but it's an enjoyable way of working that you can do while watching a series on the side, so the time flies by.
It's a new process that I don't have much experience with, so the challenge was learning Hand Painted, not spending too much time on small details, and avoiding tunnel vision by working on a single object that isn't particularly important in the scene for hours.
Learning this workflow is really satisfying, and the result is just as satisfying, especially since it's so calming to work this way. I think that's what I liked the most. To learn all this, I looked for several tutorials, particularly on YouTube. There's a channel by Riot Games that offers videos on the workflow, including this one:
It is filled with lots of great information about painting. And another channel that offers painting tutorials on props as well as artist interviews is ZugZUg Art. These videos helped me get to grips with 3DCoat.