Hardware 3D (C++ DirectX Graphics) Tutorial 34
From Chilipedia
Normal mapping is like what texture mapping would be if it actually lived up to its name. Time to learn about tangent space and other such weird things, I guess.
Topics Covered
Part 1
- Normal mapping motivation / goal
- Texture alignment
- RGB encoding of normal vectors
Errata
In Part 1, Chili decodes the z component of the normal map by mapping from 0..1 => 0..1 directly, but this mapping is not common, nor is it correct for the map we are using. All channels should be mapped with 0..1 => -1..+1. This will be corrected in Part 2. It is true that the z channel will never be less than zero in a proper (tangent space) normal map, but it does not seem to be common to use this unused range to expand the dynamic range of the z channel encoding.