Painting Normal Maps: A Substance Painter Guide

how to paint normal map onto model substance painter

Painting a normal map onto a model in Substance Painter requires some technical steps. The default setup in Substance 3D Painter does not allow painting over the baked normal map. To enable this, the Texture Set setting must be changed to replace instead of combine. This makes the normal map disappear from the viewport, but this is expected. A new fill layer must then be created, and the baked normal is placed inside the normal slot via the properties panel. Painting details can then be done directly on the mesh, similar to Height Map Painting but with the added precision of a baked normal. When loading a normal map into the slot of a material, the default colour space can be changed, which is useful when using an OpenGL (Y+) normal map.

Characteristics Values
Default setup Does not allow painting over the baked normal map
Behaviour change Via Texture Set settings
Texture Set Created with normal mixing setting set to combine
Override/paint normal map Set normal mixing setting to replace
Normal map Disappears from viewport
Mode change to replace Substance 3D Painter only takes into account the normal channel and the height channel
New fill layer Put the baked normal inside the "normal" slot via the properties panel
Painting details Paint normal map data directly on the mesh
Normal resource Load in the Normal slot of the Material section of the current painting tool
Default colour space DirectX (Y-) normal map
OpenGL (Y+) normal map Click on the arrow to open the colour space menu and change the colour space of the bitmap
Height map Converted to a normal map when exporting
Height map issues Use grayscale image as a bump map in other 3D software like Blender or Maya
Height data Combined with the existing normal map when you export
Sharp edges Use an appropriate shader to render an object correctly

cypaint

Change Texture Set settings to 'replace'

To paint a normal map onto a model in Substance Painter, you'll need to adjust some settings and utilise features such as Texture Sets and layers. Here's a step-by-step guide:

  • Change Texture Set Settings to "Replace": By default, Substance 3D Painter separates the normal channel and the baked normal, not allowing direct painting on the baked normal map. To change this behaviour, go to the Texture Set settings and change the normal mixing setting from "combine" to "replace". This will indicate to Substance Painter that only the normal and height channels should be considered when generating the final normal map.
  • Create a New Fill Layer: After changing the Texture Set settings, create a new fill layer. This can be done by opening the Layers Panel and selecting "Add Effect", followed by "Add Fill" to add colour to the layer.
  • Insert the Baked Normal into the "Normal" Slot: With the new fill layer created, you'll need to put the baked normal map inside the "normal" slot. This can be done via the properties panel.
  • Load a Normal Map Resource: In the Material section of your current painting tool, load a Normal resource into the Normal slot. This will allow you to paint with normal map data directly on the mesh.
  • Adjust Blending Modes: Normal maps have their own blending modes in the layer stack. When loading a normal map into the slot of a material, you can change the default colour space. This is useful for specifying the normal map format, as Substance Painter expects a DirectX (Y-) normal map by default. If you're using an OpenGL (Y+) normal map, open the colour space menu and make the necessary changes.
  • Bake Textures: Before texturing, painting, or applying materials, it's essential to bake the textures. Baking enhances the quality of texturing by utilising filters, Smart Materials, and Smart Masks.
  • Paint and Adjust Textures: Substance Painter offers a variety of brushes and textures to work with. Use the Shelf panel to explore different textures and the Properties panel to adjust brush options. You can also rearrange the order of layers to match your desired design.
  • Export Textures: When you're ready to export your work, go to the File menu, select "Export Textures", and then navigate to the Output Templates tab. Duplicate the Unity Universal Render Pipeline (Metallic Standard) export setting to prepare your textures for use in Unity.

By following these steps, you'll be able to effectively paint a normal map onto your model in Substance Painter, utilising the appropriate settings and features.

cypaint

Create a new fill layer

To create a new fill layer in Substance Painter, you must first drag and drop resources from the shelf to create layers. You can also add a new fill layer by going to Painter > Features > Effects > Fill.

A fill layer is different from other layers as it cannot be painted on. Instead, you can load a material into it to fill the channels. You can manipulate the transformation to repeat the material. For example, you can hide and unhide layers, put them into folders, and change their opacity and blending mode. The Layer Stack displays layers with a specific hierarchy, with the layer at the bottom drawn first on the mesh, and the layer on top following. The layer at the top of the stack is the last item, while the layer at the far bottom is the first one.

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 since, by default, a DirectX (Y-) normal map is expected. Therefore, when using an OpenGL (Y+) normal map, you must change the colour space of the bitmap.

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/paint the normal map, this setting must be changed to 'replace'. The normal map will disappear from the viewport, but this is expected. Changing this mode to 'replace' indicates to Substance Painter that it should only take into account the normal channel and the height channel when generating the final normal map.

