Video Game Programming
Lab 3 : Rotating Cube

 Abstract: As powerful as it is, DirectX only has the ability to draw one type of primitive -> a triangle. This is not much of a limitation, since any polygonal structure can be represented as a set of triangles. In lab 1, you drew a square using two triangles. In this lab, you will output a cube to screen. A cube has six faces, and therefore can be represented by twelve triangles. Doing this the brute force way, you would need 12 x 3 = 48 vertices just to draw a cube. However, there is a more efficient way to draw structures that share vertices. Fill in the vertex buffer as you normally would -> with 8 vertices for the cube. Now, youll need to make use of the index buffer. Using the index buffer you can assign any set of vertices to a triangle face. So the first face would be vertices 1,2 and 3; the second would be 2,3,and 4, and so on.....

 Topics Covered : Vertices and Vertex Buffers Transformations using DirectX World, View and Projection Transforms The Vertex Buffer The index buffer

 Assignment: Your assignment is to write a program that will open up in fullscreen mode. It should quit when the user closes the window. The program should display a cube centered at the origin. The cube should rotate slowly around at least two axes.

 Prequisites: Completion of lab 2 Knowledge of the C++ language

 Readings: Chapters 1-9 "Real Time Rendering in DirectX"

Grading:
 Explanation: Cube appears Cube rotates slowly Vertex buffer appropriately filled Index buffer appropriately filled Percentage: 30% 20% 25% 25%

 Example: Lab 3 This lab is being distributed as a zip file. You must unzip all files to the same directory.

 Requirements: This lab requires DirectX 9.0a End-User Runtime

 Questions: Address questions regarding this lab to Prasan Samtani at psamtani@usc.edu