COMS 4160 : Computer Graphics



[Images courtesy Blue Sky Studios and Mike Defeo]



[intro] [instructor] [registration] [lecture] [prerequisites] [textbook] [notes&reading] [programming] [exams/grading] [schedule]



Introduction

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.



Instructor

Michael Reed          
[ m-reed@cs.columbia.edu  |  Home Page ]
office hours:
after class Thursday, or by appointment
mail:
Department of Computer Science
Columbia University
500 W. 120th Street, M.C. 0401
New York, New York 10027

 

Registrar Information

Course ID: W4160 [sometimes also called COMS4160], section 001

Registrar Call #: 67061

This course is 3 points.


Lectures

Thursday, 6:10-8:00pm, room TBA.


Prerequisites

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.


Textbook

required: Fundamentals of Computer Graphics, 4th edition, by Peter Shirley et al. [A.K. Peters, 2016]

Additional material will be provided by the instructor.



Course Notes & Reading Assignments

All course notes (in pdf format) and homeworks will be put on the class wiki. If you are registered for this course, you should request a membership in that Wiki, or email me directly, as a significant amount of discussion will take place there. We will also be using CourseWorks for homework submission and grade distribution.


Programming Assignments

There will be six 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: Assignments lose 10% each day they are late.

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

 

Exams

There is a written midterm and final exam, worth 10% and 20% of the grade, respectively. The exams are designed to be
relatively easy for those who have done the homework and understood the lectures.


Grading

Grades will be determined by a weighted average of the six homework assignments (%70), the midterm
exam (%10), and the final exam (%20).



Schedule

NOTE: This schedule is for a previous semester; Spring 2016 will be similar.
The schedule is approximate and subject to change.


Class#

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
8       Rasterization-based rendering
animation appreciation
: "Geri's Game" (Pixar 1997)
9       Midterm
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