Instructor: Dr. Marc Olano (olano@umbc.edu)
ITE 354
(455-3094); Office Hours: W 3:00-5:00
Recommended resources:
Akenine-Möller, Haines and Hoffmann, Real-Time Rendering, AK Peters, ISBN 978-1-56881-424-7.
Developer blogs: www.altdevblogaday.com, www.realtimerendering.com, blog list
General game development concepts: Bob Nystrom, Game Programming Patterns, online text: gameprogrammingpatterns.com
This course is an introduction to some of the computer graphics methods commonly used in 3D computer games. Computer graphics encompasses a wide variety of algorithms and techniques, many more than can be covered in just one or two courses. This course is similar in style and scope to CMSC 635/Advanced Computer Graphics, but uses computer games as a focus and motivation to explore a different set of graphics algorithms. Topics include graphics data structures, design of interactive applications, and real-time graphics algorithms. Students will learn several common algorithms in each topic area in sufficient depth for implementation.
Note that (as the course title says), this is a course about computer graphics, specifically 3D graphics, as used by many games. It is not a class about playing games, nor about all of the other equally important aspects of creating a game (AI, art, game play, interface design, ...). I expect that the class will be a lot of work, but hope that you will find it rewarding.
On successful completion of this course, students will
Grades will be based on class participation (10%), one in-class presentation (10%), programming assignments (30%), and a final project (50%).
Programming assignments require the use of the C/C++ programming language. These assignments may be time-consuming. START EARLY! A tentative list is given below:
Assignment | Weight | Description | Due Date |
---|---|---|---|
Assn 1 | 10% | Physically Based Rendering | Feb 21 |
Assn 2 | 10% | Proxy Geometry | Mar 7 |
Assn 3 | 10% | Multi-pass | Mar 28 |
Students taking the course for graduate credit (CMSC 691) will be expected to do extra parts on each assignment and more complex work in the final project.
Use CVS for all classwork and submit your work by the appropriate deadline by checking it into the class CVS repository. All assignments should be submitted by 11:59pm on the due date for full credit. Any assignment can be submitted up to two days after the deadline for a 15 point penalty. No work will be acceped more than 48 hours after it is due.By enrolling in this course, each student assumes the responsibilities of an active participant in UMBC's scholarly community in which everyone's academic work and behavior are held to the highest standards of honesty. Cheating, fabrication, plagiarism, and helping others to commit these acts are all forms of academic dishonesty, and they are wrong.
For the individual assignments, you are allowed to discuss concepts, assignments and algorithms, but the actual programming is expected to be your own work. Submit a readme with each assignment describing the assignment and also any and all help you received.
The group project can use external software and libraries with prior instructor approval. Combining this project with projects in other classes is also OK, as long as you get prior approval from both class instructors. Outside of approved exceptions, everything else you submit should be your own. If you are required to have a written submission, all text, figures and images should be your own.
Date | Topic | Assn | Project | Presentations |
---|---|---|---|---|
Jan 28/30 | Overview, Presenting | |||
Feb 4/6 | Graphics Application Walkthrough, Shading | Tu Olano Th: Blenkhorn |
||
Feb 11/13 | Physically Based Rendering (Normal distributions, Energy conservation) |
Tu: Maselko Th: (snow) |
||
Feb 18/20 | Precomputation, Fitting & Approximation (Monte-Carlo, Spherical Harmonics, Schlick) |
Assn1 (Friday) |
Tu: Th: Nichols |
|
Feb 25/27 | Proxy Geometry (Occlusion culling, Volumes, Relief mapping) |
Tu: Vorontsov Th: Zhang |
||
Mar 4/6 | Rendering Passes (Reflection, Shadows, SSAO) |
Assn2 (Friday) |
Tu: Th: Metevier |
|
Mar 11/13 | Rendering Passes (Deferred Shading, Skin) |
Tu: Boyer Th: |
||
Mar 18/20 | SPRING BREAK | |||
Mar 25/27 | Graphics Hardware (Coherence, Memory systems) |
Assn3 (Friday) |
Tu: Taylor Th: Makmak |
|
Apr 1/3 | Shadows (Shadow volumes, Cascaded shadow maps) |
Tu: Th: |
||
Apr 8/10 | Filtering (Fourier, Antialiasing, Prefiltering) |
Topic | Tu: Adams Th: Garbarino |
|
Apr 15/17 | Quaternions (Rotations, Slerp) |
Tu: Raabe Th: Hutchinson |
||
Apr 22/24 | Animation (Splines, Blending) |
Update | Tu: Plante Th: Harting |
|
Apr 29/May 1 | Skinning (Linear blend skinning, Dual quaternions) |
Tu: Th: |
||
May 6/8 | Final Presentations | Final | ||
May 13 | Final Presentations |