An Efficient Representation for Irradiance Environment Maps Ravi

  • Slides: 23
Download presentation
An Efficient Representation for Irradiance Environment Maps Ravi Ramamoorthi and Pat Hanrahan 2001 A

An Efficient Representation for Irradiance Environment Maps Ravi Ramamoorthi and Pat Hanrahan 2001 A Mike Day Paper Exercise

An Efficient Representation for Irradiance Environment Maps �What ? Describes a method of calculating

An Efficient Representation for Irradiance Environment Maps �What ? Describes a method of calculating Global Illumination using spherical harmonics

An Efficient Representation for Irradiance Environment Maps �When calculating Global Illumination, high- frequency lighting

An Efficient Representation for Irradiance Environment Maps �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 map The irradiance map

An Efficient Representation for Irradiance Environment Maps �Traditional Lighting - Wikipedia

An Efficient Representation for Irradiance Environment Maps �Traditional Lighting - Wikipedia

An Efficient Representation for Irradiance Environment Maps �Lighting a scene

An Efficient Representation for Irradiance Environment Maps �Lighting a scene

An Efficient Representation for Irradiance Environment Maps �What? A method of approximating light accumulation

An Efficient Representation for Irradiance Environment Maps �What? A method of approximating light accumulation (Irradiance) at a point in space using spherical harmonics �What?

An Efficient Representation for Irradiance Environment Maps �Spherical harmonics A method of approximating a

An Efficient Representation for Irradiance Environment Maps �Spherical harmonics A method of approximating a function over a domain Similar to Fourier transform Approximating a square wave

An Efficient Representation for Irradiance Environment Maps �What is irradiance? � Irradiance is the

An Efficient Representation for Irradiance Environment Maps �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.

An Efficient Representation for Irradiance Environment Maps �How can we calculate E(n)? Spherical Harmonics!

An Efficient Representation for Irradiance Environment Maps �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 (θ, ϕ).

An Efficient Representation for Irradiance Environment Maps �So, let's apply Spherical Harmonics to E(n)!

An Efficient Representation for Irradiance Environment Maps �So, let's apply Spherical Harmonics to E(n)!

An Efficient Representation for Irradiance Environment Maps �So, let's apply Spherical Harmonics to E(n)!

An Efficient Representation for Irradiance Environment Maps �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

An Efficient Representation for Irradiance Environment Maps �So, let's apply Spherical Harmonics to E(n)!

An Efficient Representation for Irradiance Environment Maps �So, let's apply Spherical Harmonics to E(n)! Spherical harmonics lets us replace the function E(θ, ϕ) with a summation over l and m. ▪ Ylm(θ, ϕ): The spherical harmonics basis function ▪ Elm: A coefficient for Ylm(θ, ϕ) How many basis functions?

An Efficient Representation for Irradiance Environment Maps �So, let's apply Spherical Harmonics to L(ω)!

An Efficient Representation for Irradiance Environment Maps �So, let's apply Spherical Harmonics to L(ω)! Rewrite L(ω) in terms of (θ, ϕ)

An Efficient Representation for Irradiance Environment Maps �So, let's apply Spherical Harmonics to L(ω)!

An Efficient Representation for Irradiance Environment Maps �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(θ')]

An Efficient Representation for Irradiance Environment Maps �Simplify the equation! The derivation of the

An Efficient Representation for Irradiance Environment Maps �Simplify the equation! The derivation of the integrals is quite difficult. This is the result of the paper:

An Efficient Representation for Irradiance Environment Maps �Replace the

An Efficient Representation for Irradiance Environment Maps �Replace the

An Efficient Representation for Irradiance Environment Maps �What does this mean? Values for drop

An Efficient Representation for Irradiance Environment Maps �What does this mean? Values for drop off quickly l 0 1 2 3 4 5 6 7 8 Al 3. 142 2. 094 0. 785 0 -0. 131 0 0. 049 0 -0. 025

An Efficient Representation for Irradiance Environment Maps �What is ? Everything after the 3

An Efficient Representation for Irradiance Environment Maps �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

An Efficient Representation for Irradiance Environment Maps �What is ? The lighting environments they

An Efficient Representation for Irradiance Environment Maps �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.

Application �Bounced light calculation is expensive �Light maps only work for static objects �Sampling

Application �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

Application � 9 coefficients for each channel �Spherical harmonic coefficients can be calculated from

Application � 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

Application �Artists place volumes �Automatic sampling within volume produces many voxels

Application �Artists place volumes �Automatic sampling within volume produces many voxels

Application �Interpolate between voxels �Irradiance evaluated as M is a 4 x 4 matrix

Application �Interpolate between voxels �Irradiance evaluated as M is a 4 x 4 matrix based on coefficients