CS 5610/6610 - Interactive Computer Graphics


Staff

o 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
o Teaching Assistant

Student Info

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.

o Lecture: 1250 WEB, TTh 2-3:20pm
o Textbook: OpenGL Programming Guide 2.0 (the one the bookstore has)
o Class mailing list: cs5610@cs [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!



College of Engineering Guidelines

College Guidelines (pdf file)

Course Philosophy and Objectives

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.

Grading

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.

 


Exams

2005 exams (one and two).
2007 exams keys

Final

There will not be a final. Grades will be assigned based upon the homeworks, the project, and exams.

Weekly Plan from 2007

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,
The Hemi-cube A Radiosity Solution for Complex Environments, Cohen and Greenberg
Thurs 11/29 Image Based Rendering Plenoptic Function (Image Based Rendering)
Lightfield Rendering (Image Based Rendering)
The Lumigraph (Image Based Rendering)
16 Tues 12/4 Project Presentations
Thurs 12/6 Project Presentations

Lecture Notes

Lecture Notes from class.

Assignments

Assignment 1

Programming Assignment 1. Due 9/13/2007

Assignment 2

Programming Assignment 2. Due 10/16/2007 This has been moved to Tuesday

Assignment 3

Programming Assignment 3. Due 10/30/2007

Assignment 4

Programming Assignment 4. Due Tues, 11/20/2007

Project

Project Assignment (You should think about what you are doing) Due Friday, 12/7/2007 Midnight

If you want a large object, Lee Butler provided this truck model . Thanks Lee!

CS 6610: If you are doing Wyman's paper, please be sure to include a skybox, and refractive sphere (among other refractive objects) since I need to verify the correctness, and do not just copy his shader code. To improve your grade, you can add more effects to your project.

If you are lost about what to do for a project, check out the ACM Symposium on Interactive 3D Graphics (use the Marriott Library to access on-line journals) or ACM SIGGRAPH. If you are still lost, try a specific paper like Chris Wyman's "An Approximate Image-Space Approach for Interactive Refraction" which uses shader programming or Emil Praun's "Real-Time Hatching"

Project Talk (last week of classes): You are required to give a short (3-5 min) talk on your project. This should 1) introduce your project, 2) describe where you are with your project (include 1-2 screen shots), 3) describe what else you will do with your project. This talk should be a HTML file that you 'handin' to openGL5. CS 6610 students should submit their html file by Tuesday 12/4 at noon and CS 5610 students should their html file by Thursday 12/6 at noon. CS 6610 students give their presentations on Tuesday (12/4) and CS 5610 students give their presentation on Thursday (12/6). Some 6610 students might be moved to Thursday due to time constraints. This presentation is is the class presentation and is 25% of your grade. The remaining 75% will depend on your project.

Project Web Pages 2005

Project Web Pages for this year.

Updates


Course Materials and Handouts

Getting Started
OpenGL State Machine Diagram
OpenGL Tutorials for x86 Linux
Nate Robbins' OpenGL tutorial page
Pyramidal Parametrices, Lance Williams 9/16
Phong highlights through env mapping (envphong.c)
Casting Curved Shadows on Curved Surfaces, Lance Williams
Rendering Antialiased Shadows with Depth Maps, Reeves/Salesin/Cook
Penumbra Maps: Approximate Soft Shadows in Real-Time, Chris Wyman and Charles Hansen
Interactive Reflections on Curved Objects, Ofek and Rappoport
The Hemi-cube A Radiosity Solution for Complex Environments, Cohen and Greenberg
Plenoptic Function (Image Based Rendering)
Lightfield Rendering (Image Based Rendering)
The Lumigraph (Image Based Rendering)
Billboard Clouds for Extreme Model Simplification, Decoret et al.
This page is very much under construction. Please check back frequently for updates.