Slide 1

Slide 1 text

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

Slide 4

Slide 4 text

Lighting Phong Reflection Model 4

Slide 5

Slide 5 text

Dot3 Lighting • Per-pixel lighting • Dot = Nx * Lx 
 + Ny * Ly 
 + Nz * Lz 5

Slide 6

Slide 6 text

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

Slide 15

Slide 15 text

What is a Normal Map?

Slide 16

Slide 16 text

Reference • www.cs.brandeis.edu/~cs155/Lecture_17.pdf • http://graphics.cs.williams.edu/papers/SteepParallaxI3D05/ • http://en.wikipedia.org/wiki/Normal_mapping • http://en.wikipedia.org/wiki/Bump_mapping • http://www.3dkingdoms.com/tutorial.htm • http://docs.cryengine.com/display/SDKDOC4/Tangent+Space+Normal+Mapping • http://gamedevelopment.tutsplus.com/articles/gamedev-glossary-what-is-a-normal-map--gamedev-3893 • http://youtu.be/yHzIx41eiD4 • https://en.wikipedia.org/wiki/Heightmap • www.falloutsoftware.com/tutorials/gl/normal-map.html • www.bencloward.com/tutorials_normal_maps1.shtml • http.developer.nvidia.com/CgTutorial/cg_tutorial_chapter05.html • https://en.wikipedia.org/wiki/Phong_reflection_model