Photon Mapping
Paul Solt and Lyndsey Whitman
The goal of this project was to extend our ray tracer from Computer Graphics II by using a global illumination technique. The original ray tracer only calculates direct illumination, which only uses the light from a single bounce. It feels fake or the materials look like plastic, and colors can’t “bleed” into eachother from the different surfaces. If you painted a wall red and turned on a light in the room, the other walls would have a red tint from the red wall “bleeding” light onto the others walls.
Photon mapping captures the indirect lighting that occurs in a room. For example, when light bounces off the wall, onto the table, and up to the ceiling. We can use a more complex lighting technique to capture the estimated light in an environment and mix it with the colors of the object to provide a more realistic render.
Project Final Report and Documentation

Figure 1: Scene with Direct Illumination

Figure 2: 10000 Photons, 5 used in estimate

Figure 3: 100000 Photons, 1000 used in estimate

Figure 4: Reflection on the Wall with shadows

Figure 5: Refraction

Figure 6: Walls are reflective, yet still store some photons. 2x Multisampling. There are a few lines of artifacts.
Fixed a bug with an invalid Polygon which was part of the diagnol line artifact in the previous image.

Figure 7: Walls and floor are 0.7 reflective. 1000 photons, 50 used in estimate with range of 1.5 (101 seconds)

Figure 8: 10,000 photons, 300 used in estimate range 2.0 (104 seconds)
Visualizing the Photon Map


Figure 9: 10,000 photons. Range = 2.25 (Left or top) 100 used in estimate (Right) 600 used in estimate


Figure 10: 100,000 photons (Left) 1,000 used in estimate, range = 1.5 (Right) 10,000 used in estimate, range = 1.0

Figure 11: 10000 photons 300 used in estimate range 2.5 (86 seconds)


Figure 12: 10000 photons 300 used in estimate range 2.5 (100 seconds) / Direct Illumination on the Right side


Figure 13: 10000 photons 300 used in estimate range 2.5 (239 seconds) Multiple Reflections on./ Photon Irradiance Visualized

Figure 14: 10000 photons 300 used in estimate (41 seconds)

Figure 16: (8074 seconds) 100000 photons, 800 used in estimate, 2.0 range.
Artwork Evolution
Facebook
@PaulSolt
- RT @flexibits: Happy 1st Birthday, Fantastical! http://t.co/bIcVDgbZ 2012/05/18
- @IAmReynolds thanks, I think it's the color choice that made it look good. Gradient colors similar to the line color. 2012/05/17
- @rwenderlich I'm interested if this is still an option. I did a text-based risk game back in high school. It could work for an iPad app. 2012/05/16
Github
Tags
animation App Store Artwork Evolution Boost Boot Camp C++ cross platform development Dual Monitors function pointers Gears of War 2 gestures git GLUT inheritance iOS iPad iPhone Macbook Pro Mac OS X MacPorts member functions Objective-C OCUnit OpenGL player/stage polymorphism presentation programming remote control RIT SCM slides static methods STL svn 1.6 tdd testable code testing unit testing version control Windows XP Xbox 360 Xcode xcode 3.1.2


