Course: CMSC 23700 Introduction to Computer Graphics Instructor: John Reppy Ryerson 256 TA: Paolo Codenotti Ryerson 257a Lecture: TR 1:30-2:50 Ry 251 Lab: W 4:30-5:50 Mac Lab Office hours:
Monday 10:00-11:00 Reppy Ryerson 256 Friday 1:00-2:00 Codenotti Ry 257a Mailing list: cmsc23700@mailman.cs.uchicago.edu mailman.cs.uchicago.edu/mailman/listinfo/cmsc23700
This course aims to provide an introduction to the basic concepts and techniques used in 3D computer graphics. The focus is on real-time rendering techniques, such as those found in computer games. These include: coordinate systems and transformations; geometric modeling; the graphics pipeline; level-of detail optimizations; and rendering techniques using programmable shaders.
The course covers both the theory and practice of computer graphics. The lectures, homework assignments and exam will focus on the mathematical foundations of computer graphics, while while the lab sessions and programming projects deal with translating theory into practice.
There are two required texts:
Title: Real-time Rendering (3rd Edition) Authors: Tomas Akenine-Möller, Eric Haines, and Naty Hoffman Publisher: A.K. Peters Ltd., 2008 Book web site: http://www.realtimerendering.com/ Title: OpenGL -- A Primer (3rd edition) Author: Edward Angel Publisher: Addison Wesley, 2008 Book web site: http://www.cs.unm.edu/~angel/BOOK/PRIMER/THIRD_EDITION/
As an alternative to the OpenGL Primer, you might prefer a copy of
Title: OpenGL SuperBible (4th Edition) Authors: Richard S. Wright, Benjamin Lipchak, and Nicholas Haemel Publisher: Addison Wesley, 2007 Book web site: http://www.starstonesoftware.com/OpenGL/
The programming assignments will be written using the C programming language (specifically, the C99 version). If you do not have a good C manual, we recommend the following:
Title: C -- A Reference Manual (5th Edition) Authors: Samuel P. Harbison and Guy L. Steele Jr. Publisher: Prentice Hall, 2002 Errata: www.careferencemanual.com/errata.htm
We have also requested that a copy of the main text book be placed on reserve in the Eckhart Library. In addition, the following books will also be on reserve:
Title: Mathematics for 3D Game Programming & Computer Graphics (2nd Edition) Author: Eric Lengyel Publisher: Charles River Media, 2004 Title: Geometric tools for computer graphics Author: Philip J. Schneider, David H. Eberly Publisher: Charles River Media, 2004
Grading for the course will be based on:
Percentage Component 20% Homework assignments 30% Midterm Exam 50% Projects
The assignments will be posted on the class website. Homework assignments should be handed in at the beginning of class the day they are due. Programming projects will be automatically collected from your course gforge repository.
In general, late homework and programming assignments will not be accepted, but each student may have one 24-hour extension on one assignment or individual project. You must request the extension before the assignment is due.
Project grades will consist of a correctness portion (worth 70%) and a style portion (worth 30%). Your code must compile. Failure to compile will result in a 0 for the correctness portion of the grade.
The lectures are expected to cover the following topics:
Note that not all topics that we cover in class are covered in the main text.
There will be four or five homework assignments over the course of the term. Homework is due at the beginning of class and late homework will not be accepted for credit.
Date Assignment Due date January 7, 2010 Homework 1 January 14 January 21, 2010 Homework 2 January 28 February 4, 2010 Homework 3 February 11 February 17, 2010 Homework 4 February 23
The course will require several programming projects. We believe that programming style is important, thus 30% of your project grade will be based on style and documentation of your code (the other 70% will be based on correctness). It is also important that your code compile successfully. Code that does not compile will not be graded on correctness.
Date Project Due date January 12, 2010 Project 1: simple animation January 27 January 26, 2010 Project 2: per-pixel lighting [Revised January 31] February 3 Bump mapping with directional light Bump+specular mapping with spotlight February 5, 2010 Project 3: animation and shadows February 19 February 25, 2010 Project 4: Terrain rendering March 18,
We will use phoenixforge to manage project code and submissions. To create an account, login at
using your CS account and password.
The following is a list of the other handouts that have been distributed in class with links to PDF files. As necessary, we will post revisions here.
Date Handout January 5 Course information January 6 Lab tips February 18 Note on Meshes
The University of Chicago is a scholarly academic community. You need to both understand and internalize the ethics of our community. A good place to start is with the Cadet's Honor Code of the US Military Academy: "A Cadet will not lie, cheat, or steal, or tolerate those who do." It is important to understand that the notion of property that matters most to academics is ideas, and that to pass someone else's ideas off as your own is to lie, cheat, and steal.
The University has a formal policy on Academic Honesty, which is somewhat more verbose than West Point's. Even so, you should read and understand it.
We believe that student interactions are an important and useful means to mastery of the material. We recommend that you discuss the material in this class with other students, and that includes the homework assignments. So what is the boundary between acceptable collaboration and academic misconduct? First, while it is acceptable to discuss homework, it is not acceptable to turn in someone else's work as your own. When the time comes to write down your answer, you should write it down yourself from your own memory. Moreover, you should cite any material discussions, or written sources, e.g.,
Note: I discussed this exercise with Jane Smith.
The University's policy, for its relative length, says less than it should regarding the culpability of those who know of misconduct by others, but do not report it. An all too common case has been where one student has decided to "help" another student by giving them a copy of their assignment, only to have that other student copy it and turn it in. In such cases, we view both students as culpable and pursue disciplinary sanctions against both.
For the student collaborations, it can be a slippery slope that leads from sanctioned collaboration to outright misconduct. But for all the slipperyness, there is a clear line: present only your ideas as yours and attribute all others.
If you have any questions about what is or is not proper academic conduct, please ask your instructors.
Last revised: February 25, 2010.