next up previous contents
Next: 11.3 Impact of Complexity Up: 11.2 Environment Mapping Previous: Cheap Per-pixel Lighting

11.2.3 Cube Environment Mapping

A third parameterization of environment mapping uses six cube face views directly as an environment map instead of requiring a re-warping of the cube views into a sphere map or dual-paraboloid map. To support cube mapping, the OpenGL implementation's texturing hardware is expected to directly fetch texels from the six cube face views loaded into texture memory. Existing OpenGL implementations do not support such a mode.

This approach is described by Voorhies and Foran [98]. Voorhies and Foran make two important observations. First, the expensive divider required in perspective-correct texture mapping hardware can be used by cube map texturing hardware to pre-construct the per-fragment divide necessary to project an unnormalized reflection vector to a particular cube face. Second, an efficient hardware block is proposed to compute the reflection vector per-pixel using linearly interpolated eye-space normal and eye-space position vectors. Unfortunately, efficient cube mapping requires special hardware support that is not available at the time of this writing.

David Blythe