This paper describes a bidirectional Monte Carlo ray tracing method simulating global illumination in models containing complex objects that do not have to be tessellated. The two pass method combines a first pass light ray tracing (ray casting) with a second pass optimized Monte Carlo ray tracing. In the first pass, the light emitted from the light sources hit objects in the scene and may be reflected or transmitted - a kind of backward path tracing. This step handles all kinds of reflections and not only the specular to diffuse reflections. This turns out to be a valuable optimization. At every object-interaction, energy is stored on the surface of the object. For simple objects an illumination map is used. For complex objects e.g. procedurally based objects like fractals, energy is stored in a photon map. This new concept makes it possible to treat caustics upon such objects without having to parameterize the surface of the objects. The second pass, Monte Carlo ray tracing from the eye, visualizes the scene based upon the result from the first pass. We use the irradiance gradient method to model diffuse reflections seen directly from the eye. All secondary reflections are taken from the photon maps or the illumination maps. Only the caustic part of the ray casting step is visualized directly.
Henrik Wann Jensen and Niels Jørgen Christensen: "Photon Maps in Bidirectional Monte Carlo Ray Tracing of Complex Objects". Computers & Graphics vol. 19 (2), pp. 215-224, March 1995
A Desk with a procedural sphereflake and caustics through a glass of wine.
The same Desk with a procedural sphereflake and caustics through a glass of wine.
The title says it all...