Math 217A - Spring 2002 - Assignment #5 - Ray Tracing
due Wednesday, May 15
Goals: Learn to use the ray tracing software. Implement
some feature of distributed ray tracing.
Tasks:
- Download RayTrace software package from the text book web page. Compile
and run RayTrace to make sure it is working for you. We will also
discuss in class an overview of how the software works, but you will also need to look at
Appendix B and perhaps the source code. You will be modify only the main programs RayTrace.cpp
and RayTraceData.cpp (and RayTrace2.cpp and RayTraceData2.cpp).
There should be no need for you to modify or examine source code in either
the Graphics or the VrMath project directories.
(If someone will give me a gcc make file for building the libraries, I will
post it for everyone else using Linux). The point is that the directories Graphics
and VrMath are separate projects which should be compiled into their own
libraries. For Visual C++, this is already taken care of by the workspace and
project files.)
- Build a new scene by modifying the code in RayTraceData.cpp or RayTraceData2.cpp.
The more artistic your scene the better, but if you are not artistically
inspired, your scene does not need to be terribly different from what is already there.
This does not need to be a large, complicated scene, but should be chosen so that
it illustrates nicely the distributed ray tracing you implement in the next step.
- Implement (rewriting part of RayTrace.cpp or RayTrace2.cpp)
at least one of the following features from distributed ray tracing:
- Antialising with jittering or other stochastic supersampling. (This one is the easiest
one to implement.) Might be best illustrated if you include a texture mapped item in
your scene.
- Motion blur
- Depth of field
- Soft shadows
Optionally implement more than one of these features.
- Create and turn in the three GIF files as described below. FirstGif.gif
shows your scene without distributed ray tracing. SecondGif.gif
shows your scene with distributed ray tracing. Thumb.gif is a small
version (dimensions 200 by 200 pixels) for previewing purposes.
Homework turn-in procedure: Your turned in results should
consist of two parts. First, a report on your work. (1) Talk
in person to me or Frank Chang, demonstrate your code and discuss the
assignment. When you talk to us, we want to review the relevant parts of your source
code changes, and will discuss the design and modeling of your scene.:
Second, turn in your code and GIF files.
You should turn in (a) a thumbnail sketch, which is a GIF file which has
width and height exactly equal to 200 pixels, and (b) two full size GIF files.
Name the three files Thumb.gif, FirstGif.gif,
and SecondGif.gif. (Please use exactly
these names, including capitalization. In order to capture and
save GIF files, see the handout on creating GIF files for turn
in.
For the full size GIF file, please turn in
first a GIF showing the scene without the distributed ray tracing feature, and then a
second GIF showing the improvement from your distributed ray tracing.
GIF files will be made publicly available, so everyone can have their
results demoed to the rest of the class. You should turn in source files and GIF, by
using anonymous ftp to euclid.ucsd.edu, directory pub/sbuss/turnin217/ma217sXX/RayTrace.
Here, replace "ma217sXX" by your own
userid. Make sure the GIF files are uploaded in binary mode.