Texturing
Instructor: Christopher Rasmussen (cer@cis.udel.edu)
March 15, 2022 ❖ Lecture 11
Outline
Bump Mapping
Bump map: Example
from wikipedia.org
Sphere WITH bumps
Sphere
Bump mapping: Why?
courtesy of Nvidia
Bump + color map: Example
Courtesy of http://www.alejandrosegovia.net
Bump mapping: Example
from MIT CG lecture notes
+
=
Bump mapping: Example
courtesy of A. Awadallah
Height map
Bump texture applied to teapot
Bump mapping: How?
from Hill
Bump mapping: Representations
from Akenine-Moller & Haines
Bump representation: Height map f(u, v)
from Akenine-Moller
& Haines
Example: Converting height maps to normal displacements (aka normal maps)
Z coordinate set to some constant scale factor; (X, Y) normalized to [0, 1] range.
Right image is mostly blue because “straight up” vector is (0.5, 0.5, 1)
courtesy of Nvidia
Bump mapping: Issues
courtesy of Nvidia
from https://en.wikipedia.org/wiki/Normal_mapping
Displacement Mapping
courtesy of spot3d.com
Bump mapping
Displacement mapping
Displacement Mapping the Sphere
courtesy of geeks3d.com
Displacement Mapping – Height Maps
courtesy of artofillusion.org -- Julian MacDonald
Texture mapping: Steps
Texturing: Creation
courtesy of H. Elias
courtesy of Nvidia
Procedural bump mapping
Texture mapping applications: Lightmaps
courtesy of K. Miller
+
=
Idea: Precompute expensive static lighting effects (such as ambient occlusion or diffuse reflectance) and “bake” them into color texture. Then scene looks more realistic as camera moves without expense of recomputing effects
Texture mapping application: Lightmaps
Tenebrae Quake screenshot
Lightmap example: Diffuse lighting only
Lightmap example: Light configuration
Lightmap example: Diffuse + lightmap
Texturing Pipeline (Geometry + Rasterization)
list adapted from Akenine-Moller & Haines
courtesy of R. Wolfe
Texturing Pipeline (Geometry + Rasterization)
list adapted from Akenine-Moller & Haines
courtesy of R. Wolfe
Texturing Pipeline (Geometry + Rasterization)
list adapted from Akenine-Moller & Haines
courtesy of R. Wolfe
Texturing Pipeline (Geometry + Rasterization)
list adapted from Akenine-Moller & Haines
courtesy of R. Wolfe
Texturing Pipeline (Geometry + Rasterization)
list adapted from Akenine-Moller & Haines
courtesy of R. Wolfe
Rasterization
Texture coordinates at vertices
courtesy of
R. Wolfe
Parametric Surfaces
courtesy of R. Wolfe
Projector Functions
with texture coords)
Planar projector
courtesy of R. Wolfe
Planar projector
Orthographic projection onto XY plane: u = x, v = y
...onto YZ plane
...onto XZ plane
courtesy of
R. Wolfe
Cylindrical projector
courtesy of
R. Wolfe
Spherical projector
courtesy of R. Wolfe
Projecting in non-standard directions
courtesy of R. Wolfe
Projecting in non-standard directions
courtesy of R. Wolfe
Different ray directions for a spherical projector
Environment/Reflection Mapping
from Angel
Environment mapping: Details
courtesy of R. Wolfe
Making environment textures: Cube
Making environment textures: Sphere
courtesy of P. Debevec
Environment mapping: Example
courtesy of G. Miller
~1982
Environment mapping: Example
From “Terminator II” (1991)
Environment mapping example: Same scene, different lighting
courtesy of P. Debevec
Environment Bump Mapping
from Akenine-Moller
& Haines
Environment mapping: Issues
v
from Angel
Shadow Maps
View from light
View from camera
Z-buffering
from Hill
Z-buffer: Example
courtesy of DAM Entertainment
Color buffer
Depth buffer
Z-buffering
from Hill
Shadow Maps
View from light
View from camera
Shadow Maps
from GPU Gems
Shadow Maps