Efficient Irradiance Normal Mapping
Ralf Habel and Michael Wimmer
Institute of Computer Graphics and Algorithms
Vienna University of Technology, Austria

Figure 1: A typical game scene using standard light mapping (left) and irradiance normal mapping using the H-basis without (middle) andwith (right) textured albedo.

Abstract
Irradiance normal mapping is a method to combine two popular
techniques, light mapping and normal mapping, and is used ingames such as Half-Life 2 or Halo 3. This combination allows using low-resolution light caching on surfaces with only a few coefficients which are evaluated by normal maps to render spatial
high-frequency changes in the lighting. Though there are dedicatedbases for this purpose such as the Half-Life 2 basis, higher orderbasis functions such as quadratic Spherical Harmonics are needed
for an accurate representation. However, a full spherical basis is notneeded since the irradiance is stored on the surface of a scene.
In order to represent the irradiance signals efficiently, we propose anovel polynomial, hemispherically orthonormal basis function set
that is specifically designed to carry a directional irradiance signal
on the hemisphere and which makes optimal use of the number ofcoefficients. To compare our results with previous work, we analyze the relations and attributes of previously proposed basis systems and show that 6 coefficients are sufficient to accurately represent an irradiance signal on the hemisphere. To create the necessary
irradiance signals, we use Spherical Harmonics as an intermediatebasis due to their fast filtering capabilities.
CR Categories:
I.3.7 [COMPUTER GRAPHICS]: ThreeDimensional Graphics and Realism—; I.3.3 [COMPUTER
GRAPHICS]: Color, Shading, Shadowing and Texture—;
Keywords: real-time rendering, irradiance, caching, lightmap,
normal mapping

1

Introduction

Light mapping and normal mapping are the most successful shading techniques used in commercial games and applications because

they require only few resources and result in a significant increasein the quality of the rendered image. While light mapping storesglobal, low-frequency illumination at sparsely sampled points inthe scene, normal maps provide local, high-frequency shading variation at a high resolution. The problem with combining the two
methods is that light maps store lighting information for only one
normal direction (the base surface normal) and therefore cannot be
evaluated using the normals stored in a normal map. To overcome
this problem, the irradiance (i.e., the incoming radiance integrated
over the hemisphere) for all possible normal map directions has tobe calculated and stored for each illumination sample point on thesurface.
Because the irradiance signal is low frequency in its directionality,
it can be well represented by lower order basis functions. As shownby Ramamoorthi and Hanrahan [Ramamoorthi and Hanrahan 2001]
and Basri and Jacobs [Basri and Jacobs 2000], using Spherical Harmonics up to the quadratic band (9 coefficients per color) is sufficient to represent an irradiance signal over the whole sphere of normal directions (a so-called irradiance environment map) with onlya small average error of less than 3 percent for a typical irradiancesignal. This representation was adopted in games (e.g., [Chen and
Liu 2008]) to store spatially varying irradiance at surface samples
using Spherical Harmonics light maps. However, while Spherical
Harmonics work well, irradiance normal mapping on surfaces actually only requires a hemispherical signal – the information contained in the inner hemisphere is never used.
In this paper, we therefore propose a new hemispherical basis called
H-basis, which is designed to represent irradiance signals over thehemisphere of possible surface normals. The main advantage ofthe H-basis is that it requires the same amount of coefficients thanSpherical Harmonics to represent irradiance signals on the hemisphere and less error than other hemispherical bases, while keeping
the main advantages of Spherical Harmonics on a sphere: (1) It ispolynomial and therefore fast to evaluate. (2) Since it is closely related to Spherical Harmonics, a signal given in Spherical Harmonics can be converted to the H-basis using a sparse matrix. (3) It is
orthonormal and therefore any general function can be easily projected into the basis without requiring a least-squares fit if it is used
for other purposes. (4) It is guaranteed that a linear interpolationof the coefficients results in a linear interpolation of the evaluationof the basis, which is especially important if the irradiance is stored
sparsely such as on a per vertex basis or very small coefficient maps.

2

Previous Work

2.2

