What is a normal map?
CGI Visualization to Perfection
Danthree Studio turns complex 3D tech into high-converting marketing assets. Get high-end quality for your brand.
Discuss your projectWhat is a normal map?
Definition of Normal Map
A normal map is a texture that stores the directions of surface normals. It alters the lighting calculation and makes fine irregularities or pores visible without requiring additional polygons. The silhouette and geometrically cast shadows remain unchanged. For large folds or pronounced edges, you’ll need geometry or displacement. Normal maps can be combined with other material textures in a PBR workflow.
How exactly does a normal map work?
The RGB channels encode components of a normal direction, usually in tangent space. The renderer uses this data for lighting calculations. The Albedo / Base Color Map provides the base color. A normal map is not a color texture and should not be interpreted as sRGB.
In short:
- RGB = XYZ normal direction
- Tangent Space: Directions relative to the surface; also suitable for deformable models.
- Object Space: Directions relative to the object. The object can be moved and rotated; deformations require appropriate processing.

Normal Map Examples



From Technical Term to Visual Experience
We don't just use these technologies; we master them. See how we create photorealistic worlds for leading brands.
View WorkMini Comparison: Normal Map vs. Bump Map
| Criterion | Normal Map (tangent space) | Bump Map (Grayscale) |
|---|---|---|
| Stored Information | Normal directions | Height values used to derive surface slopes |
| Animation / Deformation | Suitable with a matching tangent basis | Also suitable with appropriate texture mapping |
| Channels | Mostly RGB | One height channel |
| Geometry | Changes lighting, not the silhouette | Changes lighting, not the silhouette |
How Normal Maps Are Created at Danthree Studio
1. High-poly → Low-poly Bake
Normal maps can be generated from existing material data or baked from a detailed model. High-poly-to-low-poly baking transfers surface details to less dense geometry. A suitable UV layout, padding, and matching normals reduce artifacts. Ambient occlusion is a separate map with a different purpose. You can also check repeating textures with the tileable texture checker.
2. Shader Structure in the PBR Workflow
In a material shader, a normal map complements base color, roughness, and metalness. Displacement can add actual surface deformation. Check the result in the intended renderer and lighting setup.
3 Optimization for Real-Time & glTF
For real-time applications, texture resolution, file format, and compression must be appropriate for the target system. After each reduction, check for fine details and seam areas. Multiple normal maps require an appropriate combination of normals; simply blending their RGB values can result in incorrect directions.
4. Quality Control & Brand Identity (CI)
When matching materials, consider the scale, texture, and sheen of the reference. Evaluate fine linen or coarse tweed under the lighting planned for the brand. See examples in our material and surface visualizations.
Quick Tips for Working with Normal Maps
Quick Tips for Working with Normal Maps
- Check UVs and padding: Proper spacing and transitions reduce seam artifacts.
- Check projection during baking: A cage can help control ray projection.
- Balancing format and precision: A higher bit depth is not always necessary and does not prevent UV errors.
- Targeted Texturing of Glass: Textured glass surfaces can also use normal maps. Roughness and the refractive index control other material properties.
- Check OpenGL/DirectX conventions: For standard tangent-space maps, the difference affects the Y-direction in the green channel.
Surface Details in Two Project Examples
1. Natuzzi: Leather, Form, and Light
For Natuzzi’s 3D product visualization, we showcased the Colle sofa in a virtual brand space. The shape, stitching, surfaces, and lighting were tailored to the product references and visual language. The examples illustrate the interplay between material details and interior design; the normal map structure used cannot be deduced from a finished image alone.


2. Watcon: Shapes and Surfaces in Outdoor Spaces
For Watcon, we visualized planters, flower boxes, and benches in outdoor settings. The images show form, scale, and surface texture in relation to architecture and planting. The model defines the three-dimensional form; textures can add fine material details.


FAQ – Normal Map
Do I always need tangent space for normal maps?
No. Tangent-space normal maps are relative to the local surface and are suitable for many animated or deformable models. Object-space maps store directions relative to the object and allow for its translation and rotation. World-space maps, on the other hand, are relative to world coordinates. The appropriate choice depends on the model and the renderer.
How does normal mapping work?
A normal map modifies the surface normals for lighting calculations. This reveals fine details without increasing the number of polygons. It does not affect the silhouette or geometrically cast shadows.
Which map slots do I need to assign in the WebGL/Three.js material?
Assign the texture to the normalMap property of MeshStandardMaterial. Normal maps are non-color data and use NoColorSpace. Also check normalMapType, normalScale, and your texture’s Y convention.
What settings do I need to configure in Blender when importing a normal map?
In the Image Texture node, set Color Space to Non-Color. Connect its Color output to the Normal Map node, then connect that node’s Normal output to the BSDF shader. Select the appropriate space, usually Tangent Space, and the correct UV set if needed.
Why do my wrinkles/details look smoothed out or incorrect?
Check the color space, texture resolution, compression, tangent basis, and normal strength. If OpenGL and DirectX are mixed up, the Y-axis in the green channel is often inverted. Do not simply swap green and blue. Compare the result under a clearly defined light direction.
How do I import normal maps correctly into Cinema 4D/Redshift?
In Redshift, use the Bump Map node with the appropriate normal map input type and load the texture as "Raw" or without color correction. Connect the output to the material's bump input. Redshift expects OpenGL normal maps; DirectX maps require the corresponding Y-reversal.
How do I bake a clean normal map from high-poly to low-poly?
Adjust the UV layout, hard normal edges, tangent basis, and triangulation between the baker and the target renderer. Check the projection using an appropriate cage or ray distance, plan for sufficient padding, and verify the result at the target resolution. See the glossary entry on texture baking for more information.
