VGP352A
Winter 2012, 3 credits
Wednesday, 6:00PM - 9:45PM
Final exam: Wednesday, March 21st, 2012 at 5:30PM
Room #214
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. 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.
Required text:
Akenine-Moeller, Tomas and Haines, Eric and Hoffman, Mathaniel. Real-Time Rendering (3rd Ed.), AK Peters, Ltd., 2008. ISBN 978-1-56881-424-7.
There will be weekly assigned readings from this book. Equivalent readings from the second edition will also be listed. This textbook will also be used in VGP352 and VGP353. However, there will be readings in those courses that were added in the third edition.
The book also has a website that includes numerous additional references and sample code.
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 four two-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. |
Homework programming assignments | 80 pts. |
Subtotal | 100 (59%) |
Tests | |
In-class quizzes | 20 pts. |
Final Exam | 50 pts. |
Subtotal | 70 pts. (41%) |
Total | 170 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 one's own, is strictly prohibited at the Art Institute of Portland. Properly documented excerpts from other's 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>
Students who are absent from all scheduled classes over a 14-day period (2 weeks) are subject to automatic attendance suspension - from the Institute, not just from this course. This means the student is administratively withdrawn from all courses and cannot attend classes or continue in the current quarter unless he/she successfully appeals for reinstatement. Students who anticipate violating the attendance policy should contact their Academic Advisor or Academic Department Director immediately to discuss options such as withdrawing from the Institute or navigating the appeals process.
Regular attendance is required for successful completion of this course. A student who misses the equivalent of three (3) classes will not pass this class. Exceptions for extenuating circumstances will be considered at the discretion of the instructor.
Schedule Adjustment period: The schedule adjustment period runs through the first week of the quarter (ending at 5 pm on Monday of Week 2). To add or drop a course, the student must complete a schedule adjustment form, available from the Registrar's Office. The signature of the student's academic advisor is required to make any changes to the student's schedule.
Withdrawal (W/WF): The student who withdraws from a course or from the program during the first nine weeks of the quarter will be assigned a "W" code for each course. The "W" code is not used in computation of the student's grade point average; however, "W" credits are counted toward total credits attempted. The student who withdraws from a course or from the program after the ninth week of the quarter will be assigned a "WF" code for each course. The "WF" code is the equivalent of a grade of "F" and is used in computing the student's grade point average. Students wishing to withdraw from The Art Institute of Portland must file an official status change form with the Registrar.
One-on-one tutoring is available to you across all subjects through the
Tutoring Center at no extra cost. The goal of tutoring is to help you learn
and master skills so you can then confidently apply them on your own.
Tutoring is helpful for students at all levels. Our tutors are faculty or,
most often, fellow students who have excelled in the subject. You may find a
tutor by visiting aidepartments.com or dropping by the Tutoring Center in Room
328 inside the Education Department. You may also contact Kathleen
O'Brien <kpobrien@aii.edu>
.
The college provides confidential short-term counseling, crisis
intervention, and community referral services through
the Wellness
Corporation Student Assistance Program (SAP) for a wide range of
concerns, including relationship issues, family problems, loneliness,
depression, and alcohol or drug abuse. Services are FREE and available 24
hours a day, 7 days a week, at 1.800.326.6142. If you have any further
questions or are ever in need of immediate on-campus assistance, please stop
by the Student Services Office on the 2nd Floor or email Daynia Flynn
(Director) at <djflynn@aii.edu>
. Her phone number is 503 382
4836.
Email communication will be through eCompanion. Be sure to check your Profile in eCompanion to update your email address so that you will receive course communications in a timely manner.
Please proceed to the nearest exit when the strobe lights flash and an audible alarm occurs. AiPD's evacuation location is around the corner on 10th between Everett and Davis; do not stand in front of the Armory or Deschutes Brewery - someone will come to tell you when it is safe to come back in the building. ALWAYS ASSUME ANY EVACUATION IS REAL!
A quarter credit hour is an amount of work represented in intended learning outcomes and verified by evidence of student achievement that is an institutionally established equivalency that reasonably approximates not less than:
One hour of classroom or direct faculty instruction and a minimum of two hours of out-of-class student work each week for 10-12 weeks, or the equivalent amount of work over a different amount of time; or
At least an equivalent amount of work as required in paragraph (1) of this definition for other academic activities as established by the institution including laboratory work, internships, practica, studio work, and other academic work leading to the award of credit hours.
Lecture topics:
Course road-map
Reading technical papers
Curves
Homework assignments:
Real-Time Rendering, 3rd edition, chapter 13 sections 1 and 2 (pp. 575 -- 606).
Real-Time Rendering, 2rd edition, chapter 12 sections 1 and 2 (pp. 481 -- 512).
Programming assignment #1. Due 1/25.
Lecture topics:
Curved Surfaces
Per-fragment lighting recap
Phong shading
Surface-space
Bump mapping / Normal mapping
Basic usage
Normal map storage
Homework assignments:
Real-Time Rendering, 3rd edition, chapter 6 sections 3 through 7.4 (pp. 178 -- 193). You may skip sections 4, 5, and 6.
Real-Time Rendering, 2rd edition, chapter 5 section 7.5 (pp. 166 -- 177). Skip the subsections "Emboss Bump Mapping" and "Environment Map Bump Mapping". Some of the material from chapter 6.3 of the 3rd edition appears on pages 126 and 127, begining with the sentence "Three-dimensional texture can be synthesized", in the 2nd edition.
Toksvig, Michael, Mipmapping Normal Maps. NVIDIA. April 2004. http://developer.nvidia.com/object/mipmapping_normal_maps.html
Read to prepare for next week:
Wloka, Matthias, Fresnel Reflection. NVIDIA. July 2002. http://developer.nvidia.com/object/fresnel_wp.html
Lecture topics:
Improving the reflection model
Fresnel reflection
Homework assignments:
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
Read to prepare for next week:
Real-Time Rendering, 3rd edition, chapter 7 section 5 (pp. 223 -- 251). The first two sections, 7.5.1 and 7.5.2, are the primary interest for next week. Section 7.5.3 covers Fresnel reflection. At the very least, read these three sections.
Real-Time Rendering, 2nd edition, chapter 6 section 3 (pp. 194 -- 202). The 2nd edition has must less coverage of BRDFs. I strongly recommend reading the material from the 3rd edition.
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:
Read to prepare for next week:
Ward, Gregory J., "Measuring and modeling anisotropic reflection." In Proceedings of the 19th annual conference on Computer graphics and interactive techniques , pages 265--272. ACM, 1992. http://www.cs.virginia.edu/~gfx/courses/2006/DataDriven/bib/appearance/ward92.pdf
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
Read to prepare for next week:
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.danbgoldman.com/misc/fakefur/fakefur.pdf
Quiz #2. DO NOT BE LATE TODAY!
Lecture topics:
Fur and hair
Goldman's ``Fake Fur Rendering''
Shells and fins
Banks BRDF
Homework assignments:
Read to prepare for next week:
Bruce Gooch and Peter-Pike J. Sloan and Amy Gooch and Peter S. Shirley and Rich Riesenfeld, "Interactive Technical Illustration." In 1999 ACM Symposium on Interactive 3D Graphics , pages 31--38. 1999. http://www.thegooch.org/Publications.php
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://www.markmark.net/npar/npar2000_lake_et_al.pdf
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://tog.acm.org/resources/shaderx/
Programming assignment #2. Improved lighting with BRDFs. Due 3/7. You will need texture_load.cpp and texture_load.h.
Lecture topics:
Implementing BRDFs in real-time rendering engines
Homework assignments:
Read to prepare for next week:
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:
Non-photorealistic rendering
Cel (toon) shading
Silhouette edge rendering
Technical illustration
Homework assignments:
Read to prepare for next week:
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ábio and Oliveira, Manuel M. and Comba, João L. D., "Real-time relief mapping on arbitrary polygonal surfaces." In Proceedings of the 2005 symposium on Interactive 3D graphics and games , pages 155--162. ACM, 2005. http://www.inf.ufrgs.br/~oliveira/RTM.html
Lecture topics:
Texture rectangles (briefly)
Post-processing
Full-screen post-processing overview
General image filters
Edge detection filters
Separable filters
Special effects:
Water ripple
Depth-of-field
Homework assignments:
Read to prepare for next week:
Daniel Rákos Efficient Gaussian blur with linear sampling Website September 2010. http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
Programming assignment #3: More BRDFs or post-processing. Due at the final.
Quiz #4. DO NOT BE LATE TODAY!
Lecture topics:
Interior mapping
Parallax textures
Displacement mapping