VGP352A
Spring 2009, 3 credits
Wednesday, 6:00PM - 9:45PM
Room #201
In this course students will be introduced to principles of 3D computer graphics using the OpenGL programming interface. Students will learn fundamental concepts of transformation, lighting, and texturing.
By the end of the course, students will be able to:
Understand and implement advanced per-pixel lighting algorithms.
Understand and implement procedural textures.
Understand and implement render-to-texture type 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 VGP351 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. 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. 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.
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 | 20 pts. |
Programming assignments | 90 pts. |
Subtotal | 110 (61%) |
Tests | |
In-class quizzes | 20 pts. |
Final Exam | 50 pts. |
Subtotal | 70 pts. (39%) |
Total | 180 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 the Disability Services Coordinator.
Amber Perrin
Disabilities Services Coordinator
The Art Institute of Portland
1122 NW Davis Street
Portland, OR 97209-2911
503-382-4836
<aperrin@aii.edu>
Lecture topics:
Course road-map
Per-fragment lighting recap
Phong shading
Surface-space
Bump mapping / Normal mapping
Basic usage
Normal map storage
Homework assignments:
Toksvig, Michael, Mipmapping Normal Maps. NVIDIA. April 2004. http://developer.nvidia.com/object/mipmapping_normal_maps.html
Programming assignment #1: Normal mapped surface of revolution. Due 4/22.
Lecture topics:
Render to texture
Environment map
Improving the reflection model
Using environment maps as better lights
Fresnel reflection
Homework assignments:
Wloka, Matthias, Fresnel Reflection. NVIDIA. July 2002. http://developer.nvidia.com/object/fresnel_wp.html
Jones, Rob, "OpenGL Framebuffer Object 101." . http://www.gamedev.net/reference/programming/features/fbo1/
Green, Simon, The OpenGL Framebuffer Object Extension. NVIDIA. 2004. http://developer.nvidia.com/object/gdc_2005_presentations.html
Cook, Robert L. and Torrance, Kenneth E., "A reflectance model for computer graphics." In SIGGRAPH '81: Proceedings of the 8th Annual Conference on Computer Graphics and Interactive Techniques , pages 307--316. ACM, 1981. http://graphics.pixar.com/library/ReflectanceModel/
Quiz #1. DO NOT BE LATE TODAY!
Lecture topics:
Bi-direction reflection distribution function
Common terminology and notation
Cook-Torrance model
Microfacet-based BRDFs
Normal distribution
Occlusion
Homework assignments:
Ashikmin, Michael and Premo\v{z}e, Simon and Shirley, Peter, "A microfacet-based BRDF generator." In SIGGRAPH '00: Proceedings of the 27th Annual Conference on Computer Graphics and Interactive Techniques , pages 65--74. ACM Press/Addison-Wesley Publishing Co., 2000. http://www.cs.utah.edu/vissim/papers/facets/
Programming assignment #2: Four BRDFs. Due 5/6.
Lecture topics:
Anisotropic BRDFs
What does anisotropy mean in this context?
Ward BRDF
Ashikhmin BRDF
Metals
How metals reflect light
Lafortune BRDF
Homework assignments:
Walter, Bruce, Notes on the Ward BRDF. Cornell Program of Computer Graphics. April 29, 2005. http://www.graphics.cornell.edu/pubs/2005/Wal05.html
Goldman,, Dan B., "Fake fur rendering." In SIGGRAPH '97: Proceedings of the 24th Annual Conference on Computer Graphics and Interactive Techniques , pages 127--134. ACM Press/Addison-Wesley Publishing Co., 1997. http://www.cs.washington.edu/homes/dgoldman/fakefur/
Quiz #2. DO NOT BE LATE TODAY!
Lecture topics:
Fur and hair
Goldman's ``Fake Fur Rendering''
Shells and fins
Banks BRDF
Homework assignments:
Gooch, Amy and Gooch, Bruce and Shirley, Peter and Cohen, Elaine, "A non-photorealistic lighting model for automatic technical illustration." In SIGGRAPH '98: Proceedings of the 25th annual conference on Computer graphics and interactive techniques , pages 447--452. ACM, 1998. http://www.cs.utah.edu/npr/papers.html#1998
Lake, Adam and Marshall, Carl and Harris, Mark and Blackstein, Marc, "Stylized rendering techniques for scalable real-time 3D animation." In NPAR '00: Proceedings of the 1st international symposium on Non-photorealistic animation and rendering , pages 13--20. ACM, 2000. http://software.intel.com/en-us/articles/intel-3d-software-technologies/
Card, Drew and Mitchel, Jason. "Non-Photorealistic Rendering with Pixel and Vertex Shaders" in Engel, Wolfgang F. (editor) ShaderX, Wordware Publishing, Inc., May 2002. http://developer.amd.com/documentation/reading/pages/ShaderX.aspx
Lecture topics:
Non-photorealistic rendering
Cel (toon) shading
Silhouette edge rendering
Technical illustration
Homework assignments:
Guennadi Riguer, Natalya Tatarchuk, and John Isidoro. "Real-Time Depth of Field Simulation" in Engel, Wolfgang F. (editor) ShaderX2, Wordware Publishing, Inc., October 2003. http://developer.amd.com/documentation/reading/pages/ShaderX.aspx
Quiz #3. DO NOT BE LATE TODAY!
Lecture topics:
Texture rectangles (briefly)
Post-processing effects
General image filters
Separable filters
Depth-of-field
Homework assignments:
van Dongen, Joost, "Interior Mapping - A new technique for rendering realistic buildings." In Computer Graphics International Conference (CGI). 2008. http://student-kmt.hku.nl/~joost1/Oogst3D/index.php?file=CODING/InteriorMapping/InteriorMapping.txt
Donnelly, Willaim. "Per-Pixel Displacement Mapping with Distance Functions" in Fernando, Randima (editor) GPU Gems 2, Addison Wesley, 2005. http://download.nvidia.com/developer/GPU_Gems_2/GPU_Gems2_ch08.pdf
Policarpo, F\'{a}bio and Oliveira, Manuel M. and Comba, Jo\, {a}o L. D., "Real-time relief mapping on arbitrary polygonal surfaces." In SIGGRAPH '05: ACM SIGGRAPH 2005 Papers , pages 935--935. ACM, 2005. http://www.inf.ufrgs.br/~oliveira/RTM.html
Lecture topics:
Interior mapping
Parallax textures
Displacement mapping
Homework assignments:
Fabio Policarpo, Francisco Fonseca, Deferred shading tutorial. Pontifical Catholic University of Rio de Janeiro. 2005. http://www710.univ-lyon1.fr/~jciehl/Public/educ/GAMA/2007/Deferred_Shading_Tutorial_SBGAMES2005.pdf
Benjamin Segovia and Jean-Claude Iehl and Bernard PĂ©roche, "Non-interleaved Deferred Shading of Interleaved Sample Patterns." In Eurographics/SIGGRAPH Workshop on Graphics Hardware '06 , pages 53--60. 2006. http://liris.cnrs.fr/publis/?id=2476
Quiz #4 - submit via e-mailDO NOT BE LATE TODAY!
Lecture topics:
Multiple render targets
Deferred shading