CAP5937 – Realtime Graphics for Simulation and Games

Initial Experimental Course Offering

Fall 1999

J. Michael Moshell, Professor

UCF School of Computer Science

Moshell@cs.ucf.edu

This course is a graduate level exploration of topics relevant to the construction of realtime graphical simulations and video games. It includes an introduction to three scene-graph based graphical programming systems:

Contents. A small programming assignment (Lab 1) will serve to get students familiar with the Direct3D programming system. Students will also gain experience with the 3D Studio Max modeling system, and produce a model (Lab 2). Choosing one of the above programming environments, students will specify, design and construct a major project. They will make three oral presentations as the project evolves, and will write a technical paper in formal conference proceedings style. Not all of the projects necessarily involve writing an interactive game; but they all relate to TOOLS that can be used in such a project.

Projects will be carried out by either individuals, or two-person teams. You may form your own teams, or (if requested) I will seek a partnership for you. The following projects are available. Others can be suggested by students, but these projects already have resources in place and are actually needed by someone.

  1. 3D Camera and Stereolithography. Real 3D has donated a laser-based camera capable of capturing 3d imagery into Ray Dream Studio. This project will investigate the data formats produced by the camera and by Ray Dream Studio; the data formats used in stereolithography, and either locate or construct filters as needed to transform one format to another.

  2. Application: Imagine a 3D camera located in a theme park. We want to be able to prototype the concept of "3d souvenirs". We have an actual theme park which is interested in this project. Software is needed which quickly previews the trinket, allows customers to specify colors, etc. We may be able to run an in-park experiment with this system in the fall semester.
     

  3. Monkeys. N-space, one of Orlando’s most successful game production companies, has donated two "Monkey" input devices. These systems capture pose information on a small human figure and can control the positioning of a human avatar for keyframe animation. This project will investigate the data formats of the Monkey, its legacy software and how it might be used to drive models in the 3D Studio, Maya and Multigen systems.

  4. Application: We want to be able to capture, store and playback a library of avatar motions such as walking, jumping, or hitting a baseball.
     

  5. Urban Models. Can a city be grown from a seed? Clearly the popular program "SimCity 3000" provides an example. This project will investigate tools for constructing buildings on the basis of style models ("Give me a Frank Lloyd Wright-style three story administrative building of 24,000 square feet.")

  6. Application: Creation of generic cities for military training applications.
     

  7. MathEngine. If you’ve wanted to experiment with physical modeling, the MathEngine software (www.mathengine.com) gives us a giant head start. This software is free for use; one pays royalties if it is included in a product that earns money.

  8. Application: Design a relatively simple interactive game (like asteroids, Pong or 3D billiards) and implement it with Direct 3D and MathEngine.
     

  9. Hex Warfare. Many strategic war games use a 2d hexagonal grid as the battlefield. An upcoming project (for which we may win a funding contract) requires that we build a 2d "scene editor" that drives actual 3d terrain construction. You would grab a hilly-terrain hex from the toolbar, drag and drop it next to a series of river hexes. The 3d database would be automatically constructed, and then be viewable in three dimensions.
Application: Build a prototype of this system that just uses 3 terrain types. Flat, hilly and river.
Schedule of the Course


