COMP 575: Introduction to Computer Graphics

Fall 2007

Tuesday and Thursday, 3:30-4:45pm

Sitterson 011


Rick Skarbez

Sitterson 313

Office Hours (tentative): Tuesday 10:30-12:00am and Wednesday 3:30-5:00pm, and by appointment

Department Website's Course Description:

Hardware, software, and algorithms for computer graphics. Scan conversion, 2D and 3D transformations, object hierarchies. Hidden surface removal, clipping, shading, and antialiasing. Not for graduate computer science credit.

Course Description:

This course will provide an introduction to the field of computer graphics by exploring two different approaches to rendering that have arisen subject to different constraints: rasterization, which is commonly used for real-time applications such as computer games, and ray tracing, which due to its relative slowness is not commonly used in real-time applications, but generates physically realistic imagery. The mechanics of each method will be discussed, along with the relative strengths and weaknesses of the two methods.


Implied in these prerequisites are COMP 401 (Foundations of Programming) and a class from the COMP 110-129 sequence (Introduction to Programming). I expect that all students can use and are familiar with C/C++. A significant portion of this course will involve writing code, and this course will assume that you already know how to program.


There is no required textbook for the course. My notes and internet references should cover all necessary material. However, I strongly recommend:

Peter Shirley, Fundamentals of Computer Graphics, 2nd Edition, 2005, ISBN 1-56881-269-8


Assignment Notes:

Written assignments: Written assignments will be due roughly every two weeks. These assignments are intended to test your understanding of material covered since the previous homework, and will likely consist of a few short-answer questions, as well as some math problems and/or algorithmic questions to be answered with some pseudocode. Written assignments will be due by the end of class on the due date.

Programming assignments: Programming assignments are intended to familiarize you with some of the technologies used in computer graphics, and to give you a sample of what you might want to work on for the final project. For some or all projects, I may ask you to demonstrate your program in a short one-on-one meeting. Whether or not this is the case, deliverables will be due by 11:59pm on the due date. More details on the submission protocols will be included in the assignments themselves.

Late policy: Assignments are due at the times indicated above. Late assignments will be penalized as follows:

I realize that parts of this course can be difficult, and that you will have assignments due in other classes as well. For these reasons, I am giving everyone 168 hours of free "late time" that can be used to extend deadlines at your discretion. If you hand in an assignment late, please send an email stating the exact time the assignment was submitted so I can stop the clock. I will update you periodically throughout the semester on your remaining late time. That said, I suggest that you hand in assignments on time, and please start them well ahead of deadlines (especially for programming assignments), as implementation issues can often take more time than you might expect.

If you have a scheduling conflict or emergency, please speak to me as soon as possible and I will try to accomodate.

Honor Code:

In this class, I will expect you to abide by the UNC Honor Code with the extensions specific to COMP575 originally presented by Scott Larsen. This is the introduction to the honor code, which is available in its full form on the course website here:

"You are bound by the UNC Honor Code.  You are encouraged to work together to understand high-level concepts, but must do all assignments by yourself.  Whenever you use 'others' in any way, that usage must be documented in the submitted assignment.  Every assignment must be pledged with the following statement:  'I have neither given nor received unauthorized assistance while preparing this assignment,' and, when applicable, 'I have written all code myself.'  Include this statement in your write up.  If you don't feel you can honestly include this statement, explain why not. 'Others' is defined to include books, magazines, and other written materials; communication with other people in verbal, written, or other forms; and also the Internet."