Several basis systems have been proposed to represent hemispherical functions in general as well as specifically for irradiance normal mapping. We are not considering spherical wavelets [Schröderand Sweldens 1995] since only a very small number of coefficients are needed and an iterative fitting of millions of functions
is prohibitively expensive. Also, we will not discuss Spherical
Harmonics separately as they are covered extensively in the literature([Sloan et al. 2002],[Ramamoorthi and Hanrahan 2001],[Green2003],[Sloan 2008]). A similar problem of calculating the irradiance occurs when combining Spherical Harmonics PRT with normal mapping [Sloan 2006], though the radiance is not precomputed
but calculated with the precomputed transfer functions. Since only
a minimal number of coefficients are considered, numerical stability and compression artifacts [Lam et al. 2006] are comparable tostandard light mapping.
Ultimately, the ratio of accuracy to number of used coefficients defines the effectiveness of a basis function set, independent of theirradiance functions represented.

2.1

Half-Life 2 Basis and Directional Occlusion

The Half-Life 2 Basis [McTaggert 2004] [Green 2007], is a function
set that is orthonormal over the upper unit hemisphere Ω+ . It isdefined by three cosine lobes spanned by the vectors h~i




−1
√
6
−1
√
2
1
√
3





−1
√
6
1
√
2
1
√
3

 q



2
3

0
1
√
3



.

(1)

The explicit evaluation EHL2 is executed through the dot productsof the evaluation direction ~n and the basis directions weighted bytheir coefficients:
3 r
X
3ci ~n · h~i(2)
EHL2 (~
x) =
2π
i=1
q
3
with the basis coefficients ci and the normalization factor.
2π
Though defined on the hemisphere, the three basis functions are,due to the linearity of the basis, a rotated and hemisphericallynormed version of linear Spherical Harmonics, which also consistof three cosine lobes. Actually, due to linearity, any three mutuallyorthogonal vectors define an equivalent basis, although the given
configuration causes the coefficients to be mostly positive, circumventing a range compression if the coefficients are saved in 8 bitcolors.
Expression 2 can be simplified by extracting ~x as a common factor, which simplifies the evaluation to a single dot product with the(non-normalized) vector:
3 r
X
3 ~
~o =
ci h i .
(3)2π
i=1This formulation is also called Directional Occlusion. Unfortunately, if a trichromatic signal is represented, each color requires
a separate Directional Occlusion vector ~o, and thus three dot products have to be calculated while the Half-Life 2 Basis needs to beevaluated only once, giving no advantage in the trichromatic casebecause 3 dot products have to be performed in both cases. However, the Directional Occlusion formulation shows that the HalfLife 2 basis is fully equivalent to Directional Occlusion and bothbases can transport one general cosine lobe.

Hemispherical Harmonics and Makhotkin Basis

Hemispherical Harmonics (HSH) [Gautron et al. 2004] and the
Makhotkin basis [Makhotkin 1996] are hemispherically orthonormal bases that are constructed by mapping the negative pole of thesphere at (0, 0, −1) to the border of the hemisphere, contracting
the spherical orthonormal functions to hemispherical ones througha shifting operation without destroying their orthogonality. This
shifting is generated by replacing the cos θ term in the definition
with 2 cos θ − 1.
In the case of Makhotkin, Jacobi polynomials are shifted, whereas
Hemispherical Harmonics consist of shifted Spherical Harmonics.
Due to this contraction, the basis functions become strongly nonpolynomial and therefore expensive to evaluate as they contain several square roots and divisions. This is important since for irradiance caching, the basis functions are evaluated directly in the pixel
shader. Also, due to the shifting, all basis functions are either 0
or constant at the border of the hemisphere, causing severe errors
localized at the border. This effect diminishes with higher bands,
but is dominant if only two or three bands are used since only one
constant color can be represented at the border of the hemisphere.
Due to their spherical origin, their band structure is the same as
Spherical Harmonics.

2.3

Zernike Basis

