Substance Painter: Adding Normals To Textures Like A Pro

how to put normals on textures in substance painter

Substance Painter is a 3D painting software that allows users to create and edit textures for use in games, films, and other 3D projects. One of the key features of Substance Painter is its ability to work with normal maps, which are used to add detail and depth to 3D models. In this topic, we will explore how to put normals on textures in Substance Painter, including the steps to create, import, and export normal maps, as well as some tips and tricks to achieve the desired results. We will also discuss some common issues that users may encounter and provide solutions or workarounds to ensure a smooth workflow.

Characteristics Values
Default Texture Set setting Combine
Texture Set setting to paint/override normal map Replace
Normal map location In the "normal" slot via the properties panel
Blending mode of the normal channel Normal map details
Blending mode for bitmap with no alpha Normal
Normal map format DirectX (Y-) normal map
Normal map format for OpenGL (Y+) Change color space to OpenGL normal
Environment map format for Substance .hdr or .exr image in latitude/longitude (latlong) format
Baking high res to low res normal maps Difficult; vertex normals and tangents must match exactly
Testing normal map Bake a high-res cube with hard normals onto a low-res cube with soft normals
Converting height to normal map Add Height to Normal filter to layer, adjust Height Depth slider
Increasing normal map intensity Using levels or contrast filter

cypaint

Set the normal mixing setting to 'replace'

When working with Substance 3D Painter, the default setup of a project does not allow you to paint over the baked normal map. This is because the normal channel and the baked normal are computed separately. To paint over the baked normal map, you must change the Texture Set settings.

By default, a Texture Set is created with the normal mixing setting set to 'combine'. To override or paint the normal map, you need to change this setting to 'replace'. This indicates to Substance 3D Painter that it should only consider the normal channel and the height channel when generating the final normal map.

To do this, first create a new fill layer. Then, put the baked normal inside the "normal" slot via the properties panel. This will make the normal map disappear from the viewport, but this is expected.

Additionally, you can create a new layer (regular or fill) and change its blending mode to "normal" for the normal channel. This will cause anything painted on the normal channel to replace the baked normal map on the layer below.

It is important to note that some users have reported that using the normal map mixing mode set to 'replace' and setting up the normal texture as a fill layer produces weird results. This includes textures with harsh gradients and issues with the normal map looking smoother or duller than expected.

cypaint

Load a normal resource in the normal slot of the material section

When loading a normal map into the slot of a material, you can change the default colour space. This setting can be used to specify the normal map format. By default, a DirectX (Y-) normal map is expected. Therefore, when using an OpenGL (Y+) normal map, click on the arrow to open the colour space menu and change the bitmap's colour space.

To load a normal resource in the normal slot of the material section, you must first create a new fill layer. Then, put the baked normal inside the "normal" slot via the properties panel. Remember to change the default tiling of the fill layer if it is not set to 1. The blending mode of the normal channel on any new layer is set to "Normal map details" by default. It is preferable to use the fill layer as the base, so choose the "normal" blending mode. This will replace everything below, including the default colour of the shader.

When importing a normal map texture into Substance, ensure your normal map's colour space setting is set to OpenGL normal and not auto. To export your textures, go to File -> Export Textures. This will open the Export window. Select Lens Studio in the Config drop-down menu, choose your desired export directory, and click export. This will export three textures ready to be added to Lens Studio.

You can also import a resource into Painter by dragging and dropping it into the Assets window. This will open the Import resource window, allowing you to control where to put the resource.

cypaint

Convert height into a normal map

When working with Substance Painter, it's important to understand the difference between a height map and a normal map. A height map contains the height information of an object, while a normal map contains the normalized angle of the surface, controlling how light interacts with it.

To convert height into a normal map in Substance Painter, follow these steps:

  • Start by applying your base texture as a height map to add depth to your object.
  • Go to the Layers Palette and switch from Base Color to Height. This will change the blending mode, indicating that you're working with height information.
  • To ensure that the height details are baked into your normal map upon export, add a Height to Normal filter to your layer. Click on the Magic Wand icon, then click on "No Filter" in the Properties section, and search for "height".
  • Select the half-checker/half-purple icon that likely represents "Height to Normal".
  • Adjust the settings of the filter to fine-tune the appearance of your object. Use the Height Depth slider to make your object less intense and more natural-looking.
  • Now, when you export your textures, the height details will be baked into the normal map, giving your object a more realistic, bumpy appearance.

It's worth noting that Substance Painter automatically combines height and normal map information upon export. This means that any changes made to your height map will also impact the normal map. If you want to export the normal map without the height information, you can change the output settings to export the "normal clean" option.

cypaint

Adjust the normal map's colour space setting

When using Substance 3D Painter, the default normal map format is DirectX (Y-). This setting cannot be changed using the project setting. However, you can adjust the normal map colour space setting by clicking on the small arrow to open the colour space menu and changing the colour space of the bitmap. This is necessary when using an OpenGL (Y+) normal map.

Substance 3D Painter cannot automatically determine whether a map is DirectX or OpenGL unless the map is tagged. Therefore, it defaults to DirectX, which is the most common choice. When using an OpenGL normal map format, you may need to manually set the colour space for each layer.

To import a normal map texture into Substance, ensure that the normal map's colour space setting is set to OpenGL normal and not auto.

cypaint

Increase normal map intensity

To increase normal map intensity in Substance Painter, there are a few methods you can try. One approach is to adjust the settings by overriding the default normal mixing setting, which is set to "combine". Change this setting to “replace” to paint over the normal map. This will cause the normal map to disappear from the viewport, but this is expected.

Additionally, you can create a new fill layer and place the baked normal inside the "normal" slot in the properties panel. Ensure that the default tiling of the fill layer is set to 1. By default, the blending mode of the normal channel on any new layer is set to "Normal Map Details". However, you can choose a different blending mode, such as “normal”, which will replace everything below, including the default color of the shader.

Another method to increase normal map intensity is to use a “Normal Intensity” node if you have Substance Designer, which is available in a free education edition. Alternatively, you can try increasing the contrast of the red and green channels using image manipulation software such as Photoshop.

When importing a normal map texture into Substance, ensure that your normal map's color space setting is set to OpenGL normal and not auto. This is important to ensure compatibility with the software.

It is worth noting that baking high-res normal maps onto low-res models can produce varying results in different software packages. The vertex normals and tangents must match exactly, but sometimes packages will calculate their own tangents, leading to discrepancies.

Frequently asked questions

To import a normal map texture into Substance, you need to ensure that your normal map's colour space setting is set to OpenGL normal and not auto.

To convert height into a normal map, add a Height to Normal filter to your layer. Then, adjust the Height Depth slider to tweak the settings of the filter.

You can increase normal map intensity by using levels on a normal map with an upper slider or by using a contrast filter to increase contrast.

Load a normal resource in the Normal slot of the Material section of the current painting tool.

Written by
Reviewed by
Share this post
Print
Did this article help you?

Leave a comment