This course is an introduction to computer graphics -- a field that is unique in its combination of science, art, and engineering. Its focus is the generation and manipulation of visual content, and it provides the fundamental technology to an ever-increasing variety of media, including special effects and animation, interactive computer games and simulation, and graphical user interfaces. In this class we will discuss methods for synthesizing images in two and three dimensions, with an emphasis on "photorealistic rendering". We will also spend time looking at other applications, including those for interactive rendering as used in computer games.
To illustrate the material, we will use a combination of lectures, code walkthroughs, physical models, short films, and graphics & animation software. We will also have a few guests from the animation and research worlds. This will be a fun course, but will require the completion of some nontrivial homework as well -- it is expected that you have coding skills.
| Home Page ]
||after class Tuesday, or by
||Department of Computer Science
500 W. 120th Street, M.C. 0401
New York, New York 10027
|In addition to
programming proficiency in C++, the student should have a basic
understanding of linear algebra and calculus.
Students without these qualifications, who still wish to participate, should speak to the instructor.
Fundamentals of Computer Graphics, 3rd edition, by Peter Shirley et al.
Publishers: A.K. Peters, 2009.
Additional material will be provided by the instructor.
|All course notes (in
pdf format) and homeworks will be put on the CourseWorks website. If
you are registered for this course, it will show up automatically when
you log in. If you are not registered and are a Columbia affiliate, you
can see all the course material by logging into CourseWorks and searching
under "Other Course Listings" using subject code COMS.
Guests from outside the university can view some of the course's material here.
There will be four homework assignments, each of which will be mostly fullfilled by programming. Assignments are to be coded in C++; a framework will be provided, as well as an interface specification (i.e. the name of the functions to write, their arguments, and return values). The framework is so that you will not have to spend time on anything other than the relevant aspects of the problem, to provide a uniform set of tests on your implementation, and to make grading easier.
On Late Assignments: Students are
permitted 2 late days total for the entire semester without penalty.
On Collaboration: Discussion of algorithms is encouraged, as well as the sharing of drawings and other representations of problems and the like. What is not permitted is the sharing or acquisition of code in any form. Any material from an outside source must be explicitly acknowledged
Class# / Date
|Title & Selected Topics|
|1||Introduction plus history, mathematical preliminaries
|2||Images, displays, line and polygon drawing
animation appreciation : "The Adventures of Andre & Wally B." (Pixar 1984)
|3||Viewing & Transformations & "The Graphics Pipeline"|
|4||Geometry 1: polygon meshes & subdivision surfaces & OpenGL 1
animation appreciation : "Knick Knack" (Pixar 1986)
|5||Geometry 2: parametric curves & surfaces|
|6||Ray Tracing 1
animation appreciation : "Stanley & Stella" (Symbolics 1987)
|7||Illumination & Shading
guest : TBA
animation appreciation : "Geri's Game" (Pixar 1997)
guest : Mike Defeo, Master Sculptor at Blue Sky Studios
|10||Aliasing & Antialiasing Special Topic: High Performance Computing on the GPU
animation appreciation : "Bunny" (Blue Sky 1998)
|11||Ray Tracing 2|
|12||Textures & Materials|
|13||Animation & Simulation 1
animation appreciation: TBA
|14||Miscellaneous Topics & Review|
|Finals Week||Final Exam|
The class notes for the previous school year (2008f-2009s) can be found here.