Description: The creation of realistic images from 3D models is central to the development of computer graphics. The ray tracing algorithm has become one of the most popular and powerful techniques for creating photo-realistic images. Ray tracing's simplicity, elegance and ease of implementation make it one of the most important image generation algorithms in computer graphics. This class will explore in detail the algorithmic components of ray tracing.
Students will implement many of these components in their class programming projects.
Other types of rendering algorithms will be discussed, e.g. radiosity, volume rendering, non-photorealistic rendering and photon mapping.
Office Hours - By appointment via zoom
I intend to use the standard grading scale of 100→ 90 (A), 89→ 80 (B),
79→ 70 (C), 69→ 60 (D), else (F).
Please also note that incompletes will not be given for this course.
Make sure that your images and the objects in your images are big enough
to see/evaluate the effect implemented in each assignment.
Your images should leave no doubt that you have implemented a particular feature correctly.
Collect and submit all of the needed source files for an assignment in a single zip file.
Include a README file that says what source files and which lines contain
the code that implements the central feature for that assignment.
I will be looking over your code, instead of trying to run it, in order to grade the assignments.
You can use ImageMagick to read/write images.
It is expected that you will do you own work, i.e. write your own
software for the assignments.
You cannot "borrow" code from other students or download programs from the Internet.
Specifically, you cannot use the code provided by the Suffern or Shirley books (or their derivatives) for your assignments.
Any student violating this policy will be given an 'F' for the class.
You may use image and basic math libraries, e.g. for storing and manipulating vectors and matrices.
Topics covered on the final exam are
Last modified on June 2, 2020.