Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

Wavelength Dependent Photon Mapping

Sign in to follow this  


Hey guys,

recently, I had to work on a project for my lecture on global illumination. My partner and I decided to implement a variant of the progressive photon mapping technique, described by Hachisuka et al.[1]: instead of assigning each photon a certain color, we choose to map each photon to a certain wavelength. This allowed us to simulate caustics more accurately and achieve effects splitting a beam of white light into its spectrum of colors:


So instead of using the refraction index, that is often given for transparent materials, we used Cauchys equation[2] to calculate the correct*, individual refraction index for each photon:


Where lambda is the wavelength and B and C are material parameters, controlling the overall refraction and the variance depending on the wavelength.
(*Actually, the correct refraction index is given by the Sellmeier equation[3], but for light in the visible spectrum the presented formula gives a reasonable approximation.)

There were a number of other problems we had to solve and I will probably create another post about this. So if you are interested in more technical details, let me know. smile.png
But now, I want to show you some results.

The first scene is the standard cornell box with two spheres in it:


The image on the left shows the noisy color-artifacts that are introduced with our method. This effect occurs, if the individual points in the scene did not receive enough photons, so that the average color is not the white, that is emitted from the light source. However, simply shooting more photons solves this problem and leads to the image on the right.

This looks pretty nice, but the interesting question was: does our implementation really produce the rainbow effect caused by a prism? So I created a scene with a narrow light source, which emits a beam of light at a prism and it turned out...


...it does! smile.png
Sign in to follow this  


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!