An Efficient Representation for Irradiance Environment Maps
Ravi Ramamoorthi Pat Hanrahan
Stanford University
∗
Abstract
We consider the rendering of diffuse objects under distant illumina-
tion, as specified by an environment map. Using an analytic expres-
sion for the irradiance in terms of spherical harmonic coefficients
of the lighting, we show that one needs to compute and use only
9 coefficients, corresponding to the lowest-frequency modes of the
illumination, in order to achieve average errors of only 1%. In other
words, the irradiance is insensitive to high frequencies in the light-
ing, and is well approximated using only 9 parameters. In fact, we
show that the irradiance can be procedurally represented simply as
a quadratic polynomial in the cartesian components of the surface
normal, and give explicit formulae. These observations lead to a
simple and efficient procedural rendering algorithm amenable to
hardware implementation, a prefiltering method up to three orders
of magnitude faster than previous techniques, and new representa-
tions for lighting design and image-based rendering.
CR Categories: I.3.7 [Computer Graphics]: Three-
Dimensional Graphics and Realism—Environment Maps
Keywords: Environment Maps, Rendering Hardware, Signal
Processing, Irradiance, Radiance, Illumination, Lambertian Re-
flectance, Prefiltering, Spherical Harmonics
1 Introduction
Lighting in most real scenes is complex, coming from a variety of
sources including area lights and large continuous lighting distri-
butions like skylight. But current graphics hardware only supports
point or directional light sources. One reason is the lack of simple
procedural formulas for general lighting distributions. Instead, an
integration over the upper hemisphere must be done for each pixel.
One approach to using general lighting distributions is the
method of environment maps. Environment maps are representa-
tions of the incident illumination at a point. Blinn and Newell [3]
used them to efficiently find reflections of distant objects. Miller
and Hoffman [14], and Greene [8] prefiltered environment maps,
precomputing separate reflection maps for the diffuse and specular
components of the BRDF. Cabral et al. [5] handled general BRDFs
by using a 2D set of prerendered images. Prefiltering is generally
an offline, computationally expensive process. After prefiltering,
rendering can usually be performed at interactive rates with graph-
ics hardware using texture-mapping.
This paper focuses on the Lambertian component of the BRDF.
We use the term irradiance environment map for a diffuse reflec-
tion map indexed by the surface normal, since each pixel simply
stores the irradiance for a particular orientation of the surface. For
applications like games, irradiance maps are often stored directly
on the surface, instead of as a function of the normal vector, and
∗
(ravir,hanrahan)@graphics.stanford.edu
Figure 1: The diffuse shading on all the objects is computed procedurally in real-
time using our method. The middle sphere, armadillo, and table are white diffuse re-
flectors. The colors come from the environment—owing to a variety of colored sources,
including blue stained-glass windows. Our method can also be combined with stan-
dard texture mapping—used to modulate the albedo of the pool-ball on the right—and
reflection mapping—used for specular highlights on the pool-ball, and for the mirror
sphereon the left. The environment is a light probe of the Grace Cathedral. Tone map-
ping is used to convey high dynamic range for the background and the mirror sphere;
the remaining objects are shaded using a linear scale.
are called light maps. Irradiance environment maps can also be
extended to spatially varying illumination by computing an irra-
diance volume, as done by Greger et al. [9]. Many of the same
ideas can be applied to speeding up global illumination algorithms.
The slowly varying nature of irradiance has led to Ward and Heck-
bert [18] proposing interpolation using irradiance gradients, while
the idea of storing irradiance as a function of surface orientation in
orientation lightmaps has been proposed by Wilkie et al. [19].
The key to our approach is the rapid computation of an analytic
approximation to the irradiance environment map. For rendering,
we demonstrate a simple procedural algorithm that runs at interac-
tive frame rates, and is amenable to hardware implementation. The
procedural approach is preferable to texture-mapping in some ap-
plications. Since irradiance varies slowly with orientation, it need
only be computed per-vertex and interpolated across triangles. Fur-
ther, we require only a single texturing pass to render textured
objects with irradiance environment maps, since the irradiance is
computed procedurally. On the other hand, the standard approach
requires a separate texture for the irradiance, and needs multitex-
turing support or multiple texturing passes. In other applications,
where per-fragment texture-mapping is relatively inexpensive, our
method can be used to very efficiently compute the irradiance envi-
ronment map texture. Our novel representation also suggests new
approaches to lighting design and image-based rendering.
2 Background
Empirically, it is well known that the reflected intensity from a dif-
fuse surface varies slowly as a function of surface orientation. This
qualitative observation has been used to justify representing irradi-
ance environment maps at low resolutions [14], and in efficiently
computing the shading hierarchically [11, 12]. Our goal is to use
an analytic quantitative formula for the irradiance which formalizes
these observations, and allows for principled approximations.
Let L denote the distant lighting distribution. As is common