Surface normals from a height/detail map — RGB encodes XYZ direction.
Method
Classic 3×3 gradient operator — good balance of noise and detail.
Strength
Intensity100%
Higher values exaggerate surface detail.
Blur
Pre-blur0
Smooth input before computing normals to reduce noise.
Invert
Flip normal direction per axis. Use to match your engine's coordinate system (OpenGL vs DirectX).
Tiling
Wraps edges so the normal map tiles seamlessly.
Levels
Contrast100%
Brightness0
Tone-maps source luminance into the target range.
Detail
Micro-detail0%
High-pass boost to emphasize fine surface roughness variation.
Invert
Flip light/dark. Bright areas often mean smooth (low roughness) — invert to taste.
Tint
Specular color
Multiplies the grayscale specular by a color (metals often use a tinted specular).
Threshold
Cutoff65%
Softness10%
Pixels brighter than the cutoff emit. Softness feathers the edge of the glow.
Emission
Intensity100%
Keeps the source color of glowing areas, or outputs a white-on-black mask.
No image loaded
⬚
Drop image here
or click to browse — PNG, JPG, BMP, WebP
Image Info
Width
—
Height
—
File
—
Format
—
Normal Preview
R (X)
G (Y)
B (Z)
Hover over the result to inspect individual normal values below.
X
—
Y
—
Z
—
Pixel
—
Tips
• Use height maps for best results
• Increase strength for low-contrast inputs
• Pre-blur to smooth noisy photos
• Toggle Invert G for DirectX convention
• Enable Tiling for repeating textures