Zernike polynomials, an orthonormal polynomial set on the unit
circle, have been adapted to the hemisphere by Koenderink et al.
[Koenderink et al. 1996] to represent BRDFs. However, the adaptation introduces square roots and divisions into the basis functions,which results in a high evaluation cost compared to purely polynomial bases. Due to their two-dimensional origin, they also featurea different band structure, having only two basis functions in thefirst band and three in the second band, resulting in 3 coefficients
up to the first band and 6 coefficients up to the second band. This
makes this basis interesting for an irradiance signal representation
with only a few coefficients.
Compared to shifted hemispherical bases, the Zernike basis does
not suffer from severe errors at the border of the hemisphere because the basis functions vary at the border of the hemisphere.

3

Creating the Directional Irradiance

The irradiance of a surface point ~x with surface normal ~n is definedasZL(~x, ω)(~n · ω
~ )d~
ω.

E(~
x, ~n) =(4)Ω+A representation of the signal E(~
x, ~n) is stored at sparse sample
points ~x, for example at object vertices or at the texels of a lowresolution texture map. The signal is defined for all normal vectors~n in the upper hemisphere of the point ~x. In practice, the hemisphere is defined in tangent space, i.e., around the interpolated surface normal and (bi)tangent vector.
Similar to light mapping, we first need to calculate the radiance andderive the irradiance in a precomputation step.Any method that creates a radiance estimate, such as shadow mapping, photon mapping[Jensen 1996], or path tracing [Kajiya 1986] can be used. In the
figures shown in this paper, the radiance solution was calculated by
ray tracing an importance-sampled HDR environment map, whichallows testing all bases under high dynamic range conditions andarbitrarily complex radiance signals.

Given the radiance L, creating E(~
x, ~n) (equation 4) corresponds tofiltering L with a diffuse kernel. Doing this in Euclidean or spherical coordinates is prohibitively expensive due to the high cost of
every single convolution and the high number of surface sample
points for which this has to be done (usually tens of millions incurrent game levels).
Instead, we use Spherical Harmonics as an intermediate basis. Ramamoorthi et al. [Ramamoorthi and Hanrahan 2001] and Basri[Basri and Jacobs 2000] show how to efficiently carry out equation
4 in this basis. Furthermore, they show that an irradiance signal
represented in Spherical Harmonics requires only 3 bands (9 coefficients) to achieve an average error below 3%.
We rotate each sampled radiance signal into tangent space and expand it into the Spherical Harmonics coefficients slm by integratinglagainst the Spherical Harmonics basis functions Ymover the complete sphere Ω:
Z
l
slm =
L(~
ω )Ym
(~
ω )d~
ω
(5)
Ω

Since this has to be done for a small number of coefficients only,
it is much faster than a direct convolution. At this stage, we canalso apply a number of different filtering methods such as describedin [Sloan 2008] to remove potential ringing artifacts. The FunkHecke Theorem [Groemer 1996] states that the diffuse convolution(equation 4) can be carried out directly in Spherical Harmonics bysimply scaling the coefficients. Following [Basri and Jacobs 2000],
we multiply the coefficients in each band l with the corresponding
factor al :a0 = 1a1 = 321a2 =a3 = 04
1(6)
a4 = −
24
to arrive at the irradiance signal represented in Spherical Harmonics:

yet use the coefficients more efficiently. Also, avoiding any nonpolynomial basis functions circumvents high evaluation costs, as
the basis functions have to be evaluated for each fragment.
The upper hemisphere Ω+ that carries the signal E(~
x, ~n) is a closed
half-space of the full sphere, separated by the plane at z = 0. In
other words, with ~n given in spherical coordinates (θ, φ), the rangeof the latitudinal parameter reduces from θ = 0..π to θ = 0..π/2,
while the longitudinal parameter range stays unmodified at φ =0..2π.
Our goal is to choose a set of hemispherically orthogonal elementsof the polynomial Hilbert space [Sansone 1991] that can best represent a general hemispherical irradiance signal. First, we observe that since the longitudinal parameter range does not change,
all Spherical Harmonics basis functions that are symmetric to thez = 0 plane are automatically orthogonal over the upper hemisphere Ω+ , and we can thus use them without modification. Con1
2
sidering the first three bands, these functions are Y00 , Y−1, Y11 , Y−2
2
and Y2 (see Figure 2). Note that in the Euclidean representation of
Spherical Harmonics, these are all functions that do not explicitly
depend on the value of z.
For the latitudinal part, where the parameter range is halved, we
shift Y01 to the hemisphere analogous to the HSH and Makhotkinbasis, replacing cos θ with 2 cos θ − 1. Since HSH is createdthrough shifting the Spherical Harmonics to the hemisphere, thisis the same function as the HSH basis function with l = 1, m = 0.
Also, the Zernike basis contains the negative of this function in its
second band with l = 0, n = 2. Remarkably, without any explicit orthogonalization, all functions are still orthogonal over theupper hemisphere Ω+ , which was the initial goal. Normalization of
all functions to the hemisphere results in the following set of basis
functions for the H-basis:
H1

