How do you blend two normal maps in Unreal Engine 5.7?

Blending multiple normal maps in Unreal Engine is a powerful way to add layered surface detail to your materials.

In this tutorial, you’ll learn how to:

  • Blend two normal maps together correctly
  • Add base color and roughness textures
  • Control the intensity of each normal map independently
  • Normalize the result to avoid lighting artifacts
  • Expose controls through a Material Instance

Step 1 — Prepare the Textures

Before starting, you will need the following textures:

1. Micro Detail Normal Map – Small surface detail such as concrete grain or fine bumps.

A normal map is a texture mapping technique in 3D computer graphics that simulates the illusion of surface depth, bumps, and dents without altering the actual geometry of a 3D model.

2. Macro Detail Normal Map – Larger forms such as panels, grooves, or broad surface shapes.

3. Base Color (Albedo)

An albedo map (also known as a base color map) is a 2D texture that defines the pure, intrinsic color of a surface material without any baked-in lighting, shadows, highlights, or reflections.

4. Roughness Map

A roughness map is a grayscale texture used in Physically Based Rendering (PBR) to define the microsurface variations of a material, determining how light scatters or reflects off its surface.

Step 2 — Create the Base Material

1. Create a new Unreal Engine project or open a project

2. Right-click in the content browser and add new folders for your textures, materials, and static meshes (if needed)

3. Drag all four of your texture maps into the texture folder

4. Open the material folder and right-click to add a material

In Unreal Engine 5, a Material is an asset that defines the surface properties of objects, determining how they appear visually through attributes like color, texture, transparency, and lighting response.

5. Right-click on the new material and create a material instance – this will be used to control the texture maps

A Material Instance in Unreal Engine 5 is a reusable, lightweight child asset that inherits the compiled shader logic of a parent Master Material, allowing artists to tweak specific parameters without recompiling the underlying shader code.

6. Double-click on the material to open it

7. Drag your four texture maps into the material editor

8. Connect the base color (or albedo) to the base color input

Shading Models in Unreal Engine 5 define how a material interacts with incoming light, determining the specific lighting calculations and visual properties applied to a surface.

9. Connect the roughness to the roughness input

10. Connect the micro normal map to the normal input

11. Apply and save the material

12. At this stage, your material only uses the micro-detail normal map

13. Apply the material instance to a mesh in your level to preview the result

14. You should now see the fine surface detail visible across the object


Step 3 — Blending Normal Maps

1. To combine two normal maps properly in Unreal Engine, right-click in the material editor and search for blend angle corrected normals

BlendAngleCorrectedNormals is a built-in Unreal Engine 5 material node used to combine or blend two normal maps while correcting for angular differences between their tangent spaces.

2. Connect the nodes like this:

  • Micro Normal RGB → Base Normal
  • Macro Normal RGB → Additional Normal
  • Blend Angle Corrected Normals Output → Normal

3. This produces a much richer and more believable material surface

4. Apply and save the material

5. Simply adding normal maps together can create incorrect lighting and shading artifacts

6. The blend angle corrected normals node blends them mathematically correctly while preserving proper normal direction and lighting response

7. This is the recommended method in Unreal Engine for combining normal maps


Step 4 — Add Intensity Controls

1. Next, let’s make each normal map adjustable independently

2. This allows you to:

  • Increase or decrease micro surface detail
  • Strengthen or soften macro forms
  • Fine-tune the overall appearance directly in a Material Instance

3. For the micro normal map right-click in the material editor and search for a component mask

The Component Mask node in Unreal Engine 5 is a utility expression that acts as a channel selector, allowing you to isolate specific components (Red, Green, Blue, or Alpha) from a vector input such as a texture sample or normal map.

4. Use the arrow to make sure red and green only are enabled

5. The blue channel remains untouched – this is the Z-Axis

6. Hold down the S-key to add a scalar parameter

In Unreal Engine 5, a Scalar Parameter is a single floating-point value used to create dynamic, adjustable inputs for shaders, such as controlling roughness, opacity, or emission intensity.

7. Rename the scalar parameter to normal_intensity_micro

8. Set the default value to 1

9. Hold down the M-key to add a multiply node

In Unreal Engine 5, the Multiply node is a mathematical function that takes two inputs and outputs their product.

10. Connect the mask to the A-input of the multiply node

11. Connect the scalar parameter to the B-input of the multiply node

12. This scales the normal intensity

13. Right-click and add an append vector

In Unreal Engine 5, the Append Vector node is a material expression that combines data from two inputs (Input A and Input B) to create a new multi-channel vector, such as a float2, float3, or float4.

14. Hold down the 1-key and add a constant vector

In Unreal Engine 5, Constant Vector nodes are material expressions that output fixed, multi-channel values (scalars or vectors) which do not change once set in the editor.

15. Change the value to 1

16. Connect the multiply node to the A-input of the append node

17. Connect the constant vector to the B-input of the append node

18. Connect the append node to the base normal of the blend angle corrected normals

19. Connect the normal map RGB into a Component Mask node

20. This reconstructs the normal map correctly – adding the blue channel back into the material

1. Duplicate the same setup for the macro normal map

2. Rename the scalar parameter to normal_intensity_macro

3. Connect the macro normal map to the mask

4. Connect the append node to the additional normal of the blend angle corrected normals

5. Apply and save the material

6. Now both normal maps have independent controls


Step 5 — Normalize the Final Result

1. Because the normal intensities are being modified, the final normals may become invalid and produce lighting artifacts

2. To fix this right-click and add a normalize node

In Unreal Engine 5, the Normalize node converts an input vector into a unit vector that retains the original direction but has a fixed length (magnitude) of 1.

3. Connect the blend angle corrected normals to the normalize

4. Connect the normalize to the normal input

5. Apply and save the material

6. This ensures the final normal vector remains properly normalized


Step 6 — Test in a Material Instance

1. Apply your material instance to the static mesh

2. Double-click on the material instance to open it

3. You should now see two exposed controls – Normal_Intensity_Micro and Normal_Intensity_Macro

4. You can use these sliders to change each normal map independently


Conclusion

Blending normal maps in Unreal Engine is an essential technique for creating detailed and believable materials. By combining micro and macro normal detail, you can dramatically improve surface richness while maintaining flexibility and performance.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.