Whether you’ve baked a normal map using 3D software or generated one online from a photograph using our PBR Generator, the next crucial step is getting it into your game engine correctly.
Both Unity and Unreal Engine 5 (UE5) handle normal maps slightly differently. This tutorial will walk you through the correct import settings and material node setups so your surfaces catch the light perfectly without looking inverted or broken.
1. How to Use Normal Maps in Unity
Unity uses an OpenGL-style normal map format (Y+). If your normal map looks indented when it should bulge outwards, you might be using a DirectX (Y-) normal map.
Step 1: Import Settings are Critical
When you drag and drop your texture_normal.png into Unity, you must change its Texture Type before doing anything else:
- Click the normal map in your Project window.
- In the Inspector window, look for that dropdown menu at the top. Change Texture Type from
DefaulttoNormal map. - Optional but recommended: Check “Create from Grayscale” ONLY if you accidentally imported a black-and-white bump map instead of a blue/purple normal map. Otherwise, leave it unchecked.
- Click Apply at the bottom.
Step 2: Applying to the Material
- Create a new Material (
Right-click > Create > Material) and apply it to your 3D mesh in the scene. - Select the material. In the Material Inspector, locate the Normal Map slot (usually right below Albedo/Base Color depending on the render pipeline).
- Drag your Normal Map texture into this slot.
- Adjust the numeric slider next to the slot to control the intensity of the bump effect.
(Note: Move around your scene’s directional light to immediately see the bumps reacting to shadows!)
2. How to Use Normal Maps in Unreal Engine 5
Unreal Engine uses a DirectX-style normal map format (Y-). If you generated an OpenGL normal map, you will need to flip the Green channel. Our Online Normal Map Maker allows you to visually flip the Y-axis immediately before downloading to prevent this!
Step 1: Import and sRGB Settings
When you import a normal map into UE5, the engine usually detects the word “Normal” in the filename and configures it automatically for you. However, you should always verify:
- Double-click the texture in your Content Browser to open the Texture Editor window.
- Ensure the Compression Settings is set to
Normalmap (DXT5, BC5 on DX11). - Most importantly, ensure the sRGB checkbox is UNCHECKED. Normal maps contain mathematical directional data (XYZ vectors mapped to RGB channels), not color data. Having sRGB turned on will completely break the lighting calculations!
Step 2: The Material Graph
- Create a new Material and double-click to open the node-based Material Graph.
- Drag your Normal Map texture from the Content Browser into the graph to create a
TextureSamplenode. - Verify that the
Sampler Typeon the left details panel is set to Normal. - Drag the white output pin of the texture and connect it exclusively to the Normal input pin of the main Material Property node.
How to Fix Inverted Bumps in UE5
If your texture looks indented instead of raised, you have an OpenGL normal map. You don’t need to re-download it!
- Instead of connecting the texture directly, drag the wire from your texture and search for a
Multiplynode. - Add a
Constant3Vectorset to(1, -1, 1)and plug it into the multiply node. - This mathematically flips the green channel, instantly converting OpenGL to DirectX right inside the material graph!
Following these engine-specific steps guarantees your PBR materials will react stunningly to dynamic lighting environments.