0.25.3 2007/02/20 Reduced memory usage of LDraw object. 0.25.2 2007/02/10 Revised dll interface. 0.25.1 2007/02/08 Fixed material pointer handling. 0.25 2007/02/04 Added MTL materials to objects. 0.24 2007/01/30 Re-wrote LDraw loading to be much more efficient and handle multi-material objects more efficiently. 0.23 2007/01/21 PCloud primative type. 0.22.4 2007/01/14 General improvements and continuation of pcloud primative 0.22.3 2007/01/12 Improved feedback of progress and photon map statistics. Fixed ull output (well, maybe on Win32 anyway?) 0.22.2 2007/01/12 Various improvements. 0.22.1 2007/01/11 Bilinear texture filtering. 0.22 2006/12/08 LDraw file loading working. 0.21.2 2006/12/06 Fixed function parser and other fixes. 0.21.1 2006/11/28 Gave up trying to fic LDR BFC errors automatically and wrote a separate programme to do it. 0.21 2006/11/10 LDraw rendering sort of working. 0.20.8 2006/10/16 Started making changes for LDraw LEGO file rendering. 0.20.7 2006/10/10 Improved aperture sampling/distribution AA handling in -m2 and -m3. 0.20.6 2006/10/10 Improved screen and logfile output. 0.20.5 2006/10/09 Fixed a bug in photon mapping where the emission probability was incorrect due to low precsion of float. 0.20.4 2006/10/04 Improvements to XML parser. 0.20.3 2006/09/24 Fixed a bug in the function evaluator. 0.20.2 2006/09/15 Fixed issue with mesh BVTree finding start of ray as intersection position. 0.20.1 2006/09/14 Fixed scaling issues with instances. 0.20 2006/08/21 Photon mapping.
The first seed sphere is placed at the centre. Then another sphere is put in at some distance away and made to random walk until it hits the seed and sticks. The next sphere is then put in and jiggled until it touches the aggregate. This process continues until you get this sort of image.
The colour channels vary as the absolute distance from the centre. Red from near to far, green from top to bottom and blue from left to right.
Whilst in the process of getting photon mapping working in my raytracer. While I was experimenting with different numbers of photons in the map and in the final gather step I came up with this. It's a direct visualisation of the global photon map with a mirrored ball in the background and a glass ball in the foreground. There is no direct illumination of the diffuse surfaces or specular lighting so the spheres appear black and the left and right walls don't have their red and green colours.
Believe it or not, everything appears to be working. The image is a result of casting only 1000 photons into the scene and collecting the nearest 10 from the map at each pixel. It took about 10s to render.