Graphics Reference
In-Depth Information
carry lots of light. The nature of the algorithm makes it easy to express this kind
of high-level understanding.
Furthermore, there are some mutation strategies that are relatively easy to
implement, but which end up more frequently sampling a “bright” area of the
path space that's previously been rarely sampled. Such strategies represent a big
improvement in the algorithm.
The details of the algorithm are, unfortunately, rather complex, and involve
substantial mathematics. The reader interested in reproducing the results should
read Veach's dissertation [Vea97]; indeed, anyone really interested in rendering
should do so.
31.19 Photon Mapping
Recall that we described photon mapping as being like bidirectional path tracing,
except that rather than connecting an eye path to a light path, we took the final
point, P , of the eye path and used the collection of all the light paths to estimate
the light arriving at P . The problem, of course, is that in any finite set of light paths,
there aren't likely to be any that end exactly at P . Instead, we have to estimate the
arriving light by looking at the arriving light at nearby points and interpolating
somehow.
Doing so entails representing all the arriving light in such a way that searching
for “nearby” points is easy. In photon mapping, this incoming light is stored in a
photon map, a relatively compact structure that's not directly related to the scene
geometry. Information in the map is stored at points; we'll describe exactly the
data stored at each point presently.
Thus, photon mapping has two phases: the construction of the photon map (via
photon tracing ), and the estimation of the outgoing radiance (at many different
points) using the photon map.
The process of estimating the radiance leaving a surface from the knowledge
of the radiance arriving at several nearby points involves scattering the arriving
light (via the BSDF). One advantage of storing the arriving light (or at least a
sample of the arriving light) is that it compactly represents a great many outgoing
light rays (via the BSDF). A sample of the arriving light is stored in a record that's
unfortunately called a photon, despite being quite distinct from the elementary
particle of the same name. A photon-mapping photon (which is the only kind we'll
discuss in the remainder of this section) consists of a location in space, a direction
vector
v i that points toward the light source or the last bounce the light took before
arriving at this point (i.e.,
v i points opposite the direction of propagation), and an
incident power. It's helpful to assign units: The coordinates of the location should
be specified in meters; the direction vector is unitless, but has length 1; and the
power is specified in watts. We'll denote these by P ,
v i , and Φ i , respectively. A
photon-mapping photon therefore represents an aggregate flow of many physical
photons per second.
The scene represented by the photon map consists of surfaces and luminaires
(which may themselves be surfaces). For each light L we let Φ L be the emissive
power of the light. For example, a 40 W incandescent lamp has an emissive power
of about 10 W in the visible spectrum, so for such a bulb, Φ L = 10 W. And we
denote the total power of all light sources by
Φ=
L
Φ L .
(31.98)
 
 
Search WWH ::




Custom Search