4002-502-03
Foundations of 3D Graphics Programming
Spring 20083 Course Syllabus
The information presented in this syllabus is subject to expansion, change, or adjustment during the quarter.
Instructor:
Name: Christopher A. Egert
Office: Bldg. 70, Room 2515
475 - 4873
cae (*at*) it.rit.edu (or through FirstClass)
Office Hours:
T.B.A.
and by appointment
Course Text and Materials
Required Books
• Text: Introduction to 3D Game Programming with DirectX 9.0C a Shader Approach, Frank D. Luna, Wordware Press, 2006, ISBN: 1598220160
• Text: Core Techniques and Algorithms in Game Programming, Daniel Sanchez-Crespo Dalmau, New Riders, 2003, ISBN: 0131020099
Additional Materials
• Additional readings will be provided as handouts or web URLS.
Important RIT Deadlines
Last day of add/drop is Monday, March 16, 2009.
Last day to withdraw with a grade of "W" is Friday, May 1, 2009.
The deadline for withdrawing from a course with a W grade is the end of the 8th week
of the quarter. The withdraw process must be completed online before the deadline.
NOTE: IT department policy states that a student has one
quarter to challenge any grade. After that, grades cannot be challenged
Course Description
Use of a graphics API to access hardware accelerated graphics. Discussion of the API scene graph, 3D optimizations, and integration between the 2D graphics mode and a 3D immediate mode implementation. This course builds upon students' previous work and extends it in the construction of a fully functional 3D Engine, with library construction for game development. Programming will be required.
Prerequisite Courses
4002-501 Foundations of 2D Graphics Programming
Course Goals and Objectives
General Course Goals
The primary goal of this course is to provide students with the foundations necessary to
design and implement a hardware accelerated 3D game engine. Students will not only acquire
knowledge about the theories and current industry practices related to 3D game design and
implementation, but will also apply concepts to a quarter-long team-based course project.
By the end of the course, students should be able to:
• describe the model upon which modern graphical APIs are based, and communicate effectively the layer in the graphics pipeline at which various operations occur. Assessed through project documentation submitted with code.
• implement a simple 3D game engine that displays both an indoor (portal or BSP parsed)
area and an outdoor (height-field landscape) area, that allows player-controlled camera movement,
basic collision detection, and basic draw-pass optimizations. Assessed through final project.
• work effectively in programming teams on game-oriented projects. Assessed through final project and bi-weekly checkpoints, and individual peer assessment forms.
Prerequisite Skills
• General Language Programming
• Basic Computer Graphics /or/ Multimedia
• 2D Blitting and Sprite Operations
• Multimedia Application Programming /or/ Windows Programming
• Concepts in Application Timing
Role of this course in the Information Technology curriculum
• Students can construct and design hardware-accelerated graphical systems.
• Students can build effective front-ends to networked games and entertainment applications,
with a focus on end-user application development.
• Students have experience working on large projects in programming teams.
• Students will develop the ability to locate and use information about language and tool
features from a variety of sources.
Course Organization
Project
As this is a projects course, you will have a single assignment with milestones due over the quarter.
I intend to have four milestones, the first due in Week 3, the second due in Week 5, the third due in
Week 8, and the final presentation due during exam week (Week 11). Due dates for milestones may change,
so it is important to pay attention to due date announcements at the beginning of class.
Team Component
The project for this course is a team-based experience. As a member of a team, you will be expected
to contribute to the overall success of the project. As part of each checkpoint, a peer evaluation
grade will be included as part of the assessment. The grade will cover such areas as effort, cooperation,
reliability, and communication. Team assessment is an important part of the grade and can both positively
and negatively change your overall grade.
Participation
Portions of your grade in this course are based upon classroom participation. You are expected t show
up each week and contribute to the discussion. Participation grade is also based upon the quality of
your responses (not just showing up to class!).
Website
The course website is located on the RIT myCourses system. You will only be allowed access to the section
of the course in which you are registered. You will use myCourses to retrieve class notes, assignments, and
supplemental materials. In addition, myCourses will be used as a discussion forum as well as a dropbox.
Course Topics
-
Course Overview
- Direct3D Instantiation and Review
- D3DX Helper Libraries Intro
- Vectors, Matricies, and Camera Projection
-
3D Worlds and the Production Pipeline
- DirectX File Formats
- Defining Points and Faces
- Triangle Strips and Fans
- Rendering Models
- Triangle Heap Lists, Z-Sorts
- Double / Triple Buffering
- Linking Input to Camera Systems
-
Optimization and Graphical Enhancement
- Object Culling and Scenegraph Manipulation
- Landscape Culling
- Oct-Tree Algorithm & Implementation
- Portal Engines
- Texture Wrapping
- Texture Chains and Flipping
- Vertex Blending
- Mip-Mappin
- Decals & Labels
Grading
The grading scale used along with the grading criteria is as follows:
Component | Weight |
---|---|
Checkpoint 1 | 10 |
Checkpoint 2 | 10 |
Checkpoint 3 | 10 |
Checkpoint 4 | 70 |
Range | Grade |
---|---|
>= 90.0% | A |
>= 80.0% & < 90% | B |
>= 70.0 % & < 80.0% | C |
>= 65.0 % & < 70.0% | D |
< 65.0% | F |
Course Schedule
Class 1 | Class 2 | |
---|---|---|
Week 1 | Vectors & Matrices | Matrices |
Week 2 | Rendering Pipeline | Lighting & Texturing |
Week 3 | Blending & Stenciling | Geometry Shaders |
Week 4 | Cube & Normal Maps | Meshes & Picking |
Week 5 | Terrain | Terrain texturing |
Week 6 | Particle Systems & HLSL | Scene Graphs |
Week 7 | Collision Detection | Physics |
Week 8 | Development | Development |
Week 9 | Development | Development |
Week 10 | Development | Development |
Week 11 | Demo |
Cheating
Academic dishonesty is misrepresenting someone else's work as your own. Academic dishonesty is a serious matter, and can result in an automatic F for the course. Please review the IT department's policy on cheating, located online at http://www.it.rit.edu/policies/dishonesty.html. If, during the quarter, you ever have any questions about what does or does not constitute academic dishonesty, please come and talk to me.
Finally...
Any or all of the previous information is subject to change or adjustment during the quarter.