From texture mapping to parallax
mapping — Normal Mapping
Bruce Tsai
Slide 2
Slide 2 text
Texture Mapping
• Add surface texture to 3D model
2
Slide 3
Slide 3 text
Normal Mapping
• Dot3 bump mapping
• Technique used for faking lighting of bumps and dents
• Only affect shading rather than surface
• An implementation of bump mapping
3
Bump Mapping
• Want more details on
object surface
• NOT want to increase
polygons
Slide 7
Slide 7 text
Bump Map (Height Map)
• Invented by Blinn
• Simulate surface displacement yielding modified normal
1. Look up height in height map
2. Calculate surface normal (finite difference)
3. Combine calculated surface normal with geometric
surface normal
4. Calculate interaction of new “bumpy” surface with lights
in the scene
7
Slide 8
Slide 8 text
Height Map
Black and white grayscale image
8
Slide 9
Slide 9 text
Normal Map
• Contain modified normal of surface directly
• Lead more predictable results
• (R, G, B) -> (X, Y, Z)
9
Slide 10
Slide 10 text
Normal Map
10
Slide 11
Slide 11 text
Two Type Normal Maps
• Tangent space
• Store normals relative
to surface
• Use on models to be
deformed
- Animated character
• Object space
• Store all normals on a
unit sphere
• Use on model to be
rotated without
deformed
- Weapons, vehicle,
building
11
Slide 12
Slide 12 text
Tangent space
normal map
Object space
normal map
Slide 13
Slide 13 text
Tangent Space
• Pros
• Reuse map
• Tile or mirror map
• Overlay painted details
• Use image compression
• Cons
• Smoothing problems from low-poly vertex normals
• Slower performance
13
Slide 14
Slide 14 text
Object Space
• Pros
• Generate high-quality curvature
• Slightly better performance
• Cons
• Cannot easily reuse map
• Difficult to tile or mirror
• Harder to overlay painted details
• Cannot be compressed well
14