DMS 424: Programming Graphics 2
Spring 2003

Course Info

When: Monday/Wednesday 1:00 - 2:50 pm
Where: CFA 242

Instructor: Dave Pape
Office: CFA 248A
Office hours: MW 3-4


Course Description

This production course extends students knowledge of OpenGL and programming into the realm of 3D computer graphics. The course, a continuation of DMS 419, will cover more advanced techniques for rendering, animation and interaction. The major focus of the course will be on creating interactive art experiences by programming graphics and sound. However, the topics are also relevant to many real-time applications such as virtual reality and computer games.


OpenGL Programming Guide, Third Edition, Mason Woo et al.

Other books/websites that may be of interest:

Course Requirements

This is a course that is still in flux, so participation is vital - I need to know where you're having problems and what you're interested in, in order to adjust the class. You are allowed up to three free absences; after that, each absence will cost you 2% of your overall grade.

Assignments will be given on Wednesday, and due (electronically) the following Wednesday at noon. Late assignments are penalized -10% per 24 hour period that they're late.

Assignments will be graded first on whether they visually accomplish what was required, and second on code quality. It is important that code be clear and understandable, both so that you can work on it, and so that others can make use of it in the future.

All assignments and projects must be your own work. Work is to be done individually - do not share code with, write code for, or copy code from other students. This applies to all assignments while they are outstanding - i.e., until everyone's program has been turned in and graded. A first violation of this policy will result in failure of the assignment; repeated violations will result in failure of the course.

The default course grading will be:
   91-100 = A, 85-90 = A-, 80-84 = B+, 75-79= B, 70-74 = B-,
   65-69 = C+, 60-64 = C, 55-59 = C-, 50-54 = D, 0-49 = F
The final cutoff points may be adjusted downward as appropriate.


Tentative Schedule

(This will almost certainly change as the semester progresses.)
Last updated: 7 March

TopicTextbook reading
13 Jan Course overview
15 Jan Intro to 3D projections, Z-buffering pp. 96-100, 123-128, 175-177
20 Jan [MLK day]
22 Jan transformations, coordinate systems 96-116
27 Jan geometry 37-48
29 Jan lighting 64-66, 173-217
3 Feb lighting; fog 173-217, 242-250
5 Feb basic texturing 351-365
10 Feb alpha 220-232
12 Feb review; making a toolkit
17 Feb libdms toolkit
19 Feb libdms toolkit
24 Feb Other tools VR - CAVE library
26 Feb sound
3 Mar Simulation vectors; basic motion; gravity sim
5 Mar randomness
10-14 Mar [break]
17 Mar Advanced texturing texture map "movies" 367-370
19 Mar Simulation flocking
24 Mar Advanced texturing texture transformations 420-421
26 Mar Simulation particle systems
31 Mar Advanced texturing texgen - contours, reflection maps 413-419
2 Apr [celebrity scholar series]
7 Apr Advanced texturing reflection maps 413-419
9 Apr Simulation springs
14 Apr Advanced texturing multi-texturing; light-mapping 422-427
16 Apr Real-time tricks billboards & impostors
21 Apr level-of-detail
23 Apr Python Python
28 Apr pyOpenGL
5/7 May (finals) Semester projects