Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Normal Mapping

Avatar for Bruce Tsai Bruce Tsai
February 04, 2015

Normal Mapping

Avatar for Bruce Tsai

Bruce Tsai

February 04, 2015
Tweet

More Decks by Bruce Tsai

Other Decks in Programming

Transcript

  1. 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
  2. Dot3 Lighting • Per-pixel lighting • Dot = Nx *

    Lx 
 + Ny * Ly 
 + Nz * Lz 5
  3. 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
  4. Normal Map • Contain modified normal of surface directly •

    Lead more predictable results • (R, G, B) -> (X, Y, Z) 9
  5. 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
  6. 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
  7. 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
  8. 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