=

H2

=

(7)

H3

=

Please note that because a3 = 0, the 3rd band never has to be calculated in the expansion. Since also the factor a4 as well as all higher
band factors is very small, the first three Spherical Harmonics bands
are sufficient to represent the irradiance signal with a high accuracy
for most practical purposes, and this is the reason why a Spherical
Harmonics representation is so efficient.

H4

=

H5

=

H6

=

XX l lESH (~n) =sm Ym (~n)
lm

If storing 9 coefficients (i.e., 27 in the trichromatic case) at eachsurface sample point is acceptable, we can calculate the irradianceat any surface point by directly evaluating the Spherical Harmonics
basis functions using a normal looked up from the normal map andusing the interpolated coefficients to evaluate equation 7. However,
we are not making the most efficient use of the coefficients since
the functions are only evaluated on the hemisphere Ω+ , and not thefull sphere. The created directional irradiance signals can be better
represented in a hemispherical basis. In the following section, we
propose a hemispherical basis that is polynomial and orthogonal,
and requires less coefficients to represent irradiance signals with acomparable error to Spherical Harmonics.

4 H-Basis
Since a Spherical Harmonics representation of irradiance signals
is so successful, we want to stay as close to the Spherical Harmonics basis functions as possible when designing our new basis,

1
√
2π
r

(8)
r

3
3
sin φ sin θ = −
y
−
2π
2π
r
r
3
3
(2 cos θ − 1) =(2z − 1)
2π
2π
r
r
3
3
−
cos φ sin θ = −
x
2π
2π
r
r
15
1 15
sin 2φ sin2 θ =
xy
2 2π
2π
r
r
1 15
1 15 2cos 2φ sin2 θ =(x − y 2 )
2 2π
2 2π

(9)
(10)
(11)

(12)
(13)

Analogous to Spherical Harmonics, we can choose up to what polynomial degree (with respect to the Euclidean representation) we
want to approximate the irradiance signal. Using only the first 4
coefficients corresponds to the constant and linear basis functions.
We call this reduced basis H4 , and refer to the full basis, including
the two quadratic functions, with H6 (not to be confused with thebasis functions H i ). Note that this allows the option to choose thenumber of evaluated functions at run-time, simply not evaluating
the two quadratic basis functions.
The complete H-basis is visualized in Figure 2. While most functions look very similar to their SH counterparts, just restricted tothe upper hemisphere, it is interesting to take a closer look at H 3 ,which results from shifting Y01 . Intuitively speaking, the shifting
operation increases the frequency content of this function, it has
one more “mode” than the original Y01 restricted to the hemispherewould have. It rather resembles Y02 restricted to the hemisphere. So

Figure 2: Spherical Harmonics basis functions (left) compared to the H-basis functions (right).

basically, through the restriction to the hemisphere, fewer functions
can provide a more accurate fit to a given signal, which explains thegood accuracy shown later at a lower coefficient count. Compared
to a hemispherical projection of Spherical Harmonics as proposedin [Sloan et al. 2003], Y01 is also the basis function that can be best
fitted with other Spherical Harmonics basis functions and can beomitted. Yet, a high number of basis functions that are not orthogonal to Y01 is needed so this approach is only possible for signals
represented using more than 3 bands.
The linear basis functions can also be constructed by building theproper duals [Sloan et al. 2003] of the Spherical Harmonics basis
functions on the hemisphere and therefore, hemispherically leastsquare projected linear Spherical Harmonics have the same error as
the H4 -basis if only the upper hemisphere is used. Yet, the H4 basis is orthogonal which makes the projection into the H-basis
simpler.

