Image Synthesis Assignment 5: Importance Sampling

Due: April 3

[zip] << Includes prebuilt Windows binary and source

For this assigment, I implemented importance sampling based on environment lighting radiance maps. The first step was to convert the radiance map into a luminence map. This was used to generate a probability distribution function from which samples could be drawn in such a way as to favour more radiated parts of the environment map. We expect this to work because these points are where the rendering equation's integral will be large and therefore contribute more.

All values are premultiplied by sin(θ) in order to compenstate for spherical distortions and to ensure that poles of the sphere are not over-sampled.

In order to sample from this distribution, uniformly distributed samples over [0,1] are converted into samples from [π, 2π] for spherical coordinates, which are in turn converted into (x,y,z) positions on the unit sphere.

This process produces samples that are more likely to be at the high-radiance portions of the environment maps.

 

When these samples are used to sample the scene, the number of samples needed to reduce noise to an acceptable level dramtically decreases. The next set of images shows a comparison of randomly sampled points in the scene to the technique presented here.

All figures on the left are randomly sampled, and ones on the right importance sampled.