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
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

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.  You are expected to be proficient at OpenGL programming before taking this course.

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@list.eng.utah.edu [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!



College of Engineering Guidelines

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. 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.

Grading

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.

 


Exams

2005 exams (one and two).

2009 exam solutions

Final

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

Weekly Plan from 2009

Penumbra Maps: Approximate Soft Shadows in Real-Time, Chris Wyman and Charles HansenRendering Fake Soft Shadows with Smoothies, Eric Chan and Fredo Durand

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)
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,
The Hemi-cube A Radiosity Solution for Complex Environments, Cohen and Greenberg
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)
Lightfield Rendering (Image Based Rendering)
The Lumigraph (Image Based Rendering)
Thurs 12/3
16 Tues 12/8 Project Presentations
Thurs 12/10 Project Presentations

Lecture Notes

Lecture Notes from class.

Assignments

Assignment 1

Programming Assignment 1. Due 9/24/2009

Assignment 2

Programming Assignment 2. Due 10/22/2009

Assignment 3

Programming Assignment 2. Due 11/5/2009

Project

Project Assignment (You should think about what you are doing) Due Monday, Dec 14, 2009 Midnight
Preliminary Project Results Due Thursday, Dec 3, 2009 Midnight Your preliminary results must contain a web-link to your project writeup (to be used for the presentation) as well as a report on what you have done and what you will do to complete the project. Intermediate results are required, a fully developed, running program is not.

 

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 (5-10 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 web link to an html file by Monday 12/8 at midnight and CS 5610 students should a link to their html file by Wednesday, 12/10 at midnight (the preliminary project results are due on Monday 12/8 though). CS 6610 students give their presentations on Tuesday (12/8) and CS 5610 students give their presentation on Thursday (12/10). Some 6610 students might be moved to Thursday due to time constraints. This presentation is the class presentation and combined with the preliminary results is 25% of your grade. The remaining 75% will depend on your final project.

Project Demo: You are required to demo your project. Email me with the time you would like to demo on Wednesday or Thursday of Finals week: Project Demo Time

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.