Computer Graphics Programming II


Table of Contents
Course Description
Prerequisite
Texts
Required Materials
Grading
AiPD Policies
Course Calendar


Course Description

VGP352A

Winter 2008, 3 credits

Tuesday, 6:00PM - 9:45PM

Room #201

In this course students will learn and apply high-level shading language concepts using the OpenGL Shading Language. Students will gain experience working with advance lighting models and procedural texturing techniques.

By the end of the course, students will be able to:

The complete, up to date, course syllabus is also available on-line at the course website. The syllabus is available as both HTML and PDF.


Prerequisite

Successful completion of VGP351 or concent of instructor is required.

This course is both programming and math intensive. Some background in C or C++ programming is required. Familiarity with object oriented programming principles will be very helpful but is not strictly required. Working knowledge matrix math and trigonometry is required. Some background in basic calculus is helpful but not required.


Texts

Required text:

Tomas Akenine-Möller Eric Haines Real-Time Rendering (2nd Ed.). AK Peters, Ltd., July 2002. ISBN 1-56881-182-9.

The book also has a website, that includes lots of additional references and sample code.

Optional texts:

Randi J. Rost OpenGL Shading Language (2nd Ed.). Addison-Wesley Professional, January 25, 2006. ISBN 0321334892

Richard S. Wright Benjamin Lipchak Nicholas Haemel OpenGL SuperBible: Comprehensive Tutorial and Reference (4th Ed.). Addison-Wesley Professional, June 2007. ISBN 0321498828.

Earlier editions of either book should be sufficient for this course. They are often available on eBay or Amazon at reduced prices. There will not be any readings assigned from either book.

OpenGL Shading Language has a website, that includes example shaders and some references.


Required Materials

In addition to paper and writing utensils, each student will need a removable storage device. The storage device will be used to both bring documents and sample code home from class and bring homework completed assignments to class. The storage requirements should be minimal, so a small USB flash-drive (256MB) should be sufficient.


Grading

Each student's grade in this course will be primarily based on a total of five single-week programming assignments and one four-week programming project. Each student will also be required to read an academic paper and present a summary of that paper to the class. The remainder of the student's grade will be based on bi-weekly quizes and a final exam.

Programming assignments will be graded first and foremost on whether or not correct output is produced. The remaining points are based on the style of the program. This includes, but is not limited to, algorithm selection, code formatting, and naming conventions. A detailed rubric will be provided with each assignment.

Programming Assignments 
In-class presentation20 pts.
Homework programming assignments50 pts.
Term project50 pts.
Subtotal120 (63%)
Tests 
In-class quizzes20 pts.
Final Exam50 pts.
Subtotal70 pts. (37%)
Total190 pts. (100%)

Some assignments may carry extra-credit opportunities, but they will be infrequent.


Grading Scale

A=93% and above
A-=90%-92%
B+=87%-89%
B=83%-86%
B-=80%-82%
C+=77%-79%
C=73%-76%
C-=70%-72%
D+=67%-69%
D=60%-66%


Late Work

I do not accept late work. If you miss a deadline, you will not earn the points for that activity. There are no make-up opportunities. If you are unable to attend class on the due date for a assignment, please submit it by e-mail before class.


Attendance and Participation

If you are not in class for an in-class exercise, you cannot earn those points. If you miss an entire class, you are responsible for obtaining copies of handouts and other classroom materials from your classmates.


AiPD Policies

Lab Policies

Leave food and drink outside the class. Disciplinary action will be taken toward any student found using the equipment in an inappropriate manner, taking cell phone calls or surfing the web. Disruptive, disrespectful or rude behavior will not be tolerated.


Plagiarism

Presenting the writings, images or paraphrased ideas of another as ones own, is strictly prohibited at the Art Institute of Portland. Properly documented excerpts from others works, when they are limited to an appropriate amount of the total length of a student's paper, are permissible when used to support a researched argument.


Students with Disabilities

It is AiPD policy not to discriminate against qualified students with a documented disability in its educational programs, activities or services. If you have a disability-related need for adjustments or other accommodations in this class, contact the Disability Services Coordinator.


Amber Perrin
Disabilities Services Coordinator
The Art Institute of Portland
1122 NW Davis Street
PortlandOR 97209-2911
503-382-4836


Course Calendar

Week 1 (January 8th, 2008)

Lecture notes

  • Course road-map

  • Introduction to OpenGL Shading Language

    • What fixed-function elements does GLSL replace?

    • Overview of shader syntax

    • Loading and using shaders

  • Phong shading with GLSL

    • Shading in world-space

    • Shading in surface-space (aka tangent-space)

    • Bumpmapping in surface-space

  • Homework assignments:


Week 2 (January 15th, 2008)

Lecture notes


Week 3 (January 22nd, 2008)

Lecture notes

  • Improving the reflection model

    • Mipmapping of normal maps

    • Using environment maps as lights

    • Fresnel reflection

  • BRDF Introduction

    • Bi-directional reflection distribution function

    • Common terminology and notation

  • Cook-Torrance model

  • Homework assignments:


Week 4 (January 29th, 2008)

Lecture notes


Week 5 (February 5th, 2008)

Lecture notes


Week 6 (February 12th, 2008)

Lecture notes

  • Fur and hair

    • Goldman's ``Fake Fur Rendering''

    • Shells and fins

    • Banks BRDF for individual hairs

  • Homework assignments:


Week 7 (February 19th, 2008)

Lecture notes

  • Non-photorealistic Rendering:

    • Cel (toon) shading

    • Silhouette edge rendering

    • Technical illustration

  • Homework assignments:

    • Read:

      • Real-Time Rendering, sections 7.1 and 7.2.

      • Adam Lake, Carl Marshall, Mark Harris, Marc Blackstein. Stylized Rendering Techniques for Scalable Real-Time 3D Animation. In Proceedings of the First International Symposium on Non-photorealistic Animation and Rendering (NPAR), pp 13-20. June 2000. http://softwarecommunity.intel.com/articles/eng/3085.htm

      • Drew Card, Jason L. Mitchell. Non-Photorealistic Rendering with Pixel and Vertex Shaders in Engel Wolfgang (editor) ShaderX, Wordware Publishing, Inc., May 2002. http://ati.amd.com/developer/shaderx/


Week 8 (February 26th, 2008)

Lecture notes

  • Procedural textures, part 1

    • Wang tiles

    • Noise and noise based textures

  • Homework assignments:


Week 9 (March 4th, 2008)

Lecture notes

  • Procedural textures, part 2

  • Homework assignments:

    • Read:


Week 10 (March 11th, 2008)

Lecture notes

  • Texture rectangles

  • Post-processing effects:

    • Filters

    • Separable filters

    • Depth-of-field

  • Homework assignments:

    • Read:


Week 11 (March 18th, 2008)

  • Final exam. TBD. Do not be late today!