Figure 1: Our example scenes, from purely diffuse illumination to highly detailed caustics: a) Direct visualization of a diffuse photon map in the “Conference ” scene, using 2.1 million photons, b) the “GlassEgg ” with a sharp, compact caustic, c) the “MetalRing”, with highly detailed caustics distributed over the entire room, and d) a visualization of the illumination patterns generated by the highly complex “HeadLight ” model, using a total of 2.3 million photons. In these four scenes, our presented technique improves the performance of photon map queries by a factor of 1.3 to 5.8, resulting in overall speedups (including ray tracing) of 35, 65, 55, and 83 percent, respectively. Photon mapping is one of the most important algorithms for computing global illumination. Especially for efficiently producing convincing caustics, there are no real alternatives to photon mapping. On the other hand, photon mapping is also quite costly: Each radiance lookup requires to find the k nearest neighbors in a kd-tree, which can be more costly than shooting several rays. Therefore, the nearest-neighbor queries often dominate the rendering time of a photon map based renderer. In this paper, we present a method that reorganizes – i.e. unbalances – the kd-tree for storing the photons in a way that allows for finding the k-nearest neighbors much more efficiently, thereby accelerating the radiance estimates by a factor of 1.2–3.4. Most importantly, our method still finds exactly the same k-nearest-neighbors as the original method, without introducing any approximations or loss of accuracy. The impact of our method is demonstrated with several practical examples
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.