CS 381  Topics in Computer Graphics
Meets TR 23:30 PM
Room 107 Chapman Building
University of Alaska Fairbanks

CS F381F01 (#71217)
3.0 Credits, Fall 2006
Prerequisites: CS 202 (Programming)
Recommended: CS 314 (Linear Algebra)

Instructor: Dr. O. Lawlor
ffosl@uaf.edu, 4747678
Office: 210C Chapman, 23 MF (Plus!) 

Recommended Textbook: Interactive Computer Graphics, 4th Ed., by Edward Angel, AddisonWesley ($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, 4747043) 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.

PreThanksgiving 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, 4746396), Math Lab (Chapman Room
305), English
Writing Center (801 Gruening Bldg, 4785246).
Grading
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:
 HW: Homeworks and machine
problems, to be distributed through the semester.
 PROJ: One fairly substantial
graphics project, to be demonstrated in front of the class.
 MT: Midterm Exam. 2pm Thursday, October 19.
 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., ontime grade: 86%; late
grade: 43%). Everything you turn in must be your own
workviolations 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 twoperson group project to
represent twice as much work as a oneperson 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
 Matrixvector products
 Matrixmatrix products
 Translation, scaling, rotation, skew, ...
Points, Lines, and Polygons (1 week) (Angel Chapter 2)
Lighting Computations (2 weeks) (Angel Chapter 6)
 Diffuse & specular lighting
 Shadows
 Vertex & face normals
Midterm

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
 Perpixel lighting
Final Exam
