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
- Brad Loos
Email: loos 'at' cs.utah.edu
Location: CADE
Hours: 11:45 - 1:45, Monday to Friday
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.
Lecture: 1250 WEB, TTh 2-3:20pm
Textbook: OpenGL Programming Guide 2.0 (the one the bookstore has)
Class mailing list: cs5610@cs\ A> [sign up] [archive]
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 about the same level of effort as one of the assignments. 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.
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.
75% assignments (Project counts as 1 assignment)
20% exams
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. 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/21 | Intro to OpenGL | Red Book, chapter 1 |
| 8/23 | State Management and Drawing Geometric Objects | Red Book, Chapter 2 | ||
| 2 | Tues 8/28 | Viewing/Transformations in OpenGL and color | Red Book, Chapter 3 and 4 | |
| Thur 8/30 | Lighting | Red Book, Chapter 5 | ||
| 3 | Tues 9/4 | Blending | Red Book, Chapter 6 | |
| Thur 9/6 | Texture Mapping | Red Book, Chapter 9 | ||
| 4 | Tues 9/11 | No Class | "Two-Part Texture Mapping", Bier and Sloan | |
| Thurs 9/13 | Texture Mapping | "Two-Part Texture Mapping", Bier and Sloan | 5 | Tues 9/18 | Texture Mapping and Lighting revisited | "Pyramidal Parametrics", Lance Williams and "Environment Mapping and other applications of World Projections", Ned Greene |
| Thurs 9/20 | Environment mapping | |||
| 6 | Tues 9/25 | Frame Buffer and Stenciling | Read Chapter 10 | |
| Thurs 9/27 | Exam 1 | |||
| 7 | Tues 10/2 | Frame Buffer, Stenciling | Red Book, Chapter 10, 608-610 (decaling) | |
| Thurs 10/4 | Shadow Maps and Percent Closer Filtering | "Curved Shadows on Curved Reflectors", Williams and "Rendering Antialiased Shadows with Depth Maps", Reeves et al." | ||
| 8 | Tues 10/9 | Fall Break | ||
| Thurs 10/11 | Fall Break | |||
| 9 | Tues 10/16 | Shadows Volumes | A General Version of Crow's Shadow Volumes, Bergeron and A Survey of Shadow Algorithms", Woo, Poulin, Fournier | |
| Thur 10/18 | 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) | ||
| 10 | Tues 10/23 | Modern graphics HW and fragment shaders | Read Red Book, Chapter 15 | |
| Thurs 10/25 | Modern graphics HW and fragment shaders | Chapter 15 | ||
| 11 | Tues 10/30 | Modern graphics HW and vertex shaders | Chapter 15 | |
| Thurs 11/1 | Exam 2 | |||
| 12 | Tues 11/6 | GLSL Intro and GPGPU | http://www.lighthouse3d.com/opengl/glsl/ | |
| Thurs 11/8 | Penumbra Maps and fast shadow methods | Penumbra Maps: Approximate Soft Shadows in Real-Time, Chris Wyman and Charles Hansen Rendering Fake Soft Shadows with Smoothies, Eric Chan and Fredo Durand An Efficient Hybrid Shadow Rendering Algorithm, Eric Chan and Fredo Durand | ||
| 13 | Tues 11/13 | Planar Reflectors | Read the Curved Reflectors paper | |
| Thurs 11/15 | Curved Reflectors | Interactive Reflections on Curved Objects, Ofek and Rappoport | ||
| 14 | Tues 11/20 | Volume Rendering in OpenGL | ||
| Thurs 11/22 | No Class on Thanksgiving. | |||
| 15 | Tues 11/27 | Radiosity | Roger's handout,
|
|
| Thurs 11/29 | Image Based Rendering | Plenoptic Function (Image Based Rendering)
|
16 | Tues 12/4 | Project Presentations | Thurs 12/6 | Project Presentations |