Math 155B - Introduction to Computer Graphics - Winter 2004

Final Project - RayTrace project

Overview:  For this assignment you will do some non-trivial extensions to the ray tracing software and create a scene showing these extensions to good effect.  As a final project, you are expected to put extra work into this project.  Expected amount of work: approximately 20 hours.  Do not go over 30 hours without prior permission.
    We will schedule an hour-long demo session during finals week so you can see each other's projects.

Discuss your plans for your project with me during the week of February 29th.

Due date: TBA, Early exam week.

Turn in:  Upload a web page with the automated, web-based turn-in software.  Include representative images.  Also include a description of your work, your image and what software extensions you developed.  Please document your project well on these uploaded web pages.

What to do:   Choose a topics of the following types.  In most cases, there will two parts to a project.  (1) an algorithmic programming assignment, and (2) developing a scene that exploits features of ray tracing.  Possible things to implement could be:

  1. At least two different kinds of distributed ray tracing.  E.g., jittered eye positions for depth of field and anti-aliasing.  Other possibilities include motion blur, soft shadows with extended lights, Russian roulette stopping criteria, or adaptive distributed ray tracing based on variance.
  2. Implement participating media (partial transmission based on distance through an object).
  3. Illumination maps.  Or, if very ambitious, photon mapping.
  4. Bidirectional path tracing.
  5. (Quite ambitious.) Learn on your own about BSP trees or other spatial structures and speed up the ray tracer with a spatial data structure.
  6. Finding cool ideas for images is probably best done by searching the internet.  There are many ray tracing competitions, and generally, no end of people who have written ray tracers and posted cool images on the web.
  7. Make up your own ideas.  Feel free to find your own balance between time spent on coding new algorithms and time spent creating a compelling and artistic scene.

Turn in instructions:   Upload a web page and associated JPEG files at the final project turn in page.  Your web pages should include discussion of what work you did, what outside resources you used (if any), what problems you encountered, how you fixed them, etc.   Please spend some time on your web pages to make them explanatory and good quality.

Grading: Based on your uploaded web page, and on personal discussions, including examination of your source code.  Graded on artistic merit, technical difficulty, and effort.

Handout: How to jitter the eye position.