User Guide Cancel

Tangent Space | Substance 3D bakers

  1. Substance 3D home
  2. Home
  3. Getting Started
    1. What is Baking?
    2. Software interface
      1. Substance 3D Painter
      2. Substance 3D Designer
      3. Substance 3D Automation Toolkit
    3. Availability per software
    4. Compatible 3D software
    5. Tutorials
  4. Bakers settings
    1. Common Parameters
    2. Ambient Occlusion
    3. Ambient Occlusion from Mesh
    4. Bent Normals from Mesh
    5. Color Map from Mesh
    6. Convert UV to SVG
    7. Curvature
    8. Curvature from Mesh
    9. Curvature from Mesh (deprecated)
    10. Height Map from Mesh
    11. Normal Map from Mesh
    12. Opacity Mask from Mesh
    13. Position
    14. Position map from Mesh
    15. Thickness Map from Mesh
    16. Transferred Texture from Mesh
    17. World Space Direction
    18. World Space Normals
  5. Guides
    1. Error and Warning Messages
    2. Performances and optimizations
    3. Triangulating before baking
  6. Features
    1. Geometry Cache
    2. GPU Raytracing
    3. Matching by Name
    4. Tangent Space
  7. Common questions
    1. How to export the baked maps?
    2. Is dithering applied to baked textures?
    3. Should I enable "Compute tangent space per fragment"?
    4. What are Assbin files?
    5. What is the bit depth of baked textures?
    6. What is the difference between the OpenGL and DirectX normal format?
    7. Why are there strange stretches in my textures after baking or exporting?
    8. Why is Matching by Name not working with Ambient Occlusion/Thickness?
    9. Why is my mesh fully black after baking?
  8. Common issues
    1. Aliasing on UV Seams
    2. Baker output is fully black or empty
    3. Baking failed with Color Map from Mesh
    4. Black shading cross are visible on the mesh surface
    5. Mesh parts bleed between each other
    6. Normal map has strange colorful gradients
    7. Normal texture looks faceted
    8. Seams are visible after baking a normal texture
    9. Seam visible on every face
    10. Texture baked outside of Substance software looks incorrect

Tangent Space

Substance Bakers can either load the Tangents and Binormals present on the low-poly mesh or recompute them. When recomputing them it is possible to define a custom Tangent Space algorithm (by default it is MikkTSpace).

Tangent Space Plugins List

Substance Painter

In Substance Painter the Tangent Space plugin cannot be changed, it will always be MikkTSpace. However there is a parameter to alter slightly its behavior to make it compatible with other applications:

Parameter Compatible Application
Compute tangent space per fragment: Disabled

Compatible with xNormal, Unity 5.3 or newer.

Compute tangent space per fragment: Enabled

Compatible with Unreal Engine 4, Blender and Unity HDRP workflow.

Substance Designer

Substance Designer supports the following algorithm:

Filename Description
mikktspace.dll

MikkTSpace, Tangent Space algorithm based on Morten S. Mikkelsen work.

Compatible with xNormal, Unity 5.3 or newer.

mikkunrealtspace.dll

MikkTSpace, Tangent Space algorithm based on Morten S. Mikkelsen work.

Compatible with Unreal Engine 4, Blender and Unity HDRP workflow.

unitytspace.dll Tangent Space algorithm based on Unity 4.
Note:

It is possible to write a custom Tangent Space plugin. A header file named tangentspaceplugin.h is available in the installation folder under Substance Designer/SDK/tangentspace and can be used as an interface.

Setting a custom Tangent Space

Substance Painter

Substance Painter does not support custom Tangent Space plugins at the moment. This means that if Tangents and Binormals are not present on the low-poly mesh (used to create the project) they will be recomputed based on the MikkTSpace algorithm.

Substance Designer

To set the tangent space algorithm in Substance Designer follow these steps:

  1. Choose Edit > Preferences.

  2. Click on Projects.

  3. Navigate to the General tab. Scroll until the section 3D Scenes is visible.

  4. Click on the three dots (...) to load a custom plugin.

Substance Automation Toolkit

When baking with the Automation Toolkit it is possible to specify the Tangent Space plugin with a specific command line argument:

sbsbaker normal-from-mesh --tangent-space-plugin "C:/Substance Designer/plugins⁄tangentspace⁄mikktspace.dll" ...

Get help faster and easier

New user?