CS 381 - Topics in Computer Graphics

Meets TR 2-3:30 PM
Room 107 Chapman Building
University of Alaska Fairbanks
CS F381-F01 (#71217)
3.0 Credits, Fall 2006
Prerequisites: CS 202 (Programming)
Recommended: CS 314 (Linear Algebra)
Instructor: Dr. O. Lawlor
ffosl@uaf.edu, 474-7678
Office: 210C Chapman, 2-3 MF (Plus!)
Book Cover
Recommended Textbook: Interactive Computer Graphics, 4th Ed., by Edward Angel, Addison-Wesley ($112.50 at UAF bookstore; $100 on Amazon). The 3rd edition is also acceptable. ADA Compliance: Will work with Office of Disabilities Services (203 WHIT, 474-7043) to provide reasonable accomodation to students with disabilities. Course Website: http://www.cs.uaf.edu/2006/fall/cs381/

Course Goals and Requirements

By the end of the course, you will be able to write C++ OpenGL applications that do interesting things on programmable graphics hardware. You'll need to be able to program in C++: CS 202 is a required prerequisite. You'll also need to be able to understand the mathematics used throughout graphics, primarily 2D and 3D cartesian coordinate systems, vectors, and small matrices. Hence substantial mathematical maturity, at the level of Calculus III or Math 314 (Linear algebra) is required.


First day of class: 2pm Thursday, August 31. 
Last day to drop: Friday, September 15. 
Midterm: 2pm Thursday, October 19. 
Project proposal due: Tuesday, October 24.
Last day to withdraw: Friday, October 27. 
Pre-Thanksgiving fun lecture:  Tuesday,  November 21.
Thanksgiving break (no class): Thursday,  November 23.
Project code due: Tuesday, November 28.
Project presentations: December 5 and 7.
Last class: 2pm Thursday, December 7.
Final Exam: 1pm Wednesday, December 13. 

Student Resources

Academic Help: Google, Rasmuson Library, Academic Advising Center (509 Gruening, 474-6396), Math Lab (Chapman Room 305), English Writing Center (801 Gruening Bldg, 478-5246).


Your work will be evaluated on correctness, rationale, and insight, not on successful regurgitation of random trivia.  Grades for each assignment and test may be curved.   Your grade is then computed based on four categories of work:
  1. HW: Homeworks and machine problems, to be distributed through the semester.
  2. PROJ: One fairly substantial graphics project, to be demonstrated in front of the class.
  3. MT: Midterm Exam.  2pm Thursday, October 19. 
  4. FINAL: Final Exam (comprehensive).   1pm Wednesday, December 13. 
The final score is then calculated as:
TOTAL = 25% HW + 20% PROJ +  25% MT + 30% FINAL
Letter grades are then assigned at the usual 90/80/70 (etc) cutoffs.  At my discretion, I may round your grade up if it is near a grading boundary.

Fine Print

Homeworks are due by midnight on the day they are due.  Late homeworks will receive no credit.  At my discretion, I may allow late assignments without penalty when due to circum stances beyond your control.  Major assignments (such as projects) that are up to two weeks late may be accepted at a 50% grade penalty (e.g., on-time grade: 86%; late grade: 43%).  Everything you turn  in must be your own work--violations of the UAF Honor code will result in a minimum penalty equal to THAT ENTIRE SECTION OF YOUR GRADE (e.g., one plagarized homework question will negate a perfect grade on all homeworks).  However, even substantial reuse of other people's work is fine (and not plagarism) if it is clearly cited; you'll be graded on what you've added to others' work.  Group work on projects is acceptable if you clearly label who did what work; but I do expect a two-person group project to represent twice as much work as a one-person project.  Department policy does not allow tests to be taken early; but in extraordinary circumstances may be taken late. 

Course Outline (Tentative)

Camera Model (1 week) (Angel Chapter 1)
  • 3D Position and direction vectors
  • Arithmetic on 3D vectors
  • GLSL shading language types & operations
  • Simple cameras
  • OpenGL cameras, gluLookAt
Coordinate Transformations (2 weeks) (Angel Chapter 4)
  • Homogenous coordinates and 3D matrices
  • Matrix-vector products
  • Matrix-matrix products
  • Translation, scaling, rotation, skew, ...
Points, Lines, and Polygons (1 week) (Angel Chapter 2)
  • Vertex colors
Lighting Computations (2 weeks) (Angel Chapter 6)
  • Diffuse & specular lighting
  • Shadows
  • Vertex & face normals
Texturing (2 weeks)  (Angel Chapter 8)
  • 2D array of pixels
  • Texture coordinates & clamp/wrap modes
  • Texture filtering & mipmapping
  • Render to texture/framebuffer objects
  • BMP and PPM file formats
  • Cubemaps, 1D, 3D textures
Model File Formats & Representations (1 week)  (Angel Chapter 10)
  • Array of vertices, array of faces
  • Survey of connectivity data structures
Raytracing (2 weeks)  (Angel Chapter 12)
  • Ray equation
  • Spheretracing
  • Planetracing
  • Quadric surfaces
  • Deriving the camera matrix
  • Refraction, hard shadows
  • Per-pixel lighting
Final Exam