Project 3 (Midterm) Description


Building on project 1 and project 2. The following items need to be added to obtain a score of 16/20 (Note this is the midterm project and is worth "2" regular projects):

  1. All standard project 1 and 2 requirements, corrected if needed. This is worth 3/20 points.
  2. The main window should be resizable and the viewport within it should adjust so it does not lose it's aspect ratio of 1:1. If you initially create a window of 400x400, this has an aspect ratio of 1:1. If you then resize the window with the mouse to 600x400, there would be a 100 pixel space on either side of your viewport (meaning the viewport is centered). There are exceptions to this, but you will need to speak with me first (meaning before project grading day) to okay your layout.
  3. Perspective View:
    1. A plane at the origin which your object should "sit" directly on top of (but not intersect).
    2. Relfection in the plane of your object, this needs to be correctly "stenciled" so if you look below the plane you do not see the duplicate object.
    3. Texture map on the plane read from a file (file reading object will be provided).
    4. Movable light.
  4. Model is read in from a file (object and example code will be provided) and rendered accordingly (example code will be provided).
  5. Preferences read from file and applied to the system (writing out of new preferences is not required) (file reading object will be provided).
  6. Colored lines representing the clipping planes in the plane views (x=red y=green z=blue).

Extra Credit (points noted with each):

  1. 4pts - Complete project by Friday, March 20, 1998 at 5pm.
  2. 2pts - The ability to save changes made to preferences (file writing object will be provided).
  3. 2pts - The ability to load new texture maps and new models (it is just fine to prompt for this on stdin and if you don't know how to do that, I'll give you code to do it).