A ray tracer with photon mapping. Photons are stored in a k-d tree for efficient retrieval. Various primitives are supported (sphere, plane, cone, etc.), as well as more complex objects (cube, cuboctahedron, cup, lampshade, etc.). Various material properties are supported to simulate reflection and refraction of water, metal, and so on.
This is an old project: not very user friendly and the code is disorganized! But it makes nice pictures:
Keyboard controls:
SPACE to render
WASD to move camera [hold down shift to speed up]
QE to tilt camera [ " ]