This course will chart a path through all the major aspects of mainstream computer graphics. You will learn the fundamental mathematics, algorithms, data structures, and programming techniques that are at the core of modern 2D and 3D graphics applications in practice. Such applications include: drawing and design programs, data visualization interfaces, desktop window systems, and games.
We will start with 2D graphics in the first half of the course, and extend to 3D in the second half.
Lectures will focus on mathematical foundations and algorithms in four core areas of computer graphics: modeling (describing geometry and its appearance), rendering (producing images of a model), interaction (navigating in a scene and manipulating objects), and animation (making models move). This information will be complimented with readings from the course text and other selected references. Two in-class exams will be given to test your comprehension of material from the lectures and readings. There will be no final.
Homework assignments will be significant, and will consist largely of software development tasks where you will use your own creativity to apply the methods learned in class in building several interesting 2D and 3D graphics applications. There will also be a significant English writing component to at least one of the homeworks. You will also be required to give at least one presentation of your work to the class.
The basic parameters of the course are summarized below, followed by links to the major course documents. All of the information on this website is subject to change—hit the “reload” button when viewing each page to be sure you see the newest revision, and not an old version that might have been cached by your browser. The timestamp of the revision you’re viewing is always shown at the bottom of the page.
We will not be reading the text from cover to cover, or even in any particular order. Instead, we’ll use it more as a reference. Specific sections will be assigned corresponding to each lecture topic. These reading assignments will be announced both in lecture and on the course schedule.
A new book you might find interesting and useful
Steven J. Gortler, Foundations of 3D Computer Graphics, MIT Press, July 2012.
The prerequisites for this course are Fundamentals of Computer Science CS 2510 and Linear Algebra with Applications MTHU371. Essentially, you should know how to design and debug programs in an environment of your choice (though we will only officially support a few specific platforms—if you use something else, we can only offer you our best effort to help you with your code), and you should have some familiarity with basic linear algebra (vectors and matrices), though we will explain as much of the math as possible. Please contact the instructor if you would like to take the course but are unsure if you meet any of these requirements.