A Mike Day Paper Exercise

Presentation on theme: "A Mike Day Paper Exercise"— Presentation transcript:

A Mike Day Paper Exercise
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 Global Illumination using spherical harmonics

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 Taken from wikipedia: For each material in the scene, the following parameters are defined: “Ks” - which is a specular reflection constant, the ratio of reflection of the specular term of incoming light “Kd” - which is a diffuse reflection constant, the ratio of reflection of the diffuse term of incoming light (Lambertian reflectance), “Ka” - which is an ambient reflection constant, the ratio of reflection of the ambient term present in all points in the scene rendered “a ( alpha )” - which is a shininess constant for this material, which is larger for surfaces that are smoother and more mirror-like. When this constant is large the specular highlight is small. Furthermore, we have “Lights”, which is the set of all light sources, “Lm”, which is the direction vector from the point on the surface toward each light source ( specifies the light source), “N” , which is the normal at this point on the surface, “Rm”, which is the direction that a perfectly reflected ray of light would take from this point on the surface, “V”, which is the direction pointing towards the viewer (such as a virtual camera). - Wikipedia

An Efficient Representation for Irradiance Environment Maps
Lighting a scene Light doesn’t travel in a straight line, it bounces around losing energy with each bounce. Even corners that do not have direct access to light are lit. Calculating this is computationally expensive.

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

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 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! 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)! 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)! 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(ω)! Rewrite L(ω) in terms of (θ, ϕ)

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 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
What does this mean? Values for drop off quickly l 1 2 3 4 5 6 7 8 Al 3.142 2.094 0.785 -0.131 0.049 -0.025

An Efficient Representation for Irradiance Environment Maps
What is ? Everything after the 3rd 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 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 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 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 Interpolate between voxels Irradiance evaluated as
M is a 4x4 matrix based on coefficients