Instructor
- Chuck Hansen
- Email: hansen 'at' cs.utah.edu
- Office: 4692 WEB (south-west corner, 4th floor Warnock Bldg.)
- Hours: 3:30-4:30, T/Th
Teaching Assistant
- Joonyong Ji email: jji 'at' cs.utah.edu
- TA Hours:
- Tue, 10:45-12:15, 15:30-18:00
- Thr, 10:45-12:15, 15:30-18:00
- Fri, 13:30-15:30
This is not an introductory course. That would be CS 5600 which is offered in the Spring semester. If you have not taken CS 5600, you need to discuss this with the instructor. I will not allow students to register for the course without appropriate pre-requisites. You are expected to be proficient at OpenGL programming before taking this course.
Lecture: 1250 WEB, TTh 2-3:20pm
Textbook: OpenGL Programming Guide 2.0 (the one the bookstore has)
Class mailing list: cs5610@list.eng.utah.edu\ A> [sign up]
Everyone intending to take this course needs to get on the class mailing list. The one mailing list will serve both courses: CS 5610 and CS 6610.
I expect all questions about the lectures, assignments, or the class in general to be sent to the class email list. The reason is that others may very well have the same question and it saves myself and the TA from repeatedly answering the same question. Don't be bashful about posting to the class email list ... everyone is learning!
In this course we will explore advanced graphics topics utilizing features in the OpenGL graphics library. This will entail reading the textbook, attending lectures and applying those concepts to multiple programs to be assigned during the semester. We will also read research papers where graphics ideas were presented. There will be a final project. A good project for CS 5610 would be a particle system for smoke and fire and a good project for CS 6610 is to an algorithm described in a paper from the one of the recent SIGGRAPH proceedings or I3D.
The emphasis will be on programming for more extensive effects than Gouraud shading and other advanced graphics topics. This is a programming course, be prepared for heavy programming. I know of no other way to really learn OpenGL. The textbook will be the OpenGL Programming Guide and lots of handouts consisting of research papers you are expected to read and discuss in class. It is important to read these handouts, they form the basis for the advanced topics we will be discussing in class and you will be implementing as assignments. In class discussion will focus on issues raised by the readings including both handouts and the textbook. A substantial (same work as one programming assignment) final project will involve implementing a paper from the SIGGRAPH proceedings or an advanced graphics algorithm agreed upon with the instructor.
You will learn to program interesting effects for computer graphics. You will also learn to read research papers and implement algorithms from them. This is a skill you will use throughout your professional career.
Above all, this course should be fun.
80% assignments (Project counts as 2 assignments)
15% exams (I decided to leave the exams at 15%)
5% class participation
DON'T share code! DON'T grab code off the web! (we check; you will fail the
class!)
Late penalty: -20%/day. But you have 4 free late-days. That is,
you can use these to avoid a late penalty since stuff-happens as
you told me. Yes, this is stiff but you should turn in what you have
for partial credit rather than try to complete an assignment a week late.
NO Incompletes, except for very serious medical reasons. Turn in semi-working
stuff for partial credit.
Wk |
Date |
Topic |
Reading |
1 | Tues 8/25 | Course Overview | Red Book, chapter 6 (you should already know 1-5) |
| Thur 8/27 | Blending | Red Book, Chapter 6 | |
| 2 | Tues 9/1 | Texture Mapping | Red Book, Chapter 9 |
| Thur 9/3 | Texture Mapping | "Two-Part Texture Mapping", Bier and Sloan | |
| 3 | Tues 9/8 | Texture Mapping | <"Pyramidal Parametrics", Lance Williams |
| Thur 9/10 | Environment Mapping | "Environment Mapping and other applications of World Projections", Ned Greene | |
| 4 | Tues 9/15 | Environment mapping | The Story of Reflection Mapping |
| Thurs 9/17 | Stenciling, silhouettes and decaling | Read Chapter 10, 616-623 | 5 | Tues 9/22 | Shadow Maps and Percent Closer Filtering | "Curved Shadows on Curved Reflectors", Williams and "Rendering Antialiased Shadows with Depth Maps", Reeves et al." |
| Thurs 9/24 | Shadows | A General Version of Crow's Shadow Volumes, Bergeron and A Survey of Shadow Algorithms", Woo, Poulin, Fournier | |
| 6 | Tues 9/29 | Shadows Volumes and soft shadows | Shadow Volume Reconstruction from Depth Maps, Michael D. McCool (great shadow volume/shadow map hack! Fast Shadows and Lighting Effects Using Texture Mapping, Segal et al. (projective textures) | Penumbra Maps: Approximate Soft Shadows in Real-Time, Chris Wyman and Charles Hansen Rendering Fake Soft Shadows with Smoothies, Eric Chan and Fredo Durand
| Thurs 10/1 | Shadows Volumes and planar reflectors | An Efficient Hybrid Shadow Rendering Algorithm, Eric Chan and Fredo Durand | |
| 7 | Tues 10/6 | Modern graphics HW and fragment shaders | Read Red Book, Chapter 15 |
| Thurs 10/8 | Modern graphics HW and fragment shaders | Chapter 15 | |
| 8 | Tues 10/13 | Fall Break | |
| Thurs 10/15 | Fall Break | ||
| 9 | Tues 10/20 | Bump Mapping and Tangent Space | Derivation of tangent space basis vectors for polygons |
| Thur 10/22 | Modern graphics HW and fragment shaders | Bump Mapping in Cg | |
| 10 | Tues 10/27 | HW Shader Examples | |
| Thurs 10/29 | Exam 1 | ||
| 11 | Tues 11/3 | More Shader Examples | |
| Thurs 11/5 | Radiosity | Roger's handout,
|
|
| 12 | Tues 11/10 | Planar Reflectors | Read: Interactive Reflections on Curved Objects, Ofek and Rappoport |
| Thurs 11/12 | Curved Reflectors | Interactive Reflections on Curved Objects, Ofek and Rappoport | |
| 13 | Tues 11/17 | ||
| Thurs 11/19 | Exam 2 | ||
| 14 | Tues 11/24 | Volume Rendering | |
| Thurs 11/26 | No Class on Thanksgiving. | ||
| 15 | Tues 12/1 | Image Based Rendering | Plenoptic Function (Image Based Rendering)
|
| Thurs 12/3 | 16 | Tues 12/8 | Project Presentations | Thurs 12/10 | Project Presentations |