Assignment Description

Due: Sunday July 25th 23:59:59 PDT

You will write a raytracer in this assignment. This is a 1.5 week assignment. This is also your proverbial trial by fire, your initiation rights, your first claim as a graphics professional -- raytracers are the bread and butter of high quality rendering. Good luck!

IMPORTANT: To complete this project, you need to read the required reading noted in the PDF. Without it this assignment will be extremely hard! Please save yourself and us the trouble and read these chapters.


Find the instructions for this assignment in PDF here.

Skeleton Code

Download here. July 24, 6:57pm (added OBJ files for "teapot" and "dunkit" extra credit scenes)

You can also download the extra credit OBJ's individually: teapot.obj and junc.obj


Note that there's more .scd files than we require you to render, and that there is an OBJ parser and Triangle primitive that is only there for extra credit reasons. Here's the 5 raytraced images you will be generating:

Scene 1: (3 primitives)
Scene 2: (3 primitives)
Scene 3: (1000 primitives)
Scene 4: (5 primitives)
Scene 5: (47 primitives)

Here is a breakdown of the different lighting effects inside Scene 1:

Ambient Component Only
Lambertian Component Only
Specular Component Only
Ambient and Specular


The inspiration for the structure of this project, and sections of the source code, came from Niels Joubert and James Andrews' framework for Berkeley's CS184 Intro to Graphics course.