next up previous contents
Next: 11.2.4 Reflection Space Image-Based Up: 11.2 Environment Mapping Previous: 11.2.2.4 Cheap Per-pixel Lighting   Contents

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 [101]. 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. At the time of writing, one accelerated OpenGL platform supports cube mapping directly, and some other vendors plan to add support before the end of this year.


next up previous contents
Next: 11.2.4 Reflection Space Image-Based Up: 11.2 Environment Mapping Previous: 11.2.2.4 Cheap Per-pixel Lighting   Contents
2001-01-10