Photon Mapping
Documentation: PhotonMap PhotonKDTree PKDNode Photon see also the scatterPhoton() methods in the Material classes.
The Photon Map provides a global illumination solution, which can be especially used to simulate caustics. We decided to follow the advice from Wald et. al. in Balancing Considered Harmful -- Faster Photon Mapping using the Voxel Volume Heuristic which can be found on the publications page of Ingo Wald. We took care to implement the O(nlogn) algorithm described, most of it can be found in the PKDNode class.
A scene with an area light a refracting sphere and a red box, without and with direct visualization of the photon map (plus direct lighting and shadow rays). Here two million photons were used.