7.1 Introduction: Do We Need Texture Mapping?7.2 Basic Concepts7.2.1 Texturing in the Pipeline7.3 Texture Filtering: from per-Fragment Texture Coordinates to per-Fragment Color7.3.1 Magnification7.3.2 Minification with Mipmapping7.4 Perspective Correct Interpolation: From per-Vertex to per-Fragment Texture Coordinates7.5 Upgrade Your Client: Add Textures to the Terrain, Street and Building7.5.1 Accessing Textures from the Shader Program7.6 Upgrade Your Client: Add the Rear Mirror7.6.1 Rendering to Texture (RTT)7.7 Texture Coordinates Generation and Environment Mapping7.7.1 Sphere Mapping7.7.1.1 Computation of Texture Coordinates7.7.1.2 Limitations7.7.2 Cube Mapping7.7.3 Upgrade Your Client: Add a Skybox for the Horizon7.7.4 Upgrade Your Client: Add Reflections to the Car7.7.4.1 Computing the Cubemap on-the-fly for More Accurate Reflections7.7.5 Projective Texture Mapping7.8 Texture Mapping for Adding Detail to Geometry7.8.1 Displacement Mapping7.8.2 Normal Mapping7.8.2.1 Object Space Normal Mapping7.8.3 Upgrade Your Client: Add the Asphalt7.8.4 Tangent Space Normal Mapping7.8.4.1 Computing the Tangent Frame for Triangulated Meshes7.9 Notes on Mesh Parametrization7.9.1 Seams7.9.2 Quality of a Parametrization7.10 3D Textures and Their Use7.11 Self-Exercises7.11.1 General7.11.2 ClientFigure 7.1Figure 7.2Figure 7.3Figure 7.4Figure 7.5Figure 7.6Figure 7.7Figure 7.8Figure 7.9Figure 7.10Figure 7.11Figure 7.12Figure 7.13Figure 7.14Figure 7.15Figure 7.16Figure 7.17Figure 7.18Figure 7.19Figure 7.20Figure 7.21Figure 7.22Figure 7.23Figure 7.24Figure 7.25Figure 7.26Figure 7.27Figure 7.28Figure 7.29Listings 7.1Listings 7.2Listings 7.3Listings 7.4Listings 7.5Listings 7.6Listings 7.7Listings 7.8Listings 7.9Listings 7.10