Instructor: Dr. Marc Olano (olano umbc.edu)
ITE 354 (455-3094); Office Hours: Tue 3-5
Prerequisite: CMSC 435/634
(Yes, we will make heavy use of this prerequisite)
Text: 3D Game Engine Design, David H. Eberly, Morgan Kaufmann 2001. Required.
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 using and manipulating scene graphs, design of interactive applications, collision detection, geometric level of detail, potentially visible set computation, and hardware procedural shading. Students will learn several common algorithms in each topic area in sufficient depth for implementation.
Note that (as the text book title says), this is a course about the workings of 3D Game Engines, as used by many games. It is not really 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.
Grades: Grades will be based on class participation (10%), programming assignments (30%), and a group final project (60%).
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% | Tools | Feb 5 |
Assn 2 | 10% | Interactive Application | Feb 23 |
Assn 3 | 10% | Scene Graph | Mar 15 |
Students taking the course for graduate credit (i.e. CMSC 691E) will be expected to do parts on each assignment.
Assignments are to be submitted electronically by 11:59 PM of the day listed. Assignments submitted up to one week late will be penalized 20 percent of the possible score. Assignments more than one week late will receive a score of 0. Each student gets one free "late" (i.e. up to one week late without penalty, but still zero if later than one week) to apply to any of the assignments. Your free late must be claimed in writing on or before the due date.
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.
All assignments and exams in the course are expected to be your INDIVIDUAL work. You may discuss assignments with anyone. Any help you receive, however, must be documented. At the beginning of each program you must include a comment indicating the sources you used while working on it (excluding course staff and text) and the type of help you received from each. If you received no help, say so. Failure to include this comment at the top of your program will result in your program being returned ungraded.
Date | Topic | Due |
---|---|---|
Jan 28 | Overview; Matrices, Quaternions & Euler Angles | |
Feb 2/4 | Statistical and minimization-based bounding object fitting Anatomy of an Interactive Application: Event management, input, networking, display refresh |
Assn 1 |
Feb 9/11 | Middleware; Graphics APIs; Hardware | Groups Chosen |
Feb 16/18 | Scene graphs: creating, manipulating, direct rendering, creating a display list | |
Feb 23/25 | Picking: Ray/Object intersections | Assn 2, Project Chosen |
Mar 1/3 | Collision Detection: Object/Object intersections | |
Mar 8/10 | Curves & Surfaces: Curved paths, smooth blending, curved surface modeling | |
Mar 15/17 | Character Animation: Key framing, inverse kinematics, skinning | Assn 3 |
Mar 22/24 | SPRING BREAK | |
Mar 29/31 | Surface Appearance & Effects: Shading, particle systems, object morphing | |
Apr 5/7 | Terrain: terrain simplification algorithms, run-time generation, paging | Project Status |
Apr 12/14 | Spatial Sorting: quadtrees, octrees, portals, binary space partitioning trees | |
Apr 19/21 | Advanced Visibility: Potentially visible sets, occlusion culling, impostors. | |
Apr 25/28 | Level of Detail: Billboards, geometric simplification | |
May 3/5 | Project Presentations | Project Report |
May 10 | Project Presentations |