CS 481/681 - Topics in Computer Graphics

Meeting time: 11:30-1:00pm
Room 306 Duckering Building
University of Alaska Fairbanks

UAF CS F481/F681
3.0 Credits, Spring 2012
Prerequisite: CS 381 (Graphics)

Instructor: Dr. Orion Lawlor
lawlor@alaska.edu, 474-7678
Office: 201E Chapman
Hours: 4-5 TR (or whenever!)

Optional Textbooks: Computer Graphics: Principles and Practice in C, Foley & van Dam
GPU Gems vols 1-3.

ADA Compliance: Will work with Office of Disabilities Services (208 Whitaker Building, 474-5655) to provide reasonable accommodation to students with disabilities.

Course Website: http://www.cs.uaf.edu/2012/spring/cs481
Graphics Machines: Chapman lab, or I have one loaner laptop, and a pile of good loaner PCI-Express and AGP graphics cards!

Course Goals and Requirements

By the end of the course, you will be able to write modern graphics software, and understand current techniques in the rendering field. This includes writing C++ OpenGL applications with programmable GLSL shaders that run on the graphics card using raytracing, volume rendering, soft shadows, antialiasing, and radiosity. To do this, you must have a clear understanding of programming C++, simple programmable OpenGL, 3D vectors and vector operations, and transformation matrices.

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).


You'll get better grades by attending class, doing homework, and understanding the material than by cramming before the exam. Your overall grade comes from:

  1. HW: Homeworks and machine problems, to be distributed through the semester.

  2. PROJ: two substantial graphics projects, together with a short presentation of your results. Example projects: read a paper and implement a similar technique, write your own recursive raytracer or other nice shader, implement a radiosity algorithm, or implement a soft shadow algorithm.

  3. MT: Midterm Exam.

  4. FINAL: Final Exam (comprehensive).

The final score is then calculated as:

TOTAL = 30% HW + 30% PROJ + 20% MT + 20% FINAL

This percentage score is transformed into a plus-minus letter grade via these cutoffs: A >= 93%; A- 90%; B+ 87%; B 83%; B- 80%; C+ 77%; C 70%; D+ 67%; D 63%; D- 60%; F. The grades “C-”, “F+”, and “F-” will not be given. “A+” is reserved for truly extraordinary work. At my discretion, I may round your grade up if it is very close to a grading boundary.

Students taking CS 681, the graduate course, will have extra readings from the graphics literature, extra exam questions, and be expected to complete substantially more complex projects.

The Fine Print
Individual assignments and tests may (rarely) be curved. Homeworks are normally due at 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 circumstances beyond your control. 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 plagiarized homework question will negate an otherwise perfect grade on all homeworks). However, even substantial reuse of other people's work is fine (and not plagiarism) if it is clearly cited; you'll be graded on what you've added to others' work. Group projects (NOT homeworks) are 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.


First day of class: Thursday, January 19.  Last day to drop: Friday, February 3.  Spring break: March 12-16. Midterm exam: Thursday, March 8.  Last day to withdraw: Friday, March 23.  Last day of class: Thursday, May 3. Final exam: 5:45-7:45pm Wednesday, May 9.

Course Outline (Tentative)

Before Spring Break: Raytracing

  • Naive Raytracing:

    • Solving the ray equation on planes, spheres, and parametric objects

    • Camera rays and shadow rays

    • Ray-object shading and texturing

    • Hybrid raytracing with Z buffer

    • Raytracer antialiasing

  • Recursive Raytracing: reflections and refraction, Snell's Law

  • Volume Rendering via Raycasting

  • Raytracing acceleration: GPU, first-hit, bounding volumes, bounding hierarchies

  • Iterated Function System raytracing, stepping raytracers

  • First project presentations

  • Midterm exam

After Spring Break: Scalable Rendering

  • Modeling and reading polygon geometry

  • Scalable shadow algorithms:

    • Decal and projective shadows

    • Hard shadow volumes

    • Shadow maps

  • Rasterization-based antialiasing: multisampling and FSAA

  • Soft shadow algorithms

  • Radiometry terminology and theory

  • Radiosity survey and GPU techniques

  • Second project presentations

  • Final exam

Optional additional course topics (please vote!)