The algorithm is used to realistically simulate the interaction of light with different types of objects (similar to other photorealistic rendering techniques).
Specifically, it is capable of simulating the refraction of light through a transparent substance such as glass or water (including caustics), diffuse interreflection between illuminated objects, the subsurface scattering of light in translucent materials, and some of the effects caused by particulate matter such as smoke or water vapor.
Photon mapping is particularly adept at handling this effect because the algorithm reflects photons from one surface to another based on that surface's bidirectional reflectance distribution function (BRDF), and thus light from one object striking another is a natural result of the method.
Photon mapping differs though in that it separates the light transport from the nature of the geometry in the scene.
In this step of the algorithm, the photon map created in the first pass is used to estimate the radiance of every pixel of the output image.
For an accurate estimate of direct illumination, a ray is traced from the point of intersection to each light source.
As long as a ray does not intersect another object, the light source is used to calculate the direct illumination.
For an approximate estimate of indirect illumination, the photon map is used to calculate the radiance contribution.
In order to calculate surface radiance at an intersection point, one of the cached photon maps is used.