VGP353A
Spring 2012, 3 credits
Wednesday, 6:00PM - 9:45PM
Final exam: Wednesday, June 13th, 2012 at 5:30PM
Room #214
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.
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.
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 and Hoffman, Mathaniel. Real-Time Rendering (3rd Ed.), AK Peters, Ltd., 2008. ISBN 978-1-56881-424-7.
Real-Time Rendering has a website that has a lot of useful, relevant information.
In addition, the 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.
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.
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 presentation | 10 pts. |
Programming assignments | 60 pts. |
Subtotal | 70 (50%) |
Tests | |
In-class quizzes | 20 pts. |
Final Exam | 50 pts. |
Subtotal | 70 pts. (50%) |
Total | 140 pts. (100%) |
Some assignments may carry extra-credit opportunities, but they will be infrequent.
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.
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.
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.
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.
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
<djflynn@aii.edu>
Lecture topics:
Course road-map
Introduce shadows
Importance of shadows
Planar shadows
Soft shadows
Shadow textures
Projective texturing review
Homework assignments:
Programming assignment #1: Shadow textures. Part 1 is due 4/11. Part 2 is due 4/18.
Eric Haines, "Soft Planar Shadows Using Plateaus." journal of graphics tools , vol. 6 , no. 1 , pages 19-27. 2001. http://erich.realtimerendering.com/plateaus.pdf
Everitt, Cass; Rege, Ashu; and Cebnoyan, Cem, Hardware Shadow Mapping. NVIDIA. Decemeber 2001. http://developer.nvidia.com/object/hwshadowmap_paper.html
Lecture topics:
Shadow maps, part 1
Implementation over-view
Comparison to shadow textures
Problems / shortcomings
Homework assignments:
R. Fernando, "Percentage-Closer Soft Shadows." In Proceedings of SIGGRAPH 2005. 2005. http://developer.nvidia.com/object/siggraph_2005_presentations.html
W. Reeves, D. Salesin, and R. Cook, "Rendering Antialiased Shadows with Depth Maps." In Proceedings of SIGGRAPH '87. 1987. http://graphics.pixar.com/library/ShadowMaps/paper.pdf
Quiz #1.DO NOT BE LATE TODAY!
Lecture topics:
Shadow maps, part 2
Percentage closer filtering
Percentage closer soft shadows (PCSS)
Homework assignments:
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
Lecture topics:
Stencils buffer refresher
Introduction to shadow volumes
Z-pass
Z-fail
Generating shadow volume geometry
Homework assignments:
Annen, Thomas and Dong, Zhao and Mertens, Tom and Bekaert, Philippe and Seidel, Hans-Peter and Kautz, Jan, "Real-time, all-frequency shadows in dynamic scenes." In SIGGRAPH '08: ACM SIGGRAPH 2008 papers , pages 1--8. ACM, 2008. http://www.thomasannen.com/publications.html
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.thomasannen.com/publications.html
Everitt, Cass and Kilgard, Mark, Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated Rendering. NVIDIA. May 2001. http://developer.nvidia.com/object/robust_shadow_volumes.html
Quiz #2. DO NOT BE LATE TODAY!
Lecture topics:
Shadow maps, part 3
Reducing shadow map aliasing
Perspective shadow maps (PSMs)
Parallel split shadow maps (PSSMs)
Resolution matched shadow maps
Homework assignments:
Brennan, Chris. "Shadow Volume Extrusion Using a Vertex Shader" in Engel, Wolfgang F. (editor) ShaderX, Wordware Publishing, Inc., May 2002. http://developer.amd.com/documentation/reading/pages/ShaderX.aspx
Hornus, Samuel; Hoberock, Jared; Lefebvre, Sylvain; Hart, John C., "ZP+: Correct Z-Pass Stencil Shadows." In Proceedings of ACM Symposium on Interactive 3D Graphics and Games. ACM Press, April 2005. http://artis.imag.fr/Publications/2005/HHLH05/
Lecture topics:
Fixing Z-pass and Z-fail with ZP+ and ++ZP
Soft shadows using shadow volumes
Hardware extensions that optimize shadow volumes:
Depth clamping
Depth bounds testing
Homework assignments:
Brandon Lloyd and Jeremy Wend and Naga K. Govindaraju and Dinesh Manocha, "CC Shadow Volumes." In Proceedings of the 15th Eurographics Workshop on Rendering Techniques, Norköping, Sweden, June 21-23, 2004 , pages 197-206. Eurographics Association, 2004. http://gamma.cs.unc.edu/CCSV/ccsvEGSR04.pdf
Timo Aila and Tomas Akenine-Moeller, "A Hierarchical Shadow Volume Algorithm." In Proceedings of Graphics Hardware 2004 , pages 15-23. Eurographics Association, August 2004. http://graphics.cs.lth.se/research/shadows/http://www.graphicshardware.org/previous/www_2004/Presentations/TimoAila.ppthttp://www.tml.tkk.fi/~timo/
Iones, Andrey and Krupkin, Anton and Sbert, Mateu and Zhukov, Sergey, "Fast, Realistic Lighting for Video Games." IEEE Computer Graphics and Applications , vol. 23 , pages 54--64. IEEE Computer Society Press, 2003. http://ima.udg.edu/iiia/GGG/UsersDocs/mateu/obscurances.pdf
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:
Pharr, Matt and Green, Simon. "Ambient Occlusion" in Fernando, Randima (editor) GPU Gems, Addison Wesley, 2004. http://http.developer.nvidia.com/GPUGems/gpugems_ch17.html
Bunnel, Michael. "Dynamic Ambient Occlusion and Indirect Lighting" in Fernando, Randima (editor) GPU Gems 2, Addison Wesley, 2005. http://download.nvidia.com/developer/GPU_Gems_2/GPU_Gems2_ch14.pdf
Lecture topics:
Bilateral filtering
Fixing problems with SSAO:
Horizon split AO
Multi-layer dual-resolution SSAO
Homework assignments:
Programming assignment #3: SSAO. Due at the final 6/13.
Quiz #4.DO NOT BE LATE TODAY!
Lecture topics:
High dynamic range (HDR) rendering
Homework assignments:
Shishkovtsov, Oles. "Deferred Shading in S.T.A.L.K.E.R." in Fernando, Randima (editor) GPU Gems 2, Addison Wesley, 2005. http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter09.html