Matching by Name




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

Examples

Use caseMeshMatching By Name OffMatching 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 TypeDefault ValueUsage
High Poly_highUsed to isolate the name of the high poly mesh to match against the low poly one.
Low Poly_lowUsed to isolate the name of the low poly mesh to match against the high poly one.
Ignore Backface_ignorebf

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 NameWill Match With High PolyWill Not Match With High Poly
  • body_low
  • body_high
  • body_high_top
  • body_high_1
  • body_high_2
  • body-high
  • body_top_high
  • Head_low
  • Head_high
  • head_high
  • Leg_low_top
  • Leg_high
  • Leg_high_top
  • Leg_high_high_top
  • Leg_top_high

How to setup the bakers

Enabling Matching By Name

Matching By Name can be enabled in the Common Parameters of the Baker settings:

SoftwareSetting Configuration
Substance Painter
  1. Open the Baking Window (via the Texture Set Settings).
  2. Display the Common Parameters.
  3. Change the setting Match from "Always" to "By Mesh Name".
Substance Designer
  1. Open the Baking Window (by right-clicking on a linked mesh in the Explorer Window).
  2. Change the setting  Match  from "Always" to "By Mesh Name".

Changing the Suffix Names

The default suffixes are _low and _high and can be changed the following way:

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