Presentation on theme: "An Efficient Representation for Irradiance Environment Maps Ravi Ramamoorthi and Pat Hanrahan 2001."— Presentation transcript:
An Efficient Representation for Irradiance Environment Maps Ravi Ramamoorthi and Pat Hanrahan 2001
What ? Describes a method of calculating Global Illumination using spherical harmonics
When calculating Global Illumination, high- frequency lighting gets blurred. This implies that we might be able to ignore higher-order spherical harmonics terms. The radiance mapThe irradiance map
Traditional Lighting - Wikipedia
Lighting a scene
What? A method of approximating light accumulation (Irradiance) at a point in space using spherical harmonics What?
Spherical harmonics A method of approximating a function over a domain Similar to Fourier transform Approximating a square wave
What is irradiance? Irradiance is the accumulation of all lighting values on a half-sphere for a point (given its normal). It is a function of the normal ( n ). The integral over ω removes the dependence on ω. The integral represents the accumulation of all the light values.
How can we calculate E(n) ? Spherical Harmonics! Like a Fourier Transform, Spherical Harmonics translates one function into a sum of basis functions multiplied by coefficients. The basis functions are defined using polar coordinates (θ, ϕ ).
So, let's apply Spherical Harmonics to E(n) !
Rewrite E(n) in terms of (θ, ϕ ) ▪ E(n) is in Cartesian coordinates ▪ E(θ, ϕ ) is E(n) converted to polar coordinates
So, let's apply Spherical Harmonics to E(n) ! Spherical harmonics lets us replace the function E(θ, ϕ ) with a summation over l and m. ▪ Y lm (θ, ϕ ) : The spherical harmonics basis function ▪ E lm : A coefficient for Y lm (θ, ϕ ) How many basis functions?
So, let's apply Spherical Harmonics to L(ω) ! Rewrite L(ω) in terms of (θ, ϕ )
So, let's apply Spherical Harmonics to L(ω) ! Replace (n ∙ ω) with the cosine ▪ Remember: a ∙ b = |a| |b| cos(θ) ▪ Note that n and ω are unit vectors so their lengths are 1 ▪ Let A(θ') = max[0, cos(θ')]
Simplify the equation! The derivation of the integrals is quite difficult. This is the result of the paper:
What does this mean? Values for drop off quickly l AlAl
What is ? Everything after the 3 rd band of spherical harmonics contribute little You get a good approximation by using only 9 coefficients ▪ l = [0, 1, 2]-l ≤ m ≤ l ▪ (0, 0), (1, -1), (1, 0), (1, 1), (2, -2), (2, -1), (2, 0), (2, 1), (2, 2) ▪ Technically we get l = 3 as well, since the coefficient is 0
What is ? The lighting environments they use for their test cases have an average error of around 1% and a maximum error of around 5%. Their test environments look to be fairly representative, so the margin for error for our environments should be similar.
Bounced light calculation is expensive Light maps only work for static objects Sampling from voxels would work for dynamic objects, but needs lots of voxels
9 coefficients for each channel Spherical harmonic coefficients can be calculated from environment maps Irradiance is low frequency so maps do not need to be especially high res
Artists place volumes Automatic sampling within volume produces many voxels
Interpolate between voxels Irradiance evaluated as M is a 4x4 matrix based on coefficients