Computer Graphics Programming III


Table of Contents

Course Description
Prerequisite
Texts
Required Materials
Grading
Grading Scale
Late Work
Attendance and Participation
AiPD Policies
Lab Policies
Plagiarism
ADA Statement
Course Calendar
Week 1 ( January 12th, 2011 )
Week 2 ( Saturday, January 22nd, 2011 @ 1:00PM )
Week 3 ( January 26th, 2011 )
Week 4 ( February 2nd )
Week 5 ( February 9th, 2011 )
Week 6 ( February 16th, 2011 )
Week 7 ( February 23rd, 2011 )
Week 8 ( March 2nd, 2011 )
Week 9 ( March 9th, 2011 )
Week 10 ( March 16th, 2011 )
Week 11 ( March 23nd, 2011 )

Course Description

VGP353A

Winter 2011, 3 credits

Wednesday, 6:00PM - 9:45PM

Room #202

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:

  • Understand terminology and issues related to shadows in real-time graphics.
  • Understand and implement shadow map based shadow algorithms.
  • Understand shadow volume based shadow algorithms.
  • Understand and implement ambient occlusion algorithms.
  • Read, understand, and make use of information in academic papers.

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. A strong background in C or C++ programming is required. Familiarity with object oriented programming principles will be very helpful but is not strictly required. Previous knowledge of matrix math and trigonometry is required and will be extremely important. Particularly tenacious students may be able to learn the required math during the term, but it will be a lot of extra work.

Texts

This is no required text for this course. There will be suggested readings on many topics covered in this course from Real-Time Rendering. Either the 2nd edition or the 3rd edition of this book are acceptable. At least one copy of the 2nd edition is available in the school library.

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

Real-Time Rendering has a website that has a lot of useful, relevant information.

In addition, following OpenGL reference books may prove to be very useful.

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.

OpenGL Superbible has a website, that includes source code and pre-built binaries. Earlier editions of this book are not suitable for this course because they do not cover the OpenGL shading language.

OpenGL Shading Language also has a website, that includes example shaders and some references. Earlier editions of this book should also be sufficient for this course.

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 3 multi-week programming assignments. 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 presentation10 pts.
Programming assignments60 pts.
Subtotal70 (50%)
Tests 
In-class quizzes20 pts.
Final Exam50 pts.
Subtotal70 pts. (50%)
Total140 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.

ADA Statement

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 Student Support and Disabilities Coordinator, Daynia Flynn at ext. 4836

Course Calendar

Week 1 ( January 12th, 2011 )

Lecture notes

Lecture topics:

  • Course road-map

  • Introduce shadows

    • Importance of shadows

    • Planar shadows

    • Soft shadows

  • Shadow textures

  • Projective texturing review

Homework assignments:

Week 2 ( Saturday, January 22nd, 2011 @ 1:00PM )

Lecture notes

Lecture topics:

  • Shadow maps, part 1

    • Implementation over-view

    • Comparison to shadow textures

    • Problems / shortcomings

    • Percentage closer filtering

Homework assignments:

Week 3 ( January 26th, 2011 )

Lecture notes

Quiz #1.DO NOT BE LATE TODAY!

Lecture topics:

  • Shadow maps, part 2

    • Percentage closer soft shadows (PCSS)

    • Reducing shadow map aliasing

      • Perspective shadow maps (PSMs)

      • Parallel split shadow maps (PSSMs)

Homework assignments:

  • Read:

    Brabec, Stefan and Annen, Thomas and Seidel, Hans-Peter, "Shadow Mapping for Hemispherical and Omnidirectional Light Sources." In Advances in Modelling, Animation and Rendering (Proceedings Computer Graphics International 2002) , pages 397-408. Springer, 2002. http://www.thomasannen.com/publications.html

    Aaron E. Lefohn AND Shubhabrata Sengupta AND John D. Owens, "Resolution Matched Shadow Maps." ACM Transactions on Graphics , vol. 26 , no. 4 , pages 20:1--20:17. ACM, 2007. http://www.idav.ucdavis.edu/publications/print_pub?pub_id=919

Week 4 ( February 2nd )

Lecture notes

Lecture topics:

  • Shadow maps, part 3

    • Resolution matched shadow maps

    • Omni-directional lights

    • Texture atlases for shadow maps

Homework assignments:

Week 5 ( February 9th, 2011 )

Lecture notes

Quiz #2. DO NOT BE LATE TODAY!

Lecture topics:

  • Stencils buffer refresher

  • Introduction to shadow volumes

    • Z-pass

    • Z-fail

    • Generating shadow volume geometry

Homework assignments:

Week 6 ( February 16th, 2011 )

Lecture notes

Lecture topics:

  • Fixing Z-pass and Z-fail with ZP+

  • Soft shadows using shadow volumes

  • Hardware extensions that optimize shadow volumes:

    • Depth clamping

    • Depth bounds testing

Homework assignments:

Week 7 ( February 23rd, 2011 )

Lecture notes

Quiz #3. DO NOT BE LATE TODAY!

Lecture topics:

  • Ambient occlusion

    • Generating AO factors using ray-tracing

    • Approximation in real-time

    • Screen-space ambient occlusion (SSAO) introduction

Homework assignments:

Week 8 ( March 2nd, 2011 )

Lecture notes

Lecture topics:

  • High dynamic range (HDR) rendering

Homework assignments:

  • Read to prepare for week:

    Tobias Ritschel and Thorsten Grosch and Hans-Peter Seidel, "{Approximating Dynamic Global Illumination in Screen Space}." In Proceedings ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games. 2009. http://www.mpi-inf.mpg.de/~ritschel/SSDO/

Week 9 ( March 9th, 2011 )

Lecture notes

Lecture topics:

  • Depth peeling

  • Bilateral filtering

  • Using these to fix problems with SSAO:

    • Horizon split AO

    • Multi-layer dual-resolution SSAO

Homework assignments:

Week 10 ( March 16th, 2011 )

Quiz #4 (AO and SSAO only)DO NOT BE LATE TODAY!

Lecture topics:

  • Improving depth peeling

  • Mesh Colors

Homework assignments:

  • Prepare for final.

Week 11 ( March 23nd, 2011 )

FINAL EXAM - TBD.DO NOT BE LATE TODAY!