0% found this document useful (0 votes)
13 views5 pages

Photon Mapping Made Easy

This paper discusses the introduction of photon mapping as a teaching tool in an undergraduate computer graphics course, highlighting its advantages over traditional ray tracing and radiosity methods. The authors present a software tool designed to help students learn photon mapping through practical exercises, enabling them to visualize effects like soft shadows and color bleeding. The document outlines the methodology of photon mapping, including its two-pass process and the software design used to implement it in the classroom setting.

Uploaded by

Ven931
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views5 pages

Photon Mapping Made Easy

This paper discusses the introduction of photon mapping as a teaching tool in an undergraduate computer graphics course, highlighting its advantages over traditional ray tracing and radiosity methods. The authors present a software tool designed to help students learn photon mapping through practical exercises, enabling them to visualize effects like soft shadows and color bleeding. The document outlines the methodology of photon mapping, including its two-pass process and the software design used to implement it in the classroom setting.

Uploaded by

Ven931
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Photon Mapping Made Easy

Tin-Tin Yu, John Lowther and Ching-Kuang Shene


Department of Computer Science
Michigan Technological University
Houghton, MI 49931
{tiyu,john,shene }@mtu.edu

ABSTRACT APIs which, in general, do not support shadow generation,


This paper presents the authors’ introduction of photon reflection and refraction. Third, the design and modeling
mapping in an undergraduate computer graphics course, component is unlikely to be touched upon because students
Software was designed as a pedagogical and demonstration may dedicate too much time on programming and because
tool which permitted students to practice and learn photon a typical graphics API has a limited modeling capability.
mapping. Classroom experience and examples that illus- To overcome this “local illumination” bias and maintain a
trate soft shadows, color bleeding, indirect illumination and well-balanced graphics syllabus, we teach students ray trac-
caustic are also discussed. ing. Our experience, as reported in [6], shows that students
like ray tracing and learn global illumination models effec-
Categories and Subject Descriptors tively and efficiently from exercises designed to explore the
advantages of global illumination models and disadvantages
I.3.7 [Three-Dimensional Graphics and Realism]: Ray- of local illumination models. With this knowledge in hand,
tracing; K.3.2 [Computers and Education]: Computer in our Advanced Computer Graphics course, we present
science education ray tracing implementation details and discuss major short-
comings of ray tracing. We do cover radiosity in our course.
General Terms However, radiosity theory is complex and, reflection and re-
Photon Mapping, Ray Tracing fraction are not available unless more theory is discussed.
This is a very frustrating fact, and leads us to find a simple,
Keywords easy to understand, and powerful enough global illumination
based rendering method between ray tracing and radiosity.
Photon Mapping, Ray Tracing
The answer is photon mapping.
In the following, Section 2 elaborates why photon map-
1. MOTIVATION ping is a natural and reasonable choice, Section 3 briefly
The programming approach is the most popular approach discusses the theory of photon mapping, Section 4 presents
in teaching introductory computer graphics courses. How- the details of our software tool designed to help students
ever, it does have some serious drawbacks [4]. First, stu- explore photon mapping and generate images, Section 5
dents usually do not know if the created image is correct. demonstrates the quality of our system with a number of
C. A. R. Hoare once said: “You can’t teach beginning pro- examples, Section 6 summarizes our classroom experience,
grammers top-down design because they don’t know which and, finally, Section 7 has our conclusions.
way is up.” Likewise, it is difficult to teach graphics pro-
gramming to beginners because they do not know what the
anticipated effect should be. As a result, we need an easy 2. WHY PHOTON MAPPING?
way for students to recognize the effect of each graphics pa- Traditional ray tracing systems trace rays from an eye (or
rameter before they start to program. GraphicsMentor is a a camera) rather than from light sources, and one light ray
tool designed for this purpose [5, 7]. Second, the program- from a hit point to each light source is used to determine the
ming approach depends on local illumination-based graphics shadow color of that point. As a result, traditional ray trac-
∗This work is partially supported by the National Science ing techniques are not able to correctly generate shadows
Foundation under grant DUE-0127401. The third author is (and hence caustic) of refractive objects, produce indirect
also supported by an IBM Eclipse Innovation Award 2003. illumination from reflective objects, and implement diffuse
reflection (e.g., no color bleeding). Although soft shadows
are possible, one must use area lights that can significantly
increase processing time. On the other hand, radiosity pro-
Permission to make digital or hard copies of all or part of this work for vides soft shadows, color bleeding and indirect illumination
personal or classroom use is granted without fee provided that copies are for free; however, it does not handle specular reflection, has
not made or distributed for profit or commercial advantage and that copies difficulty in processing transparency (i.e., reflection and re-
bear this notice and the full citation on the first page. To copy otherwise, to fraction), requires the scene to be subdivided into polygons,
republish, to post on servers or to redistribute to lists, requires prior specific and is very time consuming. A second pass (e.g., ray trac-
permission and/or a fee.
SIGCSE’05, February 23–27, 2005, St. Louis, Missouri, USA. ing) is needed to produce reflection and refraction.
Copyright 2005 ACM 1-58113-997-7/11/0002 ... $5.00. Instead of complicating the radiosity implementation by
post ray tracing, an easier way would collect illumination in- building the tree), color intensity (r, g, b), incident direction
formation of the scene by a pre-trace from light sources. This of the photon, and other important information. Since the
is the basic idea of photon mapping. Since students have number of photons and their hit points may be very large,
learned ray tracing, converting the process of tracing from some form of compression may be needed; however, in an
the camera to tracing from each light source with some data undergraduate course, we skip compression concerns. While
structure manipulations is not very difficult. Furthermore, the concept of kd-tree is simple, the implementation of a
since photo mapping can easily generate area light sources, balanced kd-tree is a non-trivial task. Fortunately, good
color bleeding, soft shadows, indirect illumination and caus- balanced kd-tree code is available [3]. After all photons are
tic, we believe it would be easier for students to learn and shot and the kd-tree is built, the first pass completes.
program these effects via photon mapping rather than with
radiosity. The major advantages of photon mapping are (1) 3.2 Pass 2: Radiance Estimate and Rendering
using photons to simulate the transport of individual pho- The second pass renders the scene with the help of the
ton energy, (2) being able to calculate global illumination photon map built in the first pass. A traditional ray tracing
effects, (3) capable of handling arbitrary geometry rather procedure is performed by shooting rays from the camera.
than polygonal scenes, (4) low memory consumption, and When a ray hits a point P on a surface, the illumination
(5) producing correct rendering results, even though noise information (i.e., flux) of the neighboring photons collected
could be introduced. Consequently, after the discussion of from the first pass and stored in the photon map will be
ray tracing and radiosity, our course adds a 5-hour presen- added to the radiance information collected from ray tracing
tation on photon mapping to its global illumination module. at P. Let the normal vector at P be N and r > 0 be a
predefined small value. Consider all photons in the sphere
3. WHAT IS PHOTON MAPPING? S(P, r) of center P and radius r (Figure 1).
The basic idea of photon mapping is very simple [3]. It
tries to decouple the representation of a scene from its ge-
ometry and stores illumination information in a global data
structure, the photon map. Photon mapping is a two-pass
method. The first pass builds the photon map by tracing
photons from each light source (Section 3.1), and the second
P
pass renders the scene using the information stored in the
photon map (Section 3.2).
r
3.1 Pass 1: Light Emission and Photon Scat-
tering
The first pass of photon mapping consists of two steps:
light emission and photon scattering. In the first step, pho- Figure 1: Radiance Estimate
tons are generated and shot into the scene. A light source
with higher intensity will produce more photons, and the Not every photon in S(P, r) would contribute to the ra-
direction of each photon is randomly selected based on the diance at P. In fact, a photon with incident direction d can
type of the light source (e.g., spherical, rectangle, or direc- contribute only if d·N > 0, because if d·N ≤ 0, its direction
tional). The processing of these photons is similar to ray goes inside of the surface. If a photon does not contribute,
tracing with one difference: photons propagate flux while it is ignored in this radiance estimate for point P. From the
rays gather radiance. When a photon hits an object, it can illumination equation, the radiance contribution of a photon
be reflected, transmitted, or absorbed. If a photon hits a with incidence direction is:
specular object (e.g., a mirror), it is reflected with its in-
tensity scaled by the reflection index of that object. On the intensity × (d · N) × diffuse-factor
other hand, if a photon hits a diffuse surface, it is stored in Let the sum of all radiance contribution be s. The radiance
the photon map and reflected. The direction of this “dif- estimate at P is s/(πr2 ), where πr2 is the area of a great
fusely” reflected photon is a randomly chosen vector that is circle of sphere S. Therefore, the color at P is the sum of
above the intersection point with a probability proportional this radiance contribution and the radiance calculated from
to the cosine of the angle with the normal. This can be ray tracing. This method is theoretically sound; however,
implemented by playing “Russian roulette.” due to its required mathematics, we do not offer any proof.
The “Russian roulette” technique removes unimportant The sum of the radiance estimate and the radiance collected
photons and ensures the same power. In the specular case, from ray tracing may be larger than one, and normalization
a random number q ∈ [0, 1] is generated, and if q ∈ [0, f ), is needed. Additionally, if the number of photons that can
where f is the reflection index, the photo is reflected. Oth- contribute to radiance estimate is too small, they are all
erwise, it is absorbed. In the diffuse case, a random number ignored because the computed radiance estimate from very
q ∈ [0, 1] is generated, and the photon is diffused (resp., few photons may produce blurred images.
reflected) if q ∈ [0, d] (resp., q ∈ (d, d + s]), where d and
s are the diffuse reflection and specular reflection indices,
respectively. Otherwise, it is absorbed. 4. SOFTWARE DESIGN
The photon hit information is stored in a photon map, This software that supports ray tracing and photon map-
which is usually a balanced kd-tree [1]. Each node of the ping is the cumulative work of many undergraduate stu-
kd-tree stores the information of a photon hit, which include dents. It grew out from various undergraduate student re-
the coordinates of the hit point (x, y, z) (used as the key for search projects on ray tracing and photon mapping. The
current design consists of an API written in C++ classes int main(int argc, char **argv)
{
with a structure as shown in Figure 2. Under GICore, GIType MyScene *scene = new MyScene(); // create MyScene
defines various data types, GIObjIntersection provides the GIImage img; // image area
ray-object intersection mechanism, and GILightSrc handles int width = 400, height = 400*3.0/4.0;
light sources. GIType defines object types and light source
types via GIObjType and GILightSrcType. A user may in- GICamera cam = CreateCamera(
herit these classes to extend their functionality. Vector3( 0, 3.20, -24), // position
Vector3( 0, -0.05, 1), // look-at direction
Vector3( 0, 1, 0), // up-vector
GICore
45.0, // view angle
width/height); // aspect ratio
scene->EnablePhotonMapping(); // use photon mapping
GIType GIObjIntersection GILightSrc
img = CreateImage(width, height); // create image

GILightSrcType
scene->MaxRayPerLightSrc = 10 * 1000;
GIOBjType
scene->MaxRayTraceDepth = 3;
scene->MaxPhotonTraceDepth = 6;
GIExtObjType GIExtLight... GIExtObjIntersection GIExtLightSrc scene->photonMap.MaxPhotonSearchRadius = 2.0;
scene->ConstructScene(); // scene construction
scene->Render(cam, img); // render the scene
Figure 2: System Programming API SaveImgPPM("test.ppm", img); // Save to file
free(img.data); // free image memory
To write a program that performs photon mapping, a user return 0;
must include the header file GICore.h, define a scene class }
derived from the base class GIScene, and provide a construc-
Figure 4: The Main Program
tor. Figure 3 shows that the scene MyScene has a rectangu-
lar area light, a red sphere and a white floor, Figure 4 has
the main program that actually renders the scene, and Fig-
ure 5(a) is the result of running this program. Therefore, it is
very easy for a user to render a scene using photon mapping.
If the call to method EnablePhotonMapping() is removed,
the system will only ray trace the scene. Figure 5(b) is a
ray traced example.

class MyScene : public GIScene


{ (a) (b)
public:
void ConstructScene(); Figure 5: Sample Photon Mapping and Ray Tracing
}; Images
void MyScene::ConstructScene()
{
GI_FLOAT l=-1.0, r=1.0, t=5.5, b=7.5, h=5.25;
some form of caustic produced by the glass ball. In Figure 6,
the first image shows the photon hit positions and the sec-
this->backgroundColor = GI_RGB(0.0,0.0,0.0); ond has the rendered result. We choose to use 1,000 photons
AddRectAreaLight( with r = 4.0, 10,000 photons with r = 2.0, 100,000 photons
Vector3(0,-1,0), // normal with r = 1.0 and 200,000 photons with r = 0.4. Note that
Vector3(l,h,t), Vector3(r,h,t), // vertices: the radius for radiance estimate is inversely proportional to
Vector3(r,h,b), Vector3(l,h,b),
1.00, // brightness,
the number of photons shot. The color bleeding effect is
GI_RGB(0.95, 0.85, 0.90) ); // light color weak when the number of photons is small; however, as the
number of photons increases, the effect of color bleeding is
AddSphere( // red sphere more evident as shown by the color on the left side of the
Vector3(1.65,1.000,5.5), 1.995, // center & radius box. The ceiling above the box also shows a touch of white.
red_plastic); // material (pre-defined) Caustic of the glass ball also becomes clearer as the number
AddPlane( // white floor
of photons shot increases. In fact, in the case of 200,000
Vector3(0,1,0), Vector3(0,-1.0,0), // normal & vertex photons, the glass sphere generates a very pleasant and soft
white_plastic_dull);// material (pre-defined) caustic. The effect of soft shadows also becomes more real-
} istic as the number of photons shot increases. Figure 5(b)
is the same scene generated by ray tracing. Compared this
Figure 3: Scene Constructor
result with Figure 6(d), it shows a huge difference.
Figure 7 is an example that illustrates the effect of indirect
illumination. This scene has an object between the light
5. EXAMPLES source and the left wall, and a reflective floor. If this scene
Figure 6 demonstrates the quality of our photon mapping is ray traced, the left portion of the ceiling would become
API. The scene consists of a box and a glass sphere, with dark. With photon mapping, some photons will be bounced
a rectangular light source (i.e., area light) on the ceiling to the ceiling, left wall, and even the back side of the blocking
(Figure 5(b)). Thus, we expect to have soft shadows, color object (Figure 7(a)). As a result, these areas are illuminated
bleeding from the green wall to the left side of the box, and indirectly by the light reflected from the floor (Figure 7(b)).
(a) 1,000 photons r = 4.0 (a) (b)

Figure 7: Indirect Illumination

(b) 10,000 photons r = 2.0

(c) 100,000 photons r = 1.0 Figure 8: Strong Caustic

undergraduates with a few graduate students. The orga-


nization of this course is topic-oriented and project-based.
We present about ten topics and each student is required
to perform a term project, which includes a report, an im-
plementation, and a presentation with demonstration. In
the past, students did ray tracing, photon mapping, radios-
ity, advanced texture mapping, mesh simplification, geom-
etry compression, multiresolution modeling, morphing and
(d) 200,000 photons r = 0.4
non-photorealistic rendering. We have a long history in ray
tracing and photon mapping development by undergraduate
Figure 6: A Few Photon Mapping Examples
students in directed study and other courses. As a result,
students who are interested in photon mapping have sample
source code to use. Interestingly enough, every student pre-
If a glass sphere is bombarded with concentrated photons ferred to write their own version of ray tracer and photon
from a spot light, we will be able to generate very realis- mapping system with a difference emphasis (e.g., real-time
tic caustic effects. In this case, two photon maps may be photon mapping and caustic).
needed, one for general rendering while the other for caustic Most students in our class are very competent in ray trac-
generation. Figure 8, created by undergraduate Josh Ander- ing. Figure 10 shows two student ray traced images using
son with his own caustic code, shows a beautiful and realistic POV-Ray [9]. Hence, we only present the way of building
caustic. However, if we use only one photon map to record a recursive ray tracer and refer those who are interested to
all photon hits without concentrated photons, caustic may two standard references [2, 8], followed by the discussion of
be soft as shown in Figure 9, which is actually Figure 6(d) several problems of recursive ray tracing. This usually takes
enlarged to reveal the effect. three lecture hours. Then, we spend about six hours on ra-
diosity to address the shortcomings of ray tracing. Topics
include the basic heat transfer theory, the radiosity equa-
6. CLASSROOM EXPERIENCE tion, gathering and shooting, progressive refinement, form
Photon mapping was taught twice in our Advanced Com- factor computation, substructuring and adaptive subdivi-
puter Graphics course, a course designed for those who sion. After the radiosity discussion, students have a thor-
have completed an introductory course and are interested in ough understanding of the basics as well as pros and cons
more advanced topics beyond graphics programming. Class of both global illumination based methods. Photon map-
size was small with around 10 students, most of them were ping is introduced as a compromise between ray tracing and
and demonstrate both local and global illumination render-
ing methods, and students will have a system to practice ray
tracing and photon mapping. A radiosity component is also
planned. We do hope our effort to making global illumina-
tion rendering method available in an introductory course
can soon be realized.

8. REFERENCES
[1] J. L. Bentley, Multidimensional Binary Search Trees
in Database Applications, IEEE Transactions on
Software Engineering, Vol. 5 (1979), No. 4 (July), pp.
333–340.
[2] Andrew S, Glassner (editor), An Introduction to Ray
Tracing, Academic Press, 1989.
[3] Henrik Wann Jensen, Realistic Image Synthesis Using
Photon Mapping, A K Peters, 2001.
Figure 9: Soft Caustic [4] John L. Lowther and Ching-Kuang Shene, Rendering
+ Modeling + Animation + Postprocessing =
Computer Graphics, The Journal of Computing in
radiosity. Since it is easy to understand, students have no
Small Colleges, Vol. 16 (2000), No. 1 (November), pp.
difficulty in following the lectures and greatly enjoy photon
20–28. (reprinted in Computer Graphics, Vol. 34
mapping. This is demonstrated by the success of students’
(2000), No. 4 (November), pp. 15–18.
work on photon mapping. For example, Figure 8 is the first
successful implementation of caustic using photon mapping. [5] Dejan Nikolic and Ching-Kuang Shene,
GraphicsMentor: A Tool for Learning Graphics
An early version of the software presented here was imple-
mented by the first author of this paper when he was an Fundamentals, ACM 33rd Annual SIGCSE Technical
undergraduate student. Symposium, 2002, pp. 242-246.
[6] Ching-Kuang Shene, Raytracing as a Tool for
Learning Computer Graphics, ASEE/IEEE 32nd
Frontiers in Education, 2002, Volume III, pp.
(S4G-7)-(S4G-13).
[7] Ching-Kuang Shene, Teaching and Learning Computer
Graphics Made Easy with GraphicsMentor, Interactive
Multimedia Electronic Journal of Computer-Enhanced
Learning, October, 2002 (online journal).
[8] Peter Shirley, Realistic Ray Tracing, A K Peters, 2000.
[9] Chris Young and Drew Wells, Ray Tracing Creations,
Figure 10: Two Student Ray Tracing Images Second Edition, Waite Group Press, 1994.

Since the size of the class was small and since students fol- Acknowledgments
low different research/study paths for the second half of this The third author appreciates the hospitality of Dr. Horng-
course with many one-on-one discussions, we believe course jinh Chang, the former President of Tamkang University,
evaluation would not help draw any significant conclusion Taipei, Taiwan, and Dr. Chuan-Jen Chyan, Chair of De-
in such a non-traditional course setting. partment of Mathematics, for a short-term visit in the sum-
mer of 2004 during which the writing of this paper and other
7. CONCLUSIONS research activities were carried out.
We have presented our approach of discussing photon map-
ping in our Advanced Computer Graphics course. The
major contribution of our work is evidence showing that it
is possible to teach global illumination rendering with ray
tracing and photon mapping to undergraduate students with
very good and convincing results. Our ultimate goal is to
provide a good and easy-to-use software tool for students in
an introduction computer graphics course to explore, prac-
tice and perform photon mapping rendering. Although our
software is an API, we plan to add a command processor for
users to specify the scene without programming. A long-
term goal would be integrating GraphicsMentor and our ray
tracing and photon mapping system into a single unit so that
students can design a scene using GraphicsMentor and render
it with local illumination, ray tracing and photon mapping.
In this way, instructors may use this new system to discuss

You might also like