Shoe texturing with Substance Painter


In this second part of the sneaker creation tutorial I will show how to use the low-poly and high-poly shoe we created in part 1 for unwrapping, baking, and texturing. I use Substance Painter to create realistic PBR textures that can be used in cycles, eevee, or other render engines.

3d sneaker models

PBR textured shoe variations, created in Substance Painter

UV unwrapping

Before exporting the model, you need to create a UV map in Blender. The goal is to lay out the low-poly 3D model on a 2D square, without overlapping parts. You can turn the selected edges into seams with the shortcut Ctrl+E 'mark seam' and press 'U' to unwrap the selected geometry. In the UV editor (Shift+F11) you can change the position and scale of the islands. Avoid stretching (you can add a checker texture to check), overlapping parts, and too much empty space. It's also a good idea to keep the texture resolution of all the parts similar.

uv unwrapping 3d model shoe

Final UV layout with as much space covered as possible, while keeping the island scale even

ID Map

I like to create an ID map before starting to texture the model. This is basically a colored image with random colors assigned to the parts you want to color in Substance Painter. It enables you to easily select areas like the shoelaces that are made up of several pieces. In Blender's texturing mode you can turn on the face mask button to only paint on the parts you selected in edit mode. I use the fill tool and switch between edit and texturing mode to select parts. I save the texture in a folder to use it in Substance Painter later on.

sneakers rendering model

An ID map simplifies masking areas in Substance Painter, this is especially useful for creating color variations of the same model

Export, Import

For a clean bake it's beneficial to split your high-poly and low-poly mesh into several parts. This way baking problems at intersecting areas can be avoided. The naming of the parts is important; I used the suffixes '_H' and '_L' for the high-poly and low-poly parts. I add the same material 'Shoe' to all low-poly objects and export the selected objects as FBX files. Then I select the high-poly mesh and export it as a separate file. In Substance Painter I choose the low-poly FBX as the file, set the document resolution to 4096, and choose the 'PBR - Metallic Roughness (allegorithmic)' template.

high poly mesh 3d model


In the texture set settings you can find the 'Bake Mesh Maps' button, where you can set up the parameters for baking. I use an output size of 4096 and a dilation width of 32. For cleaner maps you can also choose an antialiasing option, in my case Subsampling 8x8. Below the antialiasing option there is an important setting called 'Match' that you can change to 'By Mesh Name', this is for baking the separate object parts. Add the suffixes you used when naming the meshes. In the 'High poly parameters' you can select your high definition mesh and click on 'Bake Mesh Maps'. If there are areas with baking problems, you can change the 'Max Frontal Distance' and the 'Max Rear Distance'.

baking map setting 3d render

These baked maps are the foundation for texturing

Using the ID map to colorize the model

I use fill layers as a base for texturing, this makes changing colors of specific parts later on easier. Here the ID map comes in handy: drag and drop the ID map in the Substance shelf and import it as a texture. Then you can drag it to the ID slot in the texture set settings. Now when creating masks for fill layers you can use the 'add mask with color selection' option and pick a color. This way I assigned colors to the sole, the shoelaces, the inside and the different layers of fabric.

base colouring shoe model render

The advantage of this is that you can always change the colors later and create an infinite number of variations.

Changing PBR parameters

Although for most fill layers I only change the color, some parts are metallic or have a different roughness. In Substance Painter this is very easy to adjust, you just change the 'Metallic' or 'Roughness' values in the fill layer properties.

properties setting 3d shoe model

You can also use noise, clouds, or grunge textures at this stage to change the roughness


The model looks very clean still. I like to add some imperfections to give the model a used look. At this stage it's important to look at reference pictures that show different levels of dirt, dust, or scratches.

reference pictures texturing models

You can use the baked maps like AO and curvature as a mask, or you can use the smart masks that come with Substance Painter. But remember that smart masks are only a starting point; I always paint parts of the mask manually. Adding a bit of height and roughness variation really enhances the look of the model.

properties material mode metals

Tip: group layers to be able to adjust the overall strength of an effect easily

Color variations

After adding some small logos to the model, I export the PBR textures in 4K resolution. Then I do a test render in Blender and check for areas that could be improved. When I'm satisfied with the result, I change the colors of the fill layers to create a new color variation; here it helps to browse some online stores to get inspired for some color schemes. For this model I created 10 variations, for your render you can choose the one you like the most.

color variations for shoes models

Shader setup

I prefer the cycles render engine in Blender for still images, but you can render in Eevee, Unreal Engine, Marmoset Toolbag, or any other renderer. The shader for this model is very simple; I use the principled node in Blender and connected the PBR textures. The 'Node wrangler' add-on makes this process very simple: with the Principled BSDF node selected, press ctrl+shift+T and select your textures. It will automatically connect the textures and change the color space to 'Non-Color' for all maps except for the BaseColor. If you want you can add some subsurface scattering or adjust the roughness using a color ramp.

pbr texturing models shaders

It helps to add lights to your model and change the shader parameters so it looks good from every angle and lighting position


For the final renders I added a ground plane with a gradient to make the edges transparent. A sun lamp and an area lamp with some pattern to block the light was fine for the lighting. I also added a soft, blue rim light behind the model to separate it from the background. To make the scene more interesting, I created some trousers in Marvelous Designer. I used a transparent background and rendered the images at 4K resolution with 1000 samples.

marvelous designer 3d modeling

I always spend some time experimenting with the lighting, for this scene I tried 8 different setups with different HDRs and lamps

Top Tip 1 - Procedural workflow

In 3D, there are parts of the process where it makes sense to use a non-destructive workflow. I like texturing in Substance Painter because I can always change the colors, the level of dirt, dust, the position of the logo, and so on.

Top Tip 2 - Presenting your model in a nice way

You spent all this time tweaking the topology, creating perfect UVs and textures, so don't use a screenshot as a final image. Add some additional parts to the model, add a ground, a background, or try to tell a little story with your image. Don't underestimate the importance of lighting, composition, and presentation.

trainer shoes 3d modeling

Related Links

Part one of this tutorial "Shoe modeling with Blender"

Model of Sketchfab

Software used:

Fetching comments...

Post a comment