CS 8721 - Advanced Computer Graphics - Spring 2006

Course Syllabus

Location: HH 306 (T/Th)
Time: 3:30-5:10pm T/Th
Instructor: Pete Willemsen
Office Hours: 10:00am-11:00am T, 1:00pm-2:00pm W

Class WebDrop

Recent Updates and Information...

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

Useful Links:

SIGGRAPH Conference - ACM Portal Site
TOG Journal Articles - ACM Portal Site (you are looking for the Proceedings of the SIGGRAPH Conferences)
Symposium on Interactive 3D Graphics - ACM Portal Site

Resources for textures, reading RGB texture files are in the Resources directory.

Nate Robins' OpenGL Tutorial provides an OBJ file format reader as well as a PPM reader. This functionality is located in the glm.c and glm.h files from his tutors code. You may use this for your assignments.

Course Description

The course will present an overview of advanced computer graphics focused on using modern graphics hardware. We will explore advanced graphics techniques and topics using the OpenGL programming API. By mid semester, you should be very familiar with programming computer graphics using OpenGL.

This course emphasizes programming advanced rendering techniques using OpenGL, so expect a lot of programming. There will be approximately 3-5 programming assignments that will be used to familiarize yourself with graphics programming. You will also complete a final project that entails implementing a recent research paper.

Weekly course activities will involve reading and discussing chapters from the book as well as additional handouts that I will prepare. It is very important that you read the required chapters and work on any assigned problems so we can discuss them in lecture. Students will be expected to present and discuss the assigned homework problems.

If you have registered for the course, you will have already been signed up on the class email list. Send me an email letting me know your plans for grad school.

Lastly, this class should be fun, so enjoy the programming and what we're about to learn.

Readings

The course will use two books: Fundamentals of Computer Graphics, 2nd Edition, P. Shirley, A.K. Peters, 2005, and The OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 2. Fifth Edition. Addison-Wesley Professional, 2005.

Class Requirements

There will be many programming assignments in the course along with a project, a mid-term, a final exam, and class participation.

1. Programming Assignments (15%) - There will be around 3-5 assignments given over the first half of the semester. Programming assignments should be coded in C++ and submitted to the online webdrop. All programming assignments are meant to be done by each person in the class. You must do your own work on these assignments and do not collaborate with other people in the class or outside of it. Also note that if you turn in code that is not your own (e.g. taken from a book, copied from someone else, used from an online source, or written by someone other than yourself), you WILL receive a zero on the assignment and may be subject to harsher University rules and regulations. I will be using Moss (and other online systems) for detecting software plagiarism. You have been warned.

2. Project (25%) - Each person is responsible for reading a recent research paper and implementing the ideas from that paper. You will demonstrate and discuss your software at the end of the semester and also turn in a final report. The final report will discuss the problem, the solution you implemented, how well the solution you implemented solves the problem, and how the work relates to similar research efforts. As with the programming assignments, you absolutely MUST do your own work. Any cheating or plagiarism will result in an immediate zero on the project with potential university intervention.

3. Mid-term Exam (20%) - The mid-term exam will cover the material from the first half of the course. The mid-term exam is tentatively set for March 9, 2006.

4. Final Exam (25%) - The final exam will cover the material from the second half of the course, but will also be comprehsive and cover issues from the first half of the semester. The date of the final exam is Tuesday, May 9 from 2:00pm - 3:55pm. There are no excuses for missing the final!

5. Participation (15%) - Your participation and attendance in class will be graded. For much of the class, you will be expected to discuss problems, work solutions, demonstrate and explain code, and make presentations during the lecture. Because of this, you must attend every class. If you will miss class for some reason, you must email me well in advance of missing class with a very good reason why you will not be there. Finally, conduct and your respect for your fellow classmates is part of this grade; in other words, if the manner in which you act in class disrupts or distracts others in the class, your participation grade will be affected negatively.

Policies

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 at least 24 hours in advance in order to arrange a makeup.

Assignments
All assignments will be due in the web drop on or before the due date. Late assignments will be given a ZERO. To turn in an assignment, submit files via the class web drop (ASCII text, PDF, or Word documents will be accepted). A link to the webdrop is located at the top of this document.

Cheating
Programming and homework assignments absolutely 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. This includes grabbing code off the web!! 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 and see me or send me email. Do not copy other people's work!

Incompletes
I do not give incompletes, except for very serious, provable medical reasons.

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 problems
1 1/17
Introduction, Preliminary Work


 

1/19 Miscellaneous Math, Intro OpenGL
HW 1
OGL: Ch 1
FCG: Ch 1,2

FCG Ch2: 6,7,8,11,13
2 1/24 Matrices, Basic OpenGL
HW 2

OGL: Ch 2
FCG: Ch 5

FCG Ch5: 2,4
OGL: Make examples 1-2(p. 18) and 1-3(p. 24) work

1/26 Viewing

OGL: Ch 3
FCG: 6,7

FCG Ch6: 1,5,6,7,9
FCG Ch7: 2,5,7

3 1/31 Viewing, Color, Light

OGL: 4, 5
 

2/2 Lighting

OGL: 6, 9
 
4 2/7 Display Lists, Picking (Ch 13 - Selection)

OGL: 9
FCG: 9,11

 

2/9 Blending, Texture Mapping

OGL: 7
 
5 2/14 Texture Mapping
HW 3

OGL: 10
FCG: 8 (Focus well on Sec 8.2)

Texturing Paper Handout

FCG Ch8: 2
Also, be prepared to discuss Texture Paper


2/16 Texture Mapping

Environment Mapping Paper Handout
 
6 2/21 Environment Mapping



Initial Project Ideas

2/23 Environment Mapping


 
7 2/28 Shadow Mapping


 

3/2 Shadow Mapping


 
8 3/7


 

3/9 Mid-Term Exam


 
9
3/14 Spring Break - No Class


 

3/16 Spring Break - No Class


 
10 3/21 Review of Exam


Begin Infrastructure for Projects - Project Info

3/23 OpenGL Shading Language


 
11 3/28

FCG: 17
OGL: 14,15

 

3/30 OpenGL Shading Language


 
12 4/4 Animation

FCG: 16
 

4/6 Animation


Project Status Report 1 Due
13 4/11  

 

4/13


 
14 4/18 Visual Perception

FCG: 21
 

4/20 Visual Perception


Project Status Report 2 Due
15 4/25


 

4/27


 
16 5/2 Project Demonstrations


 

5/4 Project Demonstrations


 
17 5/9 Final Exam: Tuesday, May 9, 2:00pm - 3:55pm