cypaint

Use a normal map as a heightmap

Painting a normal map onto a model in Substance Painter requires a few steps. Firstly, it's important to understand the difference between a height map and a normal map. A height map contains the height data and is used for displacement or parallax occlusion, while a normal map contains the normalized angle of the surface and controls the angle that the lighting engine interprets.

When using Substance Painter, the height you apply through textures, painting, or any other means will be baked into the normal map when you export your textures. This means that any details added to your height map will also impact the normal map. If you wish to add height details, you can use the height channel, which is easier to work with compared to normal maps.

To use a normal map as a height map, you can follow these steps:

  • Load a Normal resource in the Normal slot of the Material section of your current painting tool.
  • Change the default color space by clicking on the small arrow to open the color space menu. This is necessary when using an OpenGL (Y+) normal map to ensure the correct format.
  • Painting with a normal map is similar to height map painting, but with the added precision of a baked normal.
  • Utilize the blending modes available in the layer stack for normal maps to fine-tune your results.
  • If you need to paint over the baked normal map to hide details or fix issues, adjust the Texture Set settings to "replace" instead of the default "combine." This will make the normal map disappear from the viewport, but it is expected behavior.
  • Create a new fill layer and place the baked normal inside the "normal" slot through the properties panel.

It is important to note that processing a normal map to a height map can result in a loss of fidelity, and this step is generally not preferred by game developers. Additionally, some users have reported challenges in achieving the desired results when using both Substance Painter and Blender, as the height may not transfer accurately between the two programs.

cypaint

Convert a height map to a normal map

When it comes to painting normal maps onto a model in Substance Painter, there are a few methods and considerations to keep in mind. Firstly, understand that the default setup in Substance 3D Painter does not allow painting over the baked normal map. To enable this feature, you need to change the Texture Set settings. Specifically, set the normal mixing setting to "replace" instead of "combine". This will instruct Substance Painter to consider only the normal channel and the height channel when generating the final normal map.

Now, to convert a height map to a normal map in Substance Painter, follow these general steps:

  • Apply the base texture as a height map to your object.
  • Go to the Layers Palette and switch from Base Color to Height.
  • Add a Height to Normal filter to this layer. Click on the Magic Wand icon, then on "Filter", and search for "height".
  • Adjust the settings of the filter to tweak the strength. Use the Height Depth slider to make the object less bumpy.
  • Export your maps, and the height detail will be baked into the normal map.

It's important to note that while height maps and normal maps can be used interchangeably in some cases, they serve different purposes. A height map contains the height information, while a normal map contains the normalized angle of the surface. When you export your textures, the height data will be converted into a normal map. Additionally, some users have reported that processing a normal map to a height map can result in a loss of fidelity, so it's recommended to work with height data directly in Substance Painter whenever possible.

Keep Your Paint Moist: Tips for Artists

You may want to see also

cypaint

Use Material Maker's Flatten brush

To paint a normal map onto a model in Substance Painter, you must first understand the relationship between height maps and normal maps. While it is possible to paint height maps directly in Substance Painter, the height data is converted into a normal map in the background and blended with the mesh's normal map. This means that any changes made to the height map will be reflected in the normal map.

To paint a normal map directly, you need to change the default setup of the project. By default, Substance 3D Painter computes the normal channel and the baked normal separately, not allowing users to paint over the baked normal map. To override this, go to the Texture Set settings and set the normal mixing setting to "replace" instead of "combine". This will indicate to Substance Painter that only the normal channel and the height channel should be considered when generating the final normal map.

Now, create a new fill layer and put the baked normal inside the "normal" slot via the properties panel. You can then use the Material Maker's Flatten brush to paint your normal map. The Flatten tool calculates a flattening plane based on the average normal of the surface under the brush. If the flattening plane is locked, it will be set at the point where you first start the Flatten operation. However, you can unlock the flattening plane so that it dynamically updates as you drag the brush over the surface.

It is important to note that processing a normal map to a height map can result in a loss of fidelity, which is why game developers prefer to work with height maps instead. When exporting maps from Substance Painter, the height data will be converted into a normal map. This allows you to use your normal map libraries and import them onto the mesh to paint directly on them.

Summer Fun: Painting with a Twist's Camp

You may want to see also

Frequently asked questions

Written by
Reviewed by

Explore related products

Share this post
Print
Did this article help you?

Leave a comment