PROFESSORS
Jim Cremer, 101P MLH, Email: cremer@cs.uiowa.edu, Office hours: 2:00-3:00 Mondays, or by appointment
Joe Kearney, 101M MLH, Email: kearney@cs.uiowa.edu, Office hours: TBA, or by appointment
Course grades will be based on performance on homework assignments, a substantial semester project(done in groups of 2 or 3 students), and a final exam. more details will be available here at the beginning of the semester The components will be weighted roughly as follows
Homeworks assignments 20% Semester project 60% Final exam 20%NOTE:We reserve the right to change any or all of these percentages by 5 percent up or down.
This course will examine several topics in computer graphics in depth. We will spend 2-3 weeks each on topic covering areas such as ray tracing, radiosity, volume rendering, animation, real-time virtual environments, curves and surfaces, texture mapping, and antialiasing.
PLEASE NOTE: This schedule is approximate. It will be upated
to reflect the actual schedule as the semester progresses.
Week 1
1/19 NO CLASS - University holiday
1/21 Goals, organization, topics Jim/Joe
project selection begins
1/23 Review of transformations, modeling Jim
standard graphics pipeline,
issues, state of the art
Week 2
1/26 More graphics review - lighting and reflection Jim
1/28 Shadows (Ch 5) Jim
1/30 Shadows (Ch 5) Jim
PROJECT SELECT, GROUP ORGANIZATION DUE
Week 3 Ray Tracing
2/2 Chapter 8 Jim
2/4 Chapter 9 Jim
2/6 Chapter 10 Jim
Week 4 Radiosity
2/9 Jim
2/11 Chapter 11 Jim
2/13 Jim
Week 5 2/16 Volume Rendering Jim
2/18 Volume Rendering Jim
2/20 Global Illumination (Ch 12) Jim
and Advanced rendering interfaces (Ch 14)
Week 6 Mapping - texture, environment (Ch 6), procedural (Ch 7)
2/23 Joe
2/25 Joe
2/27 Joe
Week 7 Project progress report presentations students
3/2 1. Animation I (Keyframe animation)
2. Volume Rendering
3/4 1. Radiosity
2. Ray tracing
h 3/6 1. Animation II (Evolutionary algorithms)
2. Real-time graphics
Week 8 3/9
3/11 To be announced Jim/Joe
3/13
Week 9 (3/16-20) SPRING BREAK -- NO CLASS
Week 10 Curves and surfaces (Chapter 3)
3/23 Jim
3/25 Joe
3/27 Joe
Week 11 Curves, surfaces, and modeling (Chapter 3 + more
3/30 Joe
4/1 Joe
4/3 Joe
Week 12 4/6
4/8 Project progress report presentations (2/day) students
4/10
Week 13 Animation
4/13 Joe
4/15 Joe
4/17 Joe
Week 14 Animation
4/20 Joe
4/22 Joe
4/24 Joe
Week 15 Final project presentations
4/27 Group 1
4/29 Group 2
5/1 Group 3
Week 16 Final project presentations
5/4 Group 4
5/6 Group 5
5/8 Group 6
Thursday, May 14 FINAL EXAM
7:00pm, 205 MLH
Program code in lectures will be given in C and OpenGL (and pseudo-code). For homework and programming projects C and C++ with OpenGL are acceptable. Other toolkits and languages may be used when appropriate (upon approval of the instructors).
For developing and maintaining projects with multiple files, the Make program can save a lot of time. However, Makefiles have a peculiar syntax which can be difficult to understand. A good introduction to Makefiles can be found at GNU Make: A Program for Directing Recompilation. The section A Simple Makefile is helpful if you already know the general idea, and just want an example to work from.
The graphics API used for the course is OpenGL. Only the departmental Silicon Graphics machines have a true OpenGL implementation. If you do your work on Hewlett-Packard workstations or on PCs running Linux, you may use Mesa, essentially a free version of OpenGL. Mesa does not match the OpenGL API 100 per cent and is not a "certified" OpenGL implementation, but you can use it as if it were a real OpenGL for the purposes of this course.
The OpenGL API does not deal directly with windowing systems and user interaction. In order to avoid some of the pain and verbosity of X/Motif programming, we will use the GLUT (OpenGL Utility Toolkit). It is a library that provides a simple interface for windowing operations and user interaction. Issues specific to particular windowing systems or operating systems are hidden within the GLUT implementation. Thus, programs written using OpenGL plus GLUT are portable across windowing and operating systems.
NOTE: If you have a strong desire to your programming work under Windows95 or Windows NT with OpenGL, you must arrange it with the instructors at the very beginning of the semester. You will probably not receive nearly as much help or support if you go this route. The instructors have much less experience with Windows or NT graphics programming. (But we do want to have people try things and tell us their experiences!)
For implementing homework assignments, the best machines are probably the new Silicon Graphics O2s in B5 MLH. The 16 SGIs in B5 were purchased in Summer 1997 with money from student computing fees.
Room 105 MLH contains a large number (18?) of Hewlett-Packard workstations. You can do your homework on these machines using the Mesa package instead of native OpenGL.
There will be approximately 5 older SGIs in 311 MLH. It is likely that that room will be open only to Computer Science graduate students.
For assignments that contain programming components, you must submit via the 'submit' command:
/group/class/22c251
NOTE: We might also put PC/Linux files here at some point but we're not promising. (We assume most Linux users can easily get and make this stuff for themselves.)
Digital Equipment Corp has a nice set of OpenGL Reference Pages, though they're for Version 1.0, not Version 1.1 (which is the latest).
Brian Paul's Mesa 3-D graphics library home page is the place to start for information on Mesa.
Mark Kilgard's GLUT API Reference Pages are the definitive source of information on GLUT (the GL Utility Toolkit).