3D inspector

3D Normal Map Viewer

Inspect an existing map under a controllable light before blaming the mesh or shader. A channel view, UV repeat, shape selector, and explicit Y flip help separate texture faults from import and tangent-space problems.

3D inspectorChoose a PNG, JPEG, WebP, or BMP (up to 50 MB).
Local image processing
Drop an image hereChoose a PNG, JPEG, WebP, or BMP (up to 50 MB).Local image processing

A reliable workflow

Use moving light to test relief direction

A flat area should react uniformly while the light moves. A dent that becomes a bump when light crosses vertically is a strong Y-convention clue.

Height gradient to RGB normal directionA grayscale height change becomes horizontal and vertical gradients, then a normalized vector encoded into RGB.1 · HEIGHT2 · GRADIENTdx + dy + level Z3 · RGB NORMALnormalize → 0…255
1

Keep vector textures out of sRGB

Normal textures must be read as vector data rather than sRGB color; gamma decoding bends the stored components before normalization.

2

Trace seams beyond the image border

Seams can originate in the image, UV split, tangent basis, compression, mip generation, or mismatched mirrored geometry.

3

Use a normal map viewer as a controlled diagnostic

Begin in the normal map viewer with a plane and a single light so the expected response is easy to follow. Move the light left to right, then top to bottom, while watching an asymmetric groove or bevel. Change to a sphere to reveal discontinuities and excessive strength, and use a repeated plane to expose border seams. The channel view can identify clipping or a nearly flat blue channel, but no histogram can prove the Y convention. A normal map viewer is most useful when every test changes one variable and the expected result is known in advance.

4

Separate file evidence from renderer evidence

The normal map viewer reads the uploaded pixels as vector data and can reveal malformed channels, non-unit directions, border differences, and likely inversion. It cannot reproduce every mesh tangent basis, mirrored UV island, importer, mip filter, or platform compression format. If the browser result is stable and the engine result is not, preserve the file and compare import color space, normal-texture classification, UV set, tangent generation, green-channel setting, and compression. That sequence prevents the normal map viewer from being used to fix an engine configuration problem by unnecessarily altering good source pixels.