4003-573 Procedural Shading - Course Syllabus

Last updated 2012/03/17 11:43:04

Update history:

2012/03/17: added programming style/documentation notes
2012/03/12: initial version

Name: Warren R. Carithers
Office: 3617 Golisano (70-3617)
Phone: (585) 475-5393
Email: wrc AT cs.rit.edu

1. Course Overview

1.1. Course Goal

The primary goal of this course is to introduce students to the architectures and mechanisms of procedural shading and to teach them the theory and algorithms behind effective use of shaders in creating stunning visual effects. The course will compare and contrast real time vs. non-real time shader architectures and students will gain expertise in both environments. The format of the course delivery will be part lecture, part studio style with weekly labs given, based upon the techniques presented in class.

Another goal of the course is to provide students the opportunity to, in a team-based environment, apply their newly obtained expertise in shading to the design, implementation, and documentation of a more advanced visual effect. Teams, which will be led by Graduate Students in the cross-listed graduate section, will be expected to document their work in a written report as well as present their shader to the class via a group oral presentation.

1.2. Course Outcomes

The following are the intended outcomes for this course:

1.3. Course Prerequisites

The prerequisite for this course is one of the following courses:

These are prerequisites, not corequisites - to succeed in this course, you should have already passed one of these courses, or their equivalents. Taking it at the same time as this course is not sufficient! See me immediately if you are missing the prerequisites, or you may be dropped from this course without further warning!

2. Books

There are two required textbooks for this course:

There is one optional textbook for this course:

You may also find these books to be useful:

All the GPU Gems books are available online in HTML format; see the course links page for details.

3. Grades

In Computer Graphics, much like many other areas of Computer Science, the best way to learn is by doing. Whereas the theory of image synthesis will be discussed in the lectures, the real learning occurs when implementing this theory into code. Thus, this course relies heavily on programming tasks for grading.

The final grade will be determined using the following weights:

  60% Labs
  40% Final project (implementation and documentation)

3.1. Lectures and Labs

Beginning in week 2, each week of the course will focus on techniques for implementing different classes of effects using shaders. The first class each week will be a lecture class, during which the theory (with a discussion on implementation) will be presented. During the second class each week, students will implement representative shaders based on the previous lecture during in-class laboratory exercises. Labs will be done using both GLSL and RenderMan, and will be due the following week. There will be a total of seven labs given during the course of the quarter; each lab will count equally towards the final grade.

Readings from the Graphics literature will supplement material presented in lecture, as many of the shaders to be written in lab will be based on current papers (see the Readings section, below), Although no summaries or reviews of the readings are required, implementation of lab assignments will be easier if you do the readings.

3.2. Project

In addition to the Labs, students will have the opportunity to design, implement, and document a shader from scratch for a more sophisticated effect as a final project. The project will be performed in teams. Most teams will consist of one one graduate student who will serve as team leader, and one undergraduate student; some teams may have one graduate student and two undergraduate students. If necessary, I may create a team consisting of two graduate students.

A list of possible projects will be distributed and posted early in the quarter; student-initiated effects will also be acceptable. Each graduate student will chose one of these projects (or propose one of his or her own). Undergraduates will specify a preference of team/shader, and team assignments will be made to best accomodate these preferences.

The project will consist of five phases:

3.3. Readings

To assist you in researching and developing your shaders, a reading list of papers related to the various classes of effects has been developed. See the reading list (linked from the course assignments page) for details.

4. Academic Conduct

Academic dishonesty will be dealt with in accordance with DCS and RIT policies.

5. Notes


RenderMan® is a registered trademark of Pixar.