4003-573 Procedural Shading - Course Syllabus

Last updated 2013/03/01 16:56:28

Update history:

2013/03/01: 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. Each team will be given a specification of a visual effect, and assigned the tasks of researching current methods to creating the effect, proposing an implementation approach, developing the implementation, and presenting their work to the class.

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 shader development 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 two students; if need be, one or more teams may consist of three students.

A list of possible projects will be distributed and posted early in the quarter; student-initiated effects will also be acceptable. Each student will choose one of these projects (or propose one of his or her own), 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. These readings are for your education only, and are not graded in any way.

4. RIT and CS Department Policies

4.1. Academic Conduct

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

4.2. Section 504 of the Rehabilitation Act

RIT is committed to providing reasonable accommodations to students with disabilities. If you would like to request accommodations such as special seating or testing modifications due to a disability, please contact the Disability Services Office. It is located in the Student Alumni Union, Room 1150; the Web site is www.rit.edu/dso. After you receive accommodation approval, it is imperative that you see me during office hours so that we can work out whatever arrangement is necessary.

5. Notes


RenderMan® is a registered trademark of Pixar.