Modeling

Normal Map

A normal map is an RGB texture that fakes surface detail by changing how light hits a model, adding bumps, dents, and grooves without adding polygons.

What is Normal Map?

A normal map is a texture that stores per-pixel surface direction (the normal vector) in its RGB channels. When a shader reads it, the map bends how light reflects off the surface. This creates the illusion of high-frequency detail such as scratches, pores, and panel lines on otherwise flat geometry.

How it works

Normal maps are the workhorse of the bake-down workflow. You sculpt or model a high-poly asset, then bake its detail into a normal map applied to a lightweight low-poly mesh. The purple-blue appearance comes from encoding X, Y, and Z directions into red, green, and blue. Tangent-space normal maps, the most common kind, let the texture deform with the model, which is why they are essential for animated characters.

Use cases

  • Baking sculpted detail from a high-poly model onto a game-ready low-poly mesh

  • Adding fabric weave, brickwork, or scratches without extra geometry

  • Keeping polygon counts low for real-time and mobile 3D

Related Tools

Online 3D Viewer

View and inspect any 3D file right in your browser.

3D File Converter

Convert between FBX, OBJ, GLB, STL and more.

3D File Compressor

Shrink 3D file size without losing visible quality.

3D Text Generator

Turn text descriptions into 3D text and shapes.

Frequently Asked Questions

A normal map is an RGB texture that stores the per-pixel surface direction, or normal vector, of a model. When a shader reads it, it bends how light reflects to create the illusion of fine detail such as scratches, pores, and panel lines on flat geometry. It adds apparent detail without adding polygons.

Each pixel encodes an X, Y, Z direction in its red, green, and blue channels, telling the shader which way that part of the surface faces. The lighting calculation uses those directions instead of the real flat geometry, so light catches nonexistent bumps and grooves convincingly.

A bump map is grayscale and only stores height, nudging the perceived surface up or down. A normal map is RGB and stores full 3D surface direction, so it reacts to light from any angle far more accurately. Normal maps have largely replaced bump maps in modern PBR pipelines.

A normal map only changes how light hits a flat surface, so the silhouette stays unchanged. A displacement map physically moves geometry, altering the silhouette and casting real shadows. Normal maps are cheaper; displacement is used when the outline must be correct.

The dominant blue color comes from the Z axis, the up direction of the surface, being stored in the blue channel. Flat areas point straight out, so they read as light blue-purple. Deviations toward red and green indicate the surface tilting along X and Y.

You create a high-poly sculpt, a matching low-poly mesh with clean UVs, then bake the high-poly surface detail into a normal map using tools like Blender, Marmoset Toolbag, or Substance Painter. The low-poly mesh then displays the sculpted detail at a fraction of the polygon cost.

Tangent-space normal maps are relative to the surface, so they deform with the model and are ideal for animated or reusable meshes. Object-space normal maps are locked to the model's orientation, which is more accurate for static objects but does not tolerate deformation. Tangent space is the common default.

No. A normal map only changes how light interacts with the surface, so the mesh silhouette stays flat. For real geometric detail that changes the outline you need a displacement map or added polygons.

Yes. Meshy outputs normal maps as part of its PBR texture set, so AI-generated 3D models arrive with crisp surface detail already baked in. You can import them straight into your engine without running a manual baking pass.