Graphics Reference
In-Depth Information
14.11.1 The Radiance Function
Consider a point X in space at which we wish to know the illumination. This is
frequently on some surface in the scene, but it need not be. The amount of light
incident at X from direction
is denoted L ( X ,
) . This implicitly defines a func-
v
v
tion L of two variables, X and
, which is called the radiance function, also
known as the plenoptic function. To be clear, the argument
v
denotes the direc-
tion of propagation. If there's a photon passing through the point P , traveling in
direction
v
, then L ( P ,
)
= 0, while it's quite possible that L ( P ,
v
)= 0. By
v
v
convention, we'll restrict to the case where
is a unit vector. The units of L are
v
sr 1 . Surface areas are measured in
units of square meters, and steradians are the spherical analog of angular mea-
sure, called solid angle. An angle can measure a 1D region on a 2D unit circle
in the plane, and you might express the rate of a quantity passing through that
1D region “per radian.” We measure the amount of energy passing through a 2D
region (a solid angle) on a unit sphere in 3-space “per steradian.”
It is useful to know that radiance is conserved along a ray through empty space.
Thus, if we know L ( X ,
m 2
watts per square meter-steradian, W
·
·
) , then we also know L ( X + t v
,
) for t >
0 so long as
v
v
there is no occluding object within distance t of X along that ray.
14.11.2 Direct and Indirect Light
We distinguish the light that arrives at a point directly from a luminaire from light
that arrived indirectly after reflecting off some surface in the scene. For example,
near an outdoor swimming pool, sunlight shines directly on the top of your head,
but it also reflects off the water to indirectly strike the bottom of your chin. If
there were no indirect light, then the bottom of your chin would appear completely
unilluminated. The indirect light arises from interaction between the luminaire and
the scene, so we consider it part of the light transport model and not the luminaire
model.
14.11.3 Practical and Artistic Considerations
Listing 14.10 gives a typical base class for a set of light-class implementations.
Its methods support the practical aspects of incorporating light sources into a ren-
derer, not the physical aspects of light emission.
Listing 14.10: A base class for all light sources, with trivial implementation
details omitted.
1
2
3
4
5
6
7
8
9
10
11
12
13
/ ** Base class for light sources * /
class Light {
public :
const std::string name() const ;
virtual CoordinateFrame cframe() const ;
/ ** for turning lights on and off * /
virtual bool enabled() const ;
/ ** true for physically-correct lights * /
virtual bool createsLambertianReflection() const ;
 
 
 
 
 
 
Search WWH ::




Custom Search