Matching By Name is the name of a filtering method that can be used in Substance Bakers to isolate low poly and high poly meshes based on their name.
This functionality is very useful to avoid geometry bleeding over each other during the baking process to achieve clean textures. It avoid having to move away meshes (often referred as "exploding") to achieve the same result.
When to Use Matching By Name
|Use case||Mesh||Matching By Name Off||Matching By Name On|
Normal map baking with mesh bleeding.
In this example the helmet on top on the head of the character bleeds onto the character face.
By enabling Matching By Name we are able to ignore the helmet and bake the face properly.
This result is based on the main Match setting.
Ignore Backface for floating geometry.
In this example the "buttons" at the top of the box are floating geometry, they are not connected to the high poly mesh. Therefore they will cast shadows by default on the box underneath them which will show the geometry border.
By enabling Matching By Name for the Ignore Backface setting we are able to bake the ambient occlusion while ignoring the area under the buttons to make it look like one singular box.
This result is based on the use of the Ignore Backface setting.
How Matching By Name Works
The Matching By Name system works by reading the geometry name in both the low and high poly meshes and using a keyword (the suffix) to identify/match the names. By default the bakers use the specific suffix but they can changed (see below).
The current suffixes supported are:
|Suffix Type||Default Value||Usage|
|High Poly||_high||Used to isolate the name of the high poly mesh to match against the low poly one.|
|Low Poly||_low||Used to isolate the name of the low poly mesh to match against the high poly one.|
Used to ignore backfaces for bakers using secondary rays, such as the Ambient Occlusion.
This suffix should be present on the high poly meshes only, ex: mesh_high_ignorebf
Some rules to take into account to make this feature work properly:
- Matching By Name has to be enabled in Common Parameters as it is off by default.
- A secondary Matching By Name setting might be enabled in some bakers (such as Ambient Occlusion) because they produce secondary rays.
- Matching is case sensitive, this means a mesh named "Vela" won't match with another one named "vela".
- Multiple meshes can be matched together based on where the suffix is present in the geometry name.
Below are examples of how the matching may work (using the default suffix):
|Low Poly Name||Will Match With High Poly||Will Not Match With High Poly|
How to setup the bakers
Enabling Matching By Name
Matching By Name can be enabled in the Common Parameters of the Baker settings:
Changing the Suffix Names
The default suffixes are _low and _high and can be changed the following way:
- Substance Painter: In the Baking window, within the common parameters.
- Substance Designer: In the Project settings, under the Bake settings.
High-poly meshes from zBrush
Since zBrush 4R7 you can export as FBX which allow to skip this setup.
Because of the way Pixologic zBrush export meshes and name them, we made a special case in the bakers of Substance Painter to handle them.
Some things need to be configurated before those files will be able to work in Substance Painter with the matching by name.
Note however that zBrush rename the first subtool when you save your ztl file. So be sure to check your meshes names before exporting.
zBrush doesn't write the mesh names inside the OBJ. Therefore Substance painter will read the filename of the OBJ instead.
To be sure that Substance Painter recognize the OBJ as coming from zBrush, the "group" (Grp) parameter needs to be disabled in the export settings of each subtool before exporting to OBJ.
Once done, name the obj as the mesh that you want. For example : body_high.obj