4.1

Expansion into the H-Basis

√1
2

0


 0


 0



 0

 0
0

1
√
2

1
2

q

3
2

0

0

0

0

0

0

1
√
2 2

0

0

0

0
0
0

0
0
0

1
√
2

0

0
0

1
√
2

0
0
0

0

3
8

0
q

5
2
1
4



0

0

0

0
q

0


0 


0 



0 

0 

0
0
0

15
2
3
8

0
q
0
0

5
2

√1
2

(14)
By multiplying the Spherical Harmonics coefficient vector with Th ,the H-basis coefficient vector containing all hi is created. Because
we stayed very close to the basis functions of Spherical Harmonics,
the matrix is sparse and poses no considerable calculation overhead.
If the irradiance is available with SH coefficients up to l = 4 (withall l = 3 coefficients 0), the l = 4 coefficients can also be projected
into the H-basis with a matrix given in Appendix A. In practice,
this only performs imperceptible corrections to the signal and is notnecessary in almost all cases.

Run-Time Evaluation

Up to now, we have created the directional irradiance on the surfaces in tangent space through a precomputation step. The necessary coefficients are transported on a per vertex basis or using coefficient texture maps. In the trichromatic case, this results in 4 or 6
additional colors per vertex or texture maps. If tangent space normal maps are used, the irradiance is calculated by explicitly evaluating the basis functions in the direction of the looked up normal ~n,weighted by the interpolated coefficients
EH (~n) =nXhi H i (~n)

(15)

i=1

for every surface point. For the final color or emitted radiance,
EH can be multiplied by a material coefficient or a lookup from analbedo texture.

4.3

In Section 3, we have shown how to calculate the SH representation of an irradiance signal. To transform such a signal into the
H-basis, we calculate the transformation matrix by projecting theSpherical Harmonics up to l = 2 into the H-basis, resulting in thetransformation matrix Th

4.2

Directional Irradiance Tangent SpaceIn almost all practical cases that use texture maps instead of pervertex caching, a second set of texture coordinates that creates anunambiguous mapping of the surfaces is used to define the light
map or coefficient textures. Using the tangent space of the second
texture coordinate set, calculated from the UV directions of this set,to represent the irradiance would result in the fact that the tangent
space normal maps reside in a different tangent space than the coefficient maps.
Fortunately, both texture coordinate sets share the same vertices andnormals as well as interpolation in the rendering pipeline. By simply using the tangent and bitangent of the normal map tangent spacein the irradiance texture coordinates during the precomputation of
the irradiance, a tangent space using the irradiance texture coordinate set is defined that is exactly aligned in object space with thenormal map tangent space. This step is allowed because we only
need the local directions of the tangent space during the run-timeevaluation and not its position. The looked up normal can be useddirectly to evaluate the weighted basis functions without any additional data or transformations.
Effectively, the irradiance texture coordinate set is only used todefine the surface points where the irradiance is calculated andcached, while the normal map tangent space defines the tangent andbitangent for both spaces, resulting in a correctly aligned irradiancesignal relative to the looked up normal.

Figure 3: Average of the integrated mean square error over 10,000
random irradiance functions grouped by number of coefficients.

5

Figure 5: Detail of a game scene without albedo texturing using
H4 (upper) and the more accurate H6 (lower) basis. The differences are marginal, while the more accurate H6 basis showsslightly more defined detail.

Error Analysis and Results

Since any hemispherical basis such as described in Section 2 cancarry an approximation of a hemispherical irradiance signal, we candirectly compare the H-basis to any other hemispherical basis by
substituting it for the H-basis in the precomputation as well as in
the run-time evaluation to determine their accuracy. As an error
metric, we use the integrated mean square error
Z
IMSE =(Ω+

nX

ci Bi (~n) − E(~n))2 d~na good representation with 4 basis functions. The similar effectiveness in representation of the Zernike basis and the H-basis can be
explained by the fact that the basis functions have a similar shape,
besides sharing two basis functions, namely the constant function
H 1 and H 3 , which is also true for HSH. Comparing the H-basis tobases with 9 coefficients, only quadratic Spherical Harmonics havea lower error.

