Math 155B - Geometric
Computer Graphics
Ray Tracing Programming Project
Programming Assignment #3 - Spring 2001
Programming assignment #3B. This is the third programming
assignment for Math 155B. You are asked to add some features to the ray
tracing code as written so far.
Due date: Friday, May 18.
Choose one of the topics listed below, or subject to approval, you may suggest another
project. It is OK if more than one person chooses the same project. You must
discuss the plan for and design of your project with Professor Buss at least one week
before the due date.
Suggested projects:
Items 1-7 involve distributed ray tracing and backwards ray tracing. These
projects do not require writing a complete ray tracer. Instead, I
will give you a functioning ray tracer which does simple, non-distributed ray tracing, and
you will only need to modify the high level routines.
- Implement the use of multiple view rays per pixels, so improve aliasing. You
should be able to point to improvements (like fewer "jaggies" on lines).
You may also draw a scene with aliasing problems (say with a large reactangle with a small
checkboard pattern, viewed obliquely), and notice how it is improved.
- Use multiple view rays per pixel to implement depth of field. This will allow
objects at the "focus distance" to be in focus and objects which are closer or
further away to be out of focus.
- Use distributed ray tracing to show motion blur.
- Implement distributed ray tracing for shadow feelers. Your rendered scene should
exhibit soft shadows and penumbras.
- Implement distributed ray tracing for reflections. You should be able to
demonstrate blurry fuzzy reflections. Possibly extend this to include distributed
ray tracing for transmission (refraction).
- Implement the high-level ray tracing code to intelligently track the attenuation of
light through multiple bounces, and prunes the ray tracing tree accordingly. These
algorithms are known as "Russian roulette" algorithms, and you will have to
learn them on your own since we will not cover them in class.
- Implement some backwards ray tracing with an illumination map (recommended) or photon
map.
For each project you should do the following..
- Design a simple scene to test your project. The scene should be chosen to
illustrate the ray tracing project you have chosen. For instance, for
antialiasing you need a scene which shows aliasing in ordinary ray tracing, for depth of
field there should be mixture of near and far objects, for motion blur you will need
to have a moving object in plain view, etc.
- Change the high-level RayTrace routine to implement your project.
- Render the ray traced scene and save it to a JPEG file. Save multiple JPEGS if
this helps illustrate the features of your project (e.g., two different focal planes for
project #2, or simple ray tracing versus distributed raytracing for project #1).
- The JPEG files will be collected together into a single class web page. You will
be responsible for creating a small GIF with Photoshop for use as a thumbnail image ---
there will be some precise directions on how to do this and what to name your files and
how to upload. Watch this space for further details in the next week.
Here are the instructions on creating the final JPEG/GIF. Please
follow them EXACTLY, including the file names and their capitalization.
- Use ALT-PRINTSCEEN to dump a screen image to the clipboard.
- Run Photoshop (not the Kodak Image program!!!). Under the File
nenu, select making a new image. Accept the default size (which will match the size
of the clipboard contents). Paste the clipboard contents into the new image.
Save the file as Prog3Img1.jpg. USE EXACTLY THIS NAME.
- If you want to save more JPEG files use the names Prog3Img2.jpg, etc.
- Under the Image menu, choose Image Size..., then
change the height to 144 pixels (not inches!!).
Let the width change automatically proportionally.
- Save the resulting small picture as GIF file named Prog3Thumb.gif (named
exactly this way!). For this, go to the File menu and choose Export.
- Use anonymous ftp to send the file to the computer math.ucsd.edu,
directory pub/sbuss/Math155/ma155wxx where ma155wxx
is your course userid. Place the two files in that directory (if you place more than
one JPEG file please let me know).
- I will set up a common web page showing every one's image.
See Getting Started with the Ray Trace Software for
how to get the software copied over to your account. Documentation will appear by
Monday in the pdf/ps online notes.