3D character creation in Blender: Firefighter – texturing in Substance Painter (Part 3)
Hello! This is the third part of the character creation series, with the focus on creating PBR textures for the character. After UV unwrapping and exporting the model with Blender 2.83 I will show my workflow with Substance Painter to achieve realism. We will end up with textures that are ready to be used with PBR shaders in different applications.
Final character – modeled in Blender 2.83, textured in Substance Painter, cycles render
Good topology is key for a good UV map. I select edge loops and mark them as a seam (Ctrl+E) before unwrapping (U). Working with as few loops as possible is beneficial, but the goal is to minimize stretching and to fill the UV grid without too much space between the islands. I add a grid or fabric texture to the model to adjust the rotation of the islands, but I don’t recommend changing the scale of the islands.
I join similar objects at this point that will share the same textures
I use the Blender texturing mode to create ID maps for all the parts. With the ‘paint mask’ button enabled I fill areas I want to color later with random colors. This way I can switch between edit mode and texture paint mode. I export the textures as PNG images and the 3D model as FBX.
The ID map is essential for adding a variety of materials to one asset without manually painting masks in Substance Painter
In Substance Painter I create a new document and select the FBX file I exported. The character is split up into 8 parts, so 4K resolution for each part is fine. Before starting to bake textures, I check if there are any issues with the model; Painting thin lines across the model reveals if there is too much UV stretching or overlapping UVs. After fixing problematic areas in Blender I add the ID map in the texture set settings.
In the ‘Texture Set Settings’ you can find the ‘Bake Mesh Maps’ button to bake the normal, AO, curvature and thickness maps. For most parts I have exported a low poly (_low) and high poly (_high) mesh, I browse the high definition mesh for baking. With a Dilation Width of 32 and Antialiasing set to 8x8 I do a first bake and check if there are any errors. It can help to change the ‘Max Frontal Distance’ and ‘Max Rear Distance’ and bake again.
In the 3D viewport you can preview the mesh maps
I use the ID maps created in Blender to quickly add masks to fill layers, this way I can keep changing the color palette later. At this stage I try not to use more than 6 colors for each part of the model. When the color harmonies are working, I add more variation and accent certain details by introducing more colors. But pay attention to limit your color palette and have areas of visual rest.
It can help to change the lighting of the scene or just look at the base color when changing colors
Metalness, Roughness, Height, Normal
After playing with the colors of the parts I switch to the material view and change the other parameters of the layer. Changing the Metalness and Roughness of the parts adds a lot of realism to the model, especially when adding imperfections later. For some parts I also add an Opacity channel in the ‘Texture Set Settings’ to add transparency.
Just like in Photoshop it’s a good idea to experiment with different blending modes
Substance Painter comes with many great maps that include patterns, grunge and procedural textures. These can be used to change the roughness or height of a fill layer, for further tweaking I use the levels adjustment. I replace some colored areas with smart materials that use the baked maps, these can be a good base for adding imperfections later. I also used Substance Designer to create some very basic fabric patterns.
Just like in Photoshop you can use adjustment layers like ‘Levels’ or ‘Blur’ to modify the mask
I use Photoshop to create specific signs and decals and apply them to the model in Substance Painter. Small details can also be painted directly on a regular paint layer. You might have noticed, my workflow starts with procedural techniques, but the more I finalize the textures I work with regular layers and paint very specific parts.
It’s tempting to add small details everywhere, but areas without a lot of variation are crucial for a balanced design
Dust, dirt, damage
These final layers make the textures realistic. But it’s important not to overdo it, always look at references and observe where imperfections occur. I use fill layers with specific material properties (diffuse dust material, dirt texture, and so on.) and use masks to control the appearance on the texture. For the wet parts I only change the roughness to a very low value and try different lighting setups to see the reflections that are created. You can work with smart masks as a base to control the areas that are covered with dirt or dust and then erase parts to avoid visible tiling. Most imperfections for this model are painted by hand though.
Keep in mind the environment the model will be used, you can export different versions (dirt, water, damage) for different scenes
Final touches, export
I export the textures and add them to the model, set up some lights and render different views. During this process I always find small mistakes, areas that have too little or too much detail, distracting colors or reflections. In part 4 of this tutorial I go into some details on posing, lighting, rendering and finalizing the image.
Top tip - Composition, design
After modeling the design process is not done. The distribution of colors, values, shapes, patterns and material properties can change the appearance of the model a lot. Look at the model from a distance and pay attention to the distribution of detail