Computer Graphics Programming III


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


Course Description

VGP353A

Spring 2008, 3 credits

Mondays, 6:00PM - 9:45PM

Room #201

In this course students will learn and implement real-time shadow algorithms using OpenGL and OpenGL Shading Language (GLSL). This includes shadow maps, shadow volumes, and several variations and optimizations of each.

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 VGP352 or consent 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:

Akenine-Moeller, Tomas and Haines, Eric. 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:

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

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

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 (April 1nd)

Lecture notes.


Week 2 (April 8th)

Lecture notes.

  • Shadow textures

  • Projective texturing

  • Homework assignments:

    • Read:

      • Real-Time Rendering, section 6.12.4. We'll come back to 6.12.3 later.

    • Programming assignment #2: Shadow textures. Due 4/15.


Week 3 (April 15th)

Lecture notes.


Week 4 (April 22nd)

Lecture notes.

  • Advanced shadow map techniques

    • Percentage closer filtering

    • Depth range optimizations

  • Homework assignments:


Week 5 (April 29th)

Lecture notes.

  • Wrap up shadow map techniques

  • Homework assignments:

    • Read:

      • Stefan Brabec and Thomas Annen and Hans-Peter Seidel, "Practical Shadow Mapping." journal of graphics tools , vol. 7 , no. 4 , pages 9-18. 2002. http://www.mpi-sb.mpg.de/~tannen/


Week 6 (May 6th)

Lecture notes.

  • Stencil buffer refresher

  • Introduction to shadow volumes

    • Z-pass

    • Z-fail

  • Homework assignments:

    • Read:

      • Real-Time Rendering, section 6.12.3

      • Brennan, Chris. "Shadow Volume Extrusion Using a Vertex Shader" in Engel, Wolfgang F. (editor) ShaderX, Wordware Publishing, Inc., May 2002. http://ati.amd.com/developer/shaderx/


Week 7 (May 13th)

Lecture notes.

  • Generating shadow volume geometry

  • Homework assignments:


Week 8 (May 20st)


Week 9 (May 27th)

  • Soft shadow techniques with shadow volumes

  • Homework assignments:

    • Programming assignment #5: Shadow volumes, part 1 Due 6/3


Week 10 (June 3rd)

  • TBD.

  • Homework assignments:

    • Prepare for final.


Week 11 (June 10th)

  • Final exam. 5:30PM - 7:30PM. Do not be late today!