 |
|
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 |
|
info
|
readings |
1 |
9/5 |
Class Overview, Math Review |
|
|
|
9/7 |
Math Review |
|
|
|
9/7 (Lab) |
Intro to Lab, Work on HW 1 |
|
|
2 |
9/12 |
Graphics Pipeline, Rasterization |
|
Ch3 |
|
9/14 |
Line Rasterization |
|
|
|
9/14 (Lab) |
|
|
|
3 |
9/19 |
Barycentric Coordinates, Triangle Rasterization |
|
|
|
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 |
|
|
|
|
Hidden Surface Removal, BSP Trees |
|
|
|
10/26 |
Z-Buffer, Lighting |
|
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 |
|
|
|
|
11/16 |
Exam Review |
|
|
|
11/16 (Lab) |
|
|
|
12 |
11/21 |
Exam 2 |
Ch 7-10 |
|
|
|
Thanksgiving Break |
|
|
|
|
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 |
|
|
|
Final Exam (on a Thursday) |
12:00-1:55pm |
|
|