- 2007 Gallery
Lectures & Reading
Graphics @ Williams
Description: In this course, we explore the fundamental techniques for creating and manipulating digital images. These are the techniques underlying PhotoShop, PowerPoint, medical imaging, video games, and movie special effects. Course materal covers a broad range of topics including 3D graphics data structures and algorithms, programmable graphics hardware, image processing, and animation. Students will complete a series of programming projects cumulating in a realistic renderer for 3D scenes. (Image credit: Nick Chapman)
Format: Lectures and labs. Project Course.
Fulfills the Quantitative Reasoning requirement
Prerequisites: Computer Science 136 or equivalent programming experience, and Mathematics 211, or permission of the instructor.
Texbook: Real-Time Rendering, 2nd Edition by Akenine-Möller and Haines
Work submitted late without permission will not be graded. However, you are automatically granted a 48-hour grace period on one programming assignment. Note that programming assignments are collaborative.
The weekly projects in the course this semester are more sophisticated than those in a typical introductory computer graphics class. To help you complete them (and the course) successfully, I'm structuring them in an unsusual way.
Each project begins with a non-programming homework assignment and concludes with a programming assignment. The homework, which is completed independently, should lead you to a deep understanding of the mathmatics involved in the project.
For the programming portion of the project you are encouraged to discuss program logic, design, and debugging practices with other students in the class. You may even work in a team with one other student and submit a single programming solution for both of you.
Programming is on your own time and not during scheduled lab sessions. You may use any computer that you wish. However, only the FreeBSD machines in the Unix lab will be officially supported. The TA will provide scheduled project lab coverage hours to help with C++ syntax and compiler errors. The TA will not help you with the assignments themselves.
All of the projects use the G3D library as unified, well-tested suport code base. Except where explicitly prohibited by the assignment, you can use any routine in the G3D library and look at any of its source code. You do not have to cite the library when used in your solutions.
For a project, you may also use any source code that you or any
other student in the course has written for a previous
project in the course. Some of the projects are cumulative, and
this policy allows you to pick up from someone else's work if your
solution had too many bugs to continue. When you use someone
else's work you must first get their permission. When you use
either your work or someone else's, you must clearly cite that work
at the location where it is used and in a comment at the top of your
The course is being taught in an experimental fashion this semester, with all-new lectures and projects. I designed the syllabus to be flexible. Based on your feedback I will adjust the project assignments and lecture schedule.
Application of the Honor Code:
The only limitation on your conduct for programming work is that, except as described above, all of the source code for your solution must be written solely by your team members. Note that this is a more liberal policy than the default CS department policy for projects.
Scheduled "experimental labs" are graded only on participation and involve no programming. You will use lenses, cameras, lasers, and other optical elements to study illumination phenomena in the real world. Some lab periods are field trips to view films and works of art that motivate specific computer graphics problems.
The final project is three weeks long. You will propose your own goal and work on it alone or with a partner. I will evaluate your project at four milestones: proposal, design review, code review, and presentation. Presentations will be in the style of a miniature symposium, to be scheduled during reading period at the class's convenience.
Fake Model Photography
Negative index of refraction