PROJECT #1

Basic Interactive Rendering

The purpose of this project is to introduce the basic practice of OpenGL programming. This includes accessing and organizing geometry data, rendering it with illumination, and allowing user interaction with it. You must:

0. Find your footing

If you haven't already figured out how to compile and run C or C++ code using OpenGL and GLUT on your favorite platform, then this is your first step.

1. Load a data file

3D models are provided in the simplest possible ASCII mesh file format.

2. Render

Use OpenGL vertex buffer objects to upload the geometry to the GPU and render it. Use the OpenGL fixed function pipeline to color and illuminate the geometry. Use the depth test to ensure that it appears correctly.

3. View

Allow the user to use the mouse and/or keyboard to tumble, pan, zoom, spin, or otherwise interactively view the object from any angle.

4. Be Flexible

Allow the input file to be selected in some fashion. This is most easily accomplished using the command line arguments to your C program's main function. There's no need to go crazy with the GUI. Under Windows, dragging-and-dropping a file onto your executable will cause the dropped file name to appear in argv, just as if you had typed it in a terminal.