(16)

i=1

where E(~n) is the fully correct irradiance signal and ci Bi the corresponding weighted basis function of each basis. The IMSE of allbases with different numbers of coefficients averaged over 10,000
random irradiance signals is shown in Figure 3.
As can bee seen, the H-basis, both with 4 basis functions candeliver the same error as least square projected linear Spherical
Harmonics while being an orthogonal basis. With 6 coefficientsthe lowest error for the number of coefficients used, leveraging
the same advantages as Spherical Harmonics. Interestingly, theZernike-basis is also showing a low error and has a lower error with
3 coefficients than the Half-Life 2 basis, though 3 coefficients are
not enough for an acceptable representation as can be seen in Figure
4.
Although the average error of the Zernike basis is only slightly
higher than H 6 , it has a much higher evaluation cost due to its
non-polynomial basis functions. An evaluation of this basis with 6
basis functions contains two square roots and 4 divisions. Also, theZernike basis requires 6 functions while the H-basis already allows

Figure 4 shows a direct comparison of all bases using two or threebands under the same lighting conditions. The used lighting is an
HDR environment map with the sun at grazing angle, which poses aworst case situation because the irradiance changes strongly in thelongitudinal as well as latitudinal parameter. For practical purposes,
though the error is still higher than quadratic Spherical Harmonics,
H6 delivers an accurate representation as can be seen in the absolutedifference images of both Spherical Harmonics and H6 .
A typical game scene using H6 can bee seen in Figure 1, which
also shows the difference between traditional light mapping and irradiance normal mapping. Figure 5 shows a close-up depicting thedifference between H4 and H6 . As can be seen, the perceptual
difference between H4 and H6 is marginal and, due to the orthogonality of the basis, distributed over the hemisphere, which makes
H4 the most efficient choice. Using only two more coefficientswith the H6 basis, the result is slightly more pronounced since thelongitudinal accuracy is increased, and can deliver a numerical accuracy comparable to quadratic Spherical Harmonics in case thebasis is used for other purposes than irradiance normal mapping or
if a higher accuracy is desired.

Figure 4: Comparison of all hemispherical bases with different number of bands representing the same irradiance signal. The lower rightimages show the absolute difference of quadratic Spherical Harmonics and H6 to the ground truth.

6

Conclusion and Future Work

We have designed a new hemispherical basis, called H-basis, which
is optimized for representing a directional irradiance signal on thehemisphere for the purpose of irradiance normal mapping. It isthe best option for a low number of coefficients without sacrificing the advantages of orthogonal polynomial basis systems, being
the fastest basis to evaluate and having the lowest error to coefficients ratio. Analogous to other bases, the number of coefficients
increases the accuracy, keeping the possibility to change the number of coefficients at run-time to create shader levels-of-detail or to
fit the number of coefficients to the given resources.
We showed that 4 coefficients are sufficient for a perceptually acceptable irradiance representation and 6 coefficients for a numerically accurate representation. Besides directional irradiance signals, the H-basis is also a good choice to represent other lowfrequency signals on the hemisphere and any signal can be directly
projected into the H-basis due to its orthogonality. Specifically, theH-basis can replace the Half-Life 2 basis in methods such as [Sloan
2006] and [Habel et al. 2007], delivering a far higher accuracy withjust one coefficient more.
The fact that no explicit orthogonalization has been used to derive
the basis functions hints at an undiscovered polynomial orthonormal basis on the hemisphere that is the direct equivalent of Spheri-cal Harmonics, sharing most of its attributes.

References
BASRI , R., AND JACOBS , D. 2000. Lambertian reflectance andlinear subspaces. Tech. rep., Jerusalem, Israel, Israel.
C HEN , H., AND L IU , X. 2008. Lighting and material of halo 3.
In SIGGRAPH ’08: ACM SIGGRAPH 2008 classes, ACM, New
York, NY, USA, 1–22.
G AUTRON , P., K RIV ÁNEK , J., PATTANAIK , S. N., AND B OUA TOUCH , K. 2004. A novel hemispherical basis for accurate andefficient rendering. In Rendering Techniques, 321–330.
G REEN , R. 2003. Spherical harmonic lighting: The gritty details.
Archives of the Game Developers Conference (March).
G REEN , C. 2007. Efficient self-shadowed radiosity normal mapping. In SIGGRAPH ’07: ACM SIGGRAPH 2007 courses,
ACM, New York, NY, USA, 1–8.
G ROEMER , H. 1996. Geometric Applications of Fourier Series andSpherical Harmonics. Cambridge University Press.
H ABEL , R., K USTERNIG , A., AND W IMMER , M. 2007. Physically based real-time translucency for leaves. In Rendering Tech-niques 2007 (Proceedings Eurographics Symposium on Rendering), Eurographics Association, J. Kautz and S. Pattanaik, Eds.,
Eurographics, 253–263.
J ENSEN , H. W. 1996. Global illumination using photon maps. In
Proceedings of the eurographics workshop on Rendering techniques ’96, Springer-Verlag, London, UK, 21–30.
K AJIYA , J. T. 1986. The rendering equation. In SIGGRAPH ’86:
Proceedings of the 13th annual conference on Computer graphics and interactive techniques, ACM, New York, NY, USA, 143–
150.
KOENDERINK , J. J., D OORN , A. J. V., AND S TAVRIDI , M. 1996.
Bidirectional reflection distribution function expressed in termsof surface scattering modes. In ECCV ’96: Proceedings ofthe 4th European Conference on Computer Vision-Volume II,
Springer-Verlag, London, UK, 28–39.
L AM , P.-M., L EUNG , C.-S., AND W ONG , T.-T. 2006. Noiseresistant fitting for spherical harmonics. IEEE Transactions on
Visualization and Computer Graphics 12, 2, 254–265.
M AKHOTKIN , O. A. 1996. Analysis of radiative transfer between
surfaces by hemispherical harmonics. Journal of Quantitative
Spectroscopy and Radiative Transfer 56, 6, 869–879.
M C TAGGERT, G. 2004. Half-Life 2/Valve Source Shading. Tech.
rep., Valve Corporation.
R AMAMOORTHI , R., AND H ANRAHAN , P. 2001. An efficient representation for irradiance environment maps. In SIGGRAPH ’01:
Proceedings of the 28th annual conference on Computer graphics and interactive techniques, ACM, New York, NY, USA, 497–
500.
S ANSONE , G. 1991. Orthogonal Functions. Dover Publications.
S CHR ÖDER , P., AND S WELDENS , W. 1995. Spherical wavelets:
efficiently representing functions on the sphere. In SIGGRAPH’95: Proceedings of the 22nd annual conference on Computer
graphics and interactive techniques, ACM, New York, NY,
USA, 161–172.
S LOAN , P.-P., K AUTZ , J., AND S NYDER , J. 2002. Precomputed radiance transfer for real-time rendering in dynamic, lowfrequency lighting environments. In SIGGRAPH ’02: Proceedings of the 29th annual conference on Computer graphics andinteractive techniques, ACM, New York, NY, USA, 527–536.
S LOAN , P.-P., H ALL , J., H ART, J., AND S NYDER , J. 2003. Clustered principal components for precomputed radiance transfer.
ACM Trans. Graph. 22, 3, 382–391.
S LOAN , P.-P. 2006. Normal mapping for precomputed radiancetransfer. In I3D ’06: Proceedings of the 2006 symposium on
Interactive 3D graphics and games, ACM, New York, NY, USA,
23–26.
S LOAN , P.-P. 2008. Stupid spherical harmonics (sh) tricks.

Appendix A
Transformation matrix Th4 x for l = 4 coefficients arranged in avector of the form s4−4 ..s44 .


0 0 0
0
0
0
0 0 0
√
0 0 0 − 150q0
0 0 0
160 0 00− 18 320
0 0 0
(17)√
0 0 000− 1615 0 0 0
0 0 000
0
0 0 0
0 0 0
0
0
0
0 0 0