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
Office: 210C Chapman, 2-3 MF (Plus!)
|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.
Google, Rasmuson Library, Academic
Advising Center (509 Gruening, 474-6396), Math Lab (Chapman Room
Writing Center (801 Gruening Bldg, 478-5246).
Your work will be evaluated on correctness, rationale, and insight, not
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:
The final score is then calculated as:
- 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.
= 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.
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
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
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.
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)
Coordinate Transformations (2 weeks) (Angel Chapter 4)
- 3D Position and direction vectors
- Arithmetic on 3D vectors
- GLSL shading language types & operations
- Simple cameras
- OpenGL cameras, gluLookAt
Points, Lines, and Polygons (1 week) (Angel Chapter 2)
Lighting Computations (2 weeks) (Angel Chapter 6)
- Homogenous coordinates and 3D matrices
- Matrix-vector products
- Matrix-matrix products
- Translation, scaling, rotation, skew, ...
- Diffuse & specular lighting
- Vertex & face normals
|Texturing (2 weeks) (Angel Chapter 8)
Model File Formats & Representations (1 week) (Angel Chapter 10)
- 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
Raytracing (2 weeks) (Angel Chapter 12)
- Array of vertices, array of faces
- Survey of connectivity data structures
- Ray equation
- Quadric surfaces
- Deriving the camera matrix
- Refraction, hard shadows
- Per-pixel lighting