When working in Substance Painter, I like to set up my objects so that they are assigned with separate texture sets. When each object is assigned it’s own texture set, you can easily show/hide the object(s) in the scene that are attached to it. This can be particularly useful if you need to paint on part of an object that is obscured by another. For example, eyeballs and teeth hidden under a face mesh or armour panels over the top of a base-mesh.
The downside of working in this way is that when you have finished texturing, all of these maps have to be recombined. Even if the separate texture sets share the same UV space, Substance Painter does not combine these maps together during export.
This could mean that if you have 10 objects / texture sets, each with a Diffuse, Normals, Specular & Glossiness map, that’s 10 x 4 = 40 maps which have to be manually combined in Photoshop – a time consuming task.
The following tutorial is a method that I have been developing over time, recently made much simpler with the 2.3.1 release of Substance Painter. In addition to that, I’m also using Substance Designer 5.4.0 and Autodesk Maya 2017.
In the image below, I have created 3 objects in Maya called ‘Left’, ‘Middle’ and ‘Right’. They are closely positioned and parts of the geometry fit together.
All of the objects share the same UV space, as shown below.
Using an exploded view, you can see that the objects slot together and I will need to be able to paint on those concealed areas in Substance Painter later.
Therefore, each object needs to be assigned it’s own material, preferably with a unique colour.
In the image above I have named the materials ‘LeftGeomtery’, ‘MiddleGeomtery’ and ‘RightGeomtery’ and have assigned them to the ‘Left’, ‘Middle’ and ‘Right’ objects accordingly.
Exporting from Maya:
Select all of your objects and export them as a single FBX. (Exporting as FBX is important if you want to bake ID maps later in the process)
Open Substance Painter and set up a new project, click ‘Select’ to import your FBX and set the texture resolution to 4096×4096.
I have added a few simple materials to each object as seen below.
Each object has been automatically assigned it’s own ‘TextureSet’ and is named after the materials which were assigned in MAYA. (‘LeftGeomtery’, ‘MiddleGeomtery’ and ‘RightGeomtery’)
The radio buttons can be toggled to determine each objects visibility in the scene.
Now that the left and right geometry have been hidden in the above image, I can texture the concealed sections of the middle object. Adding a red and blue triangle to show where the other two objects are to be attached.
If you decide not to hide the other objects when making a brushstroke, the other objects will automatically be hidden until the brushstroke ends. However, if you do not like this behaviour, you can change it here:
Edit → Settings → General → ‘Only display the selected material when painting’
– If this setting is unchecked, all other texture set objects will remain visible during each brushstroke.
Now that the texturing is finished, it is time to export the textures and combine them.
I have created my own export ‘Configuration’ template for exporting a Diffuse, Normals, Specular and Glossiness map from Substance Painter.
Each map has an alpha channel with the ‘Base Colour’ inserted into the ‘A Channel’. This is an important step for exporting maps when following this method, as the exporter will only render the base colour UV islands and leave the rest of the map transparent.
We have used our own template in this tutorial. The export template is available in the ‘Supporting Assets.zip’ file, which can be downloaded from here:
It is called: ‘Tutorial_DigiAdam.spexp’ and should be copied to this location:
‘C:Users”Your Computer Name”DocumentsSubstance Painter 2shelfexport-presets’
Set the map location to: ‘..Substance_CombinerMaps’, as this will copy directly over the template maps, meaning that they will auto-load into Substance Designer later in the process.
Set the file format to ‘PNG’ & ‘8 bits’, as this will be able to store image transparency.
Under ‘config’ select your template.
‘Common Padding’ needs to be set to ‘Dilation + Transparent’ with a default setting of ’16’ – adjust depending upon how much padding you require.
Make sure that the map sizes are set to 4096×4096 and ‘Export’.
"Now, jump over to Substance Designer and open the ‘Combine_Maps (Diff_Norm_Spec_Gloss).sbs’ file provided in the ‘Supporting Assets.zip’."
The graphs are split up into Diffuse, Normals, Specular and Glossiness.
As the textures were exported to the ‘..Substance_CombinerMaps’ folder, they will automatically load into Substance Designer and be visible under the ‘Resources’.
Taking a closer look at the ‘Diffuse’ graph, there are 3 diffuse textures being fed in, the first 2 maps are combined using a ‘Blend’ node, which is then combined with the 3rd map using the same method. Because the maps were exported with transparency, they can be layered one on top of the other without adjusting the blend mode.
Finally, the combined maps are blended with a ‘Uniform Colour’ node, which is used to set the background colour of the map. (Without it the background will be transparent)
NOTE: If your own projects have more texture sets than in this example, simply link in the additional maps and add more blend nodes to the graph.
Adjust the template as you see fit.
I hope you have found this tutorial useful and possibly given you some ideas for your own map combining workflows.