Normal Map
Generates a tangent-space normal map from an image, converting height information to surface normals for 3D lighting.
Normal Map converts a height map (the image’s luminance or its alpha, picked by Source) into a tangent-space normal map for 3D lighting. The RGB channels encode surface orientation: red is the X tilt, green the Y tilt, blue faces up.
Strength sets the intensity of the relief, and Blur (px) smooths the height before the normals are computed, which reduces noise. Y Direction picks the green-channel convention: OpenGL for Blender, Unity, Godot, and glTF, DirectX for Unreal.
Method picks the derivative kernel. Scharr 3x3 and Central Difference are scaled to match Sobel’s overall strength on constant slopes, so switching does not force you to re-dial Strength, though fine detail responds differently. Try Scharr when a Sobel normal map shows directional bias on diagonal detail.
Edge Handling applies to both the Blur and the derivative. Use Wrap Both when the height map tiles on both axes (for example straight off Seamless Blend or Hex Tile), since Reflect leaves a visible discontinuity at the seam. Wrap Horizontal or Wrap Vertical suit a trimsheet that tiles on one axis and cuts hard on the other.
Rescaling an existing normal map
Section titled “Rescaling an existing normal map”Set Source to Normal and the input is read as a normal map that already exists, such as one from a scan or a downloaded material. Strength then rescales its intensity, from 0 to 4: 1 keeps it exactly as authored, 0 makes it flat, and 2 doubles its slopes before the directions are made unit length again. Y Direction is the convention the map is read and written in. Method, Edge Handling, Blur, and the derive Strength give way while Source is Normal, and a single-channel image is refused with a message suggesting Luminance or Alpha.
Texture sets
Section titled “Texture sets”On a texture set or a library, a Map row replaces Source:
- Height (the default) derives a Normal from the set’s Height and writes it into the set, adding a Normal if the set has none.
- Normal rescales the set’s own Normal with Strength. The set’s Height follows: it is scaled about its midpoint by the same factor, so the two keep describing one surface, and a line under the row says so.
Every other map passes through untouched, and the Preview jumps to the Normal tab with a dot marking the map this node edited. A set whose Normal was authored in the other convention is converted to Y Direction’s.
Normal Map sits in the Texture category of the add-node menu and the Node Library. Its output wires straight into the Normal input of a Texture node to become part of a texture set; a set that already has a Height needs no Texture node, since the set wired in gets its Normal written in place (see Texture sets).
Parameters
Section titled “Parameters”Pins
Normal Map
Which map of the texture set this node reads. Its result is written into the set, and every other map passes through unchanged. Shown while a texture set or a library is wired
What the input is read as
Derivative kernel used to compute the height gradient.
- Sobel 3x3: the original kernel.
- Scharr 3x3: a more rotationally symmetric kernel.
- Central Difference: a simple, sharper derivative.
Scharr and Central Difference are scaled for comparable overall strength to Sobel 3x3 on constant-slope regions, not identical response on fine detail.
How the image continues past its edges.
- Reflect: mirrors the image at its edges.
- Clamp: repeats the edge pixel.
- Wrap Both: tiles on both axes. Use it for seamless height maps.
- Wrap Horizontal / Wrap Vertical: wraps that axis and reflects the other. Use it for a trimsheet that tiles on one axis.
Intensity of the surface relief. Higher values exaggerate surface detail. 1 = subtle, 10+ = extreme
Rescales the relief of an existing normal map. 1 = as authored, 0 = flat, 2 = twice as steep. Over a texture set its Height scales with it
Blurs the height before the normals are computed, smoothing out noise and fine detail. 0 = no blur
Green-channel convention of the normal map.
- OpenGL (+Y): Y points up. Blender, Unity, Godot and glTF.
- DirectX (-Y): Y points down. Unreal and 3ds Max.
Usage Tips
Section titled “Usage Tips”- Normal Map accepts a grayscale or single-channel height source directly and always outputs a full-color normal map.
- Add a small Blur (0.5 to 1.0) to smooth a noisy source.
- A normal map file made elsewhere reads correctly on Auto. Set Image In’s Input Color Space to Data (Normal, Roughness, ORM) (named Normal Map before) to read its values exactly as stored and see it as the file looks; see Data maps: Auto or Data.
- After editing a height with Height Layer or a Texture Layer row’s Height Offset, rebuild the normal from the edited height here; those controls never recompute a normal on their own.
- Going the other way, Normal to Height integrates a normal map back into a height map.