Spherical Harmonic Lighting Jaroslav Křivánek Overview • Function approximation • Spherical harmonics • Some other time Illumination from environment maps • BRDF representation by spherical harmonics • Spherical harmonics rotation Hemispherical harmonics Radiance Caching Precomputed Radiance Transfer • Clustered Principal Component Analysis • Wavelet Methods I) Function Approximation Function Approximation • G(x) ... function to approximate • B1(x), B2(x), … Bn(x) … basis functions • We want n G ( x) ci Bi ( x) i 1 • Storing a finite number of coefficients ci gives an approximation of G(x) Function Approximation • How to find coefficients ci? Minimize an error measure • What error measure? L2 error EL2 [G( x) ci Bi ( x)] 2 I i Function Approximation • Minimizing EL2 leads to B1 B1 B2 B1 Bn B1 • Where B1 B2 B2 B2 Bn B2 B1 Bn Bn Bn c1 G B1 c2 G B2 cn G Bn F G F ( x)G( x)dx I (function scalar product) Function Approximation • Orthonormal basis 1 i j Gi G j 0 i j • If basis is orthonormal then c1 G B1 c G B 2 2 cn G Bn • we want our bases to be orthonormal II) Spherical Harmonics Spherical Harmonics • Spherical function approximation • Domain I = unit sphere S = directions in 3D • Approximated function: G(θ,φ) • Basis functions: Yi(θ,φ)= Yl,m(θ,φ) indexing: i = l (l+1) + m Spherical Harmonics band 0 (l=0) Y0,0 band 1 (l=1) Y1,-1 Y2,-2 Y2,-1 Y1,0 Y2,0 Y1,1 Y2,1 Y2,2 band 2 (l=2) Spherical Harmonics • K … normalization constant • P … Associted Legendre polynomial • Orthonormal polynomial basis on (0,1) In general: Yl,m(θ,φ) = K . Ψ(φ) . Pl,m(cos θ) Yl,m(θ,φ) is separable in θ and φ Function Approximation with SH n 1 m l G( , ) cl ,mYl ,m ( , ) l 0 m l • n…approximation order • There are n2 harmonics for order n Function Approximation with SH • Spherical harmonics are ORTHONORMAL • Function projection Computing the SH coefficients 2 cl ,m G Yl ,m G( )Yl ,m ( )d G( , )Yl ,m ( , ) sin dd S 0 0 Usually evaluated by numerical integration • Low number of coefficients low-frequency signal Product Integral with SH • Simplified indexing Yi= Yl,m i = l (l+1) + m • 2 functions represented by SH n2 F ( ) f iYi ( ) i 0 n2 G( ) giYi ( ) i 0 • Integral of F(ω).G(ω) is the dot product of F’s and G’s SH coefficients n2 F ()G()d f g S i 0 i i Product Integral with SH F(ω) = fi Yi(ω) G(ω)F(ω)dx = fi G(ω) =gi Yi(ω) gi Product Integral with SH • Fundamental property for graphics • Proof III) Illumination from environment maps Direct Lighting • Illumination integral at a point • How it simplifies for a parallel directional light • Environment maps Approximate specular reflection Lighting does not depend on position General illumination integral for an environment map How it simplifies for a specular BRDF What if the BRDF is not perfectly specular? Illumination from environment maps • SH representation for lighting & BRDF • Rotation III) Hemispherical harmonics Hemispherical harmonics • New set of basis functions • Designed for representing hemispherical functions • Definition similar to spherical harmonics Hemispherical harmonics Shifting Hemispherical harmonics SH: Yl,m(θ,φ) = K . Ψ(φ) . Pl,m(cos θ) HSH: Hl,m(θ,φ) = K . Ψ(φ) . Pl,m(2cos θ-1) (0,0) (1,-1) (2,-2) (1,0) (2,-1) (2,0) (1,1) (2,1) (2,2) Hemispherical Harmonics • video III) Radiance caching Radiance Caching • Irradiance caching [Ward88] Diffuse indirect illumination is smooth Sample only sparsely, cache and interpolate later • Low-frequency view BRDF Indirect illumination smooth as well But the illumination is view dependent Irradiance does not describe view dependence Cache radiance instead of irradiance RADIANCE CACHING Radiance Caching • Incoming radiance representation • BRDF representation • Interpolation • Alignment • Gradients • Video