A normal map can import cleanly into Unreal Engine 5 and still make grooves look raised, dents look swollen, or lighting seem to come from the wrong direction. When that happens, the first thing to check is the normal map's Y direction.
Unreal Engine uses the DirectX normal convention. A normal map authored for an OpenGL-style workflow may therefore need its green channel flipped before it reads correctly in Unreal. You do not need to rebuild the material or invert the whole texture. The difference is usually one channel, and Unreal can handle the conversion in the texture asset.
Why the green channel changes the normal direction
A tangent-space normal map stores surface direction across its RGB channels. Red carries the tangent-space X component, green carries Y, and blue carries Z. The familiar purple image is data for the shader rather than visible color.
DirectX and OpenGL normal conventions disagree on the direction of the Y component. In practical texture work, converting between the two commonly means inverting the green channel while leaving red and blue alone. Our OpenGL vs DirectX normal map guide covers the convention itself in more detail.
This mismatch is easy to miss because the texture still looks like a normal map and Unreal can still sample it. The error shows up in the lighting. A recessed mortar line can read as a ridge, or a stamped depression can catch a highlight as though it protrudes from the surface.
When to flip the green channel in Unreal Engine
Flip the green channel when the surface detail clearly reads inside out after the normal map is connected. This is especially common when the texture came from a pipeline that exported an OpenGL-style normal.
Do not flip every normal map automatically. A texture that is already DirectX-oriented should stay as it is. Flipping an already-correct map creates the same problem in reverse, so the source convention and the rendered result matter more than the texture's filename.
A simple test is to use a material with an obvious directional feature such as a groove, bevel, stamped line, or mortar joint. Rotate a light or the object and watch how the highlight moves. If a cavity consistently shades like a bump, test a green-channel flip. If the result becomes correct, keep the flip. If it becomes worse, turn it back off.
How to flip a normal map's green channel in Unreal Engine 5
Open the normal map texture asset in Unreal Engine and find Flip Green Channel in the texture settings. Enable it, save the texture, and inspect the material again under directional lighting.
This changes the Y direction used from the texture without requiring a second edited image in your source folder. It is useful when the same OpenGL normal also needs to remain available for Blender or another renderer that expects the opposite convention.
For a broader import checklist, our Unreal Engine PBR texture import settings guide covers color space, compression, sampler types, roughness, metallic, and normal-map handling together.
Check normal-map compression too
A flipped green channel will not fix a texture that Unreal is treating as ordinary color data. Normal maps should use Unreal's normal-map texture handling rather than the settings used for base color.
After import, check that the texture is recognized with normal-map compression and that the Texture Sample in the material uses a normal sampler. The normal texture should feed the material's Normal input. If Unreal did not detect the texture correctly, fix those settings before judging whether its Y direction is wrong.
This is separate from sRGB handling on roughness and metallic maps. Those are scalar material values, while a tangent-space normal stores a direction. They are all data textures, but they do not use the same compression path.
Blender to Unreal normal maps often expose the mismatch
Blender and Unreal are a common place to encounter this problem because a material can look correct during Blender look development and then appear inverted after the normal map reaches Unreal. The geometry and UVs may be fine. The two applications can simply be reading opposite Y conventions for the tangent-space normal.
If Blender is the source and Unreal is the final renderer, keep the conversion explicit. Either export a DirectX-oriented normal for Unreal or use Unreal's Flip Green Channel setting on the imported texture. Avoid flipping the texture in an image editor and then also enabling the Unreal option, since that converts the Y channel twice.
The same principle applies to generated PBR materials. twirl provides separate albedo, normal, roughness, metallic, and height maps. For an Unreal workflow, import the maps separately and adjust the normal orientation for the target project. The twirl Unreal Engine material page documents the current workflow. An Unreal Engine integration is coming soon, so manual map import is the supported route now.
A green-channel problem is different from a bad bake
Not every normal-map artifact is an OpenGL-versus-DirectX problem. If only certain UV seams, hard edges, or parts of the mesh look wrong, the issue may come from the bake, tangent basis, mesh normals, triangulation, or UV setup instead.
A convention mismatch tends to affect the direction of normal detail across the material consistently. A baking or tangent problem is more likely to appear around particular edges or UV islands. Separating those symptoms keeps you from repeatedly flipping a map that was already oriented correctly.
If the normal map looks right but you need actual silhouette change, a normal map is also the wrong tool for that job. Normal mapping changes the lighting response without moving the surface. Our normal map vs height map guide explains that distinction, and the Unreal Engine Nanite tessellation height-map guide covers geometric displacement in Unreal.
Do not invert the entire normal map
The DirectX/OpenGL conversion is not a photographic negative. Inverting all RGB channels changes more than the Y direction and does not produce the intended tangent-space conversion.
If you need to convert the file outside Unreal, invert only the green channel. If you use Unreal's Flip Green Channel option, leave the source pixels alone. Keeping one conversion point in the pipeline also makes the material easier to debug later.
A short Unreal normal-map check
When a normal map looks inverted in Unreal Engine, first confirm that it is connected to the Normal input and using normal-map texture handling. Look at a known raised or recessed feature under directional lighting. If the depth reads backward, toggle Flip Green Channel once and compare the result.
If the whole material becomes correct, the issue was the Y convention. If only isolated seams or faces remain wrong, move on to the mesh tangents, UVs, bake, and triangulation instead of continuing to alter the texture. That distinction is usually enough to tell a normal-format mismatch from a geometry or baking problem.