CS 5721 - Computer Graphics - Fall 2006

Course Syllabus

Location: SSB 115 (Lecture), MWAH 177 (Lab)
Time: 11:00am - 12:15pm TTh (Lecture), 5:00pm - 5:50pm Th (Lab)
Instructor: Pete Willemsen, TA: Umesh Maitipe
Office Hours: 12:30pm - 2:00pm TTh, 1:00pm - 2:30pm W
TA Office Hours: 9:00am - 10:00am T (314 HH),
                       9:00am - 10:00am, 6:00pm - 7:00pm Th (314 HH)

Class WebDrop

Recent Updates and Information...

Important notices, dates, and other information will be posted here.

Creative Images from all homeworks

Code examples: GLSLObject.zip

Exam 3 has been posted.

Course Description

The course will introduce the fundamentals of computer graphics that are used to draw 2D and 3D computer rendered images. The topics presented will focus on the concepts necessary for 2D line and triangle rasterization, color representation, vector and matrix mathematics, 3D viewing, and hidden surface elimination. Additional topics may include image texturing, graphics hardware programming, ray tracing, and/or visual perception. Lab time will be used to relate the lecture topics with contemporary computer graphics hardware using OpenGL. Over the course of the semester, students will implement different portions of the 3D graphics pipeline and will have developed an understanding for how 2D and 3D graphics is currently programmed.

Readings

The course will use the book Fundamentals of Computer Graphics, 2nd Edition, P. Shirley, A.K. Peters, 2005. This book is required for the course and it is recommended that you use the 2nd edition.

The following book is not required for the course and is definitely optional. The OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 2. Fifth Edition. Addison-Wesley Professional, 2005. This book describes the details of the OpenGL programming interface. It may be useful if you decide to pursue computer graphics or want additional information on OpenGL for the labs.

Class Requirements

There will be several programming assignments in the course along with two mid-terms and a final exam.

1. Programming Assignments (30%) - There will be around 7 assignments given over the course of the semester. These assignments will focus on building portions of the 3D graphics pipeline. Programming assignments should be coded in C++.

2. Lab (10%) - The scheduled lab time will be used to become familiar with programming a current graphics API, OpenGL. The lab topics will often correspond to the topics presented during lecture. Periodically, the lab will be used to provide additional time to work on assignments or ask questions. The lab may also be used to conduct exploratory programming exercises designed to give practical programming knowledge related to computer graphics.

3. Exams (20% each) - There will be three exams over the course of the semester, each worth 20% of your grade. The final exam is one of these exams. The date of the final exam is December 21, 2005 from 12:00-1:55pm.

Policies (by taking the class, it is understood that you have read this section!)

Missed Classes
Students are responsible for what goes on in class, including lecture material, handouts, and turning in assignments. If you are unable to attend class it is your responsibility to obtain copies of class notes and any materials distributed in class. You may turn in copies of assignments early.

Missed Exams
No exam will be given early. Exams can be made up only in the case of emergencies such as severe illness or death in the immediate family. You must contact the instructor 24 hours in advance in order to arrange a makeup.

Assignments
All assignments will be due by email/web drop before the beginning of class on the due date. Late assignments will be penalized 20% of the grade for each working day the assignment is late. To turn in an assignment, send an email with attachments to the instructor, or submit via a web drop (ASCII text, PDF, or Word documents will be accepted).

No Incompletes
I do not give incompletes! All work must be done during this semester.

Cheating
Don't do it! It doesn't provide any benefit to you. Programming and homework assignments must be your own work. You may discuss general, high-level, or conceptual issues with other students, but should not discuss actual code with others. Cheating is considered to be sharing code either by copying, retyping, looking at, or supplying a copy of a file. Cheating is also considered to include the use of code supplied off the Internet. If you use Google or other search engines to look for code to help you with a programming assignment, don't do it! I do expect you to be honest and I will respect you as a colleague until I am proven to be wrong. If you are having problems with an assignment, please come talk to me or send me email.

Equal Opportunity
As instructor I shall make every attempt to treat all students equally, without regard to race, religion, color, sex, handicap, age, veteran status, or sexual orientation. I encourage you to talk to me about your concerns of equal opportunity in the classroom. To inquire further about the University's policy on equal opportunity, contact the Office of Equal Opportunity (6827), 269-273 DAdB.

Students With Disabilities
If you have any disability (either permanent or temporary) that might affect your ability to perform in this class, please inform me at the start of the semester. I may adapt methods, materials, or testing so that you can participate equitably. To learn about the services that UMD provides to students with disabilities, contact the Access Center (8727), 138 Kirby Plaza, or the Office of Equal Opportunity (8217), 269-273 DAdB.

Course Calendar

week
date
topic
info
readings
1
9/5
Class Overview, Math Review
Ch1, Ch2

9/7
Math Review

9/7 (Lab)
Intro to Lab, Work on HW 1
2
9/12
Graphics Pipeline, Rasterization
HW 1 Due, HW 2
Ch3

9/14
Line Rasterization

9/14 (Lab)
3
9/19
Barycentric Coordinates, Triangle Rasterization
HW 2 Due, HW 3

9/21
Triangle Rasterization, Antialiasing

9/21 (Lab)
4
9/26
Quick Linear Algebra Review, Transformations
Ch 5, Ch 6

9/28
3D Transformations
HW 3 Due

9/28 (Lab)
5
10/3
Transformations, Homogeneous Coordinates

10/5
Review, Orthographic Projection
Ch 7

10/5 (Lab)
6
10/10
Exam 1
Ch 1-3,5,6
 

10/12
Viewing, Perspective Projections
 

10/12 (Lab)
   
7
10/17
3D Modeling, Subdivision
 
Ch 8

10/19
No Class

10/19 (Lab)
No Lab
   
8
10/24
Hidden Surface Removal, BSP Trees
 

10/26
Z-Buffer, Lighting
HW 5, HW 4 Due
Ch 9

10/26 (Lab)
   
9
10/31
Lighting Equation
 

11/2
Ray Tracing
Ch 10

11/2 (Lab)
   
10
11/7
Blending
 
Ch 11

11/9
Code Cleanup/Catchup
 

11/9 (Lab)
Code Cleanup/Catchup
HW 5 Due
 
11
11/14
Texture Mapping
 

11/16
Exam Review
 

11/16 (Lab)
   
12
11/21
Exam 2
Ch 7-10
 

11/23
Thanksgiving Break

11/23 (Lab)
Thanksgiving Break
13
11/28
Texture Mapping/OpenGL
 

11/30
OpenGL Display Lists, Multitexturing, OpenGL Shading Language
HW 6 Due - no extensions
 

11/30 (Lab)
No Lab
 
14
12/5
Advanced OpenGL, Shading Language Programming
 

12/7
Advanced OpenGL, Reflection, Heads-Up Display
 

12/7 (Lab)
 
15
12/12
In Class Exercise: Env Mapping
 

12/14
 

12/14 (Lab)
Give demo for HW 7
HW 7 Demo
 
Finals Week
12/21
Final Exam (on a Thursday)
12:00-1:55pm