i
i
i
i
i
i
i
i
8.5. Glossy Reflections from Environment Maps 309
Figure 8.18. The left figure shows an eye ray reflecting off an object to retrieve a perfect
mirror reflection from an environment texture (a cube map in this case). The right figure
shows a reflected view ray’s specular lobe, which is used to sample the environment
texture. The green square represents a cross section of the cube map, and the red tick
marks denote the boundaries between texels. Although a cube map representation is
shown, any environment representation can be used.
simulate surface roughness, the environment’s representation in the tex-
ture can be filtered [449]. By blurring the environment map (EM) texture,
we can present a rougher-appearing specular reflection. This is sometimes
called a reflection map, as it combines the reflectance of the surface with
the EM. In theory, such blurring should be done in a nonlinear fashion; that
is, different parts of the texture should be blurred differently. This is be-
cause environment map texture representations have a nonlinear mapping
to the ideal spherical space of directions. The angular distance between the
centers of two adjacent texels is not constant, nor is the solid angle covered
by a single texel. However, the eye tends to be fairly forgiving, because
the general effect of the reflection is usually more important than the exact
reflection itself. So a lazy way to obtain fuzzy reflections is to just blur the
environment maps uniformly in texture space and hope for the best. Care
still needs to be taken around the edges of the maps, though. For example,
GPUs usually do not automatically filter across cube map faces, so this
needs to be addressed when preparing the reflection map. Figure 6.19 on
page 171 illustrates this issue.
A more physically realistic method is to use a BRDF lobe such as a co-
sine power (Phong) or Gaussian lobe to filter the environment map [866],
accounting for the distortion introduced by the texture representation. See
Figure 8.18. The specular lobe determines which texels on the EM texture
to sample and how much to weight each texel’s relative contribution. Hei-
drich and Seidel [535] use a single reflection map in this way to simulate
the blurriness of a surface.
Imagine some light coming in from near a given reflected view direc-
tion. Light directly from the reflected view direction will give the largest