Week
Chapter
Topic
Activities
1
23-Aug
T1 Setup; Intro to C++ Discuss projects
25-Aug
T2,P1 3D Graphics Choose projects
2
30-Aug
T3 Intro to Direct3D
1-Sep
T4 Direct3D Code
3
6-Sep
---- Labor Day Holiday -------------------------
8-Sep
P2 3D Max Introduced
4
13-Sep
Project 1-Lit Review & Requirements
15-Sep
Project 2-Lit Review & Requirements Pres 1
5
20-Sep
Project 3-Lit Review & Requirements
22-Sep
Project 4-Lit Review & Requirements
6
27-Sep
T5,T6 Texture Mapping; Lights & Shadows
29-Sep
D3D Show-and-Tell Lab 1
7
4-Oct
x1 Simulation Cycle
6-Oct
x2 Direct I/O
8
11-Oct
Proj. 1,2-Design Review Midterm Exam:Out
13-Oct
Proj. 3,4-Design Review Pres 2
9
18-Oct
x3 Fahrenheit <Guest lectures
20-Oct
x4 Fahrenheit <Guest lectures
10
25-Oct
3DMax Show-and-Tell MTX back Lab 2
27-Oct
T7 Direct3D Frames (scene graphs)
11
1-Nov
x5 Java 3D <Guest lectures
3-Nov
x6 Java 3D <Guest lectures
12
8-Nov
P5 Mesh Modeling Fundamentals
10-Nov
P6 Mesh Modeling Tools
13
15-Nov
P7,P8 Patches and NURBS
17-Nov
T8 Meshes in D3d
14
22-Nov
Project 1-Final Presentation
24-Nov
Project 2-Final Presentation
15
29-Nov
Project 3-Final Presentation Pres 3
1-Dec
Project 4-Final Presentation
16
6-Dec
Final Exam

Textbooks

Referred to above as "T": Direct 3D Programming – Stan Trujillo – Coriolis Group Books, 1996.

Referred to above as "P": 3D Studio Max 3 Fundamentals – Michael Todd Peterson – New Riders, 1999

Details

Expected Background.  The prerequisite is CAP4021 or CAP5725 or a machine vision course.You should have at least one of the following skills (so you don’t have to learn EVERYTHING from scratch).

We will rely more on C++ than on Java, but if you know either one, the other is a pretty quick 'learn'. You may choose either environment to conduct your project, which will be the main activity in the course. I am often asked questions like "I don't know any of those things; can I still take the course?" Well, yes of course you can, but you will be working about twice as hard as someone who has the background. We cannot slow down the other people in the course to accomodate your needs.

Resources. You will need access to a computer equipped with the following software:

There are three computers in Computer Science 110 which have these resources. You will be placed on an access list and will be able to get a key from the Police Department for this room.

You probably already have Visual C++ on your own computer; if not, get it! Direct 3D cannot be used without C++. Direct 3D is freely downloadable from the Microsoft site, and also installs from the CD that comes with the Trujillo book.

You don't need your own copy of 3D Studio Max, which is good because it costs around $1000 for students. And I do not encourage you to pirate it.

Grading.
 
Grading: Presentation 1 10
Presentation 2 15
Presentation 3 20
Lab 1 5
Lab 2 5
Technical Paper 20
Final Exam 20
Class Participation 5
100

As you can see from the above, the two small labs and final exam play a relatively minor role in this project-oriented course, whereas the project’s presentations and technical paper add up to 65% of all the credit.

Moshell’s Office Hours for Fall 99

Mon & Wed – 5 to 6 PM (right before class)

Thurs – 2 to 3 PM

Others by appointment as needed
 
 

Conduct of the Course

I have provided a syllabus/schedule above, which we will follow as closely as possible. If necessary we will modify the schedule and provide new copies. The key factor in getting the 5% "class participation" grade, as well as the 20% "final exam" grade, is that you must read the assignments before the class. Rather than lecturing my way through a lot of material, I will provide a set of Queries (questions) which you should answer while reading the appropriate chapters.

Then in class, we can discuss the subject matter by talking about your answers to the Queries. This gets your mind actively engaged in the subject matter and puts class in its proper place – as a "fill in the blanks" session rather than a long and probably boring solo by MY brain, while your brains think of beaches and beverages…..

After the lecture I will post a revised set of Queries. These contain written out answers to the questions which are based on information not found in the text. Such answers typically consist of added material that came up during the discussion. Do not rely on my updated Queries as your only set of notes on the course! They're just to provide some fill-in information.

This is a graduate course, and so you should be thinking "can I get a thesis topic out of this material?" Even if you are on the non-thesis track, you should be thinking "can I get a good demo out of this material, to excite a boss so I get hired to do fascinating work for BIG BUCKS.