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.

Specific Objectives (Learning Outcomes)
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
This course is required for graduation in BS/IT, and contributes to the following program outcomes:

• 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
  1. Course Overview
    1. Direct3D Instantiation and Review
    2. D3DX Helper Libraries Intro
    3. Vectors, Matricies, and Camera Projection
  2. 3D Worlds and the Production Pipeline
    1. DirectX File Formats
    2. Defining Points and Faces
    3. Triangle Strips and Fans
    4. Rendering Models
    5. Triangle Heap Lists, Z-Sorts
    6. Double / Triple Buffering
    7. Linking Input to Camera Systems
  3. Optimization and Graphical Enhancement
    1. Object Culling and Scenegraph Manipulation
    2. Landscape Culling
    3. Oct-Tree Algorithm & Implementation
    4. Portal Engines
    5. Texture Wrapping
    6. Texture Chains and Flipping
    7. Vertex Blending
    8. Mip-Mappin
    9. 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.

bunny by Asa Tse turtle by Asa Tse flowers by Asa Tse psp guy by Asa Tse blow fish by Asa Tse shapes to cat by Asa Tse dinosaur by Asa Tse cute girl by Asa Tse bee by Asa Tse frog by Asa Tse dog by Asa Tse cat by Asa Tse canvas face by Asa Tse duck face by Asa Tse