Programming Project 3: A visualizer for OBJ files
DATE DUE: November 7, 2016
Points possible: 20 points
CS-116A: Introduction to Computer Graphics
Instructor: Robert Bruce

OVERVIEW

For this project, you will be creating an Alias/Wavefront OBJ file format visualizer using C or C++ with the OpenGL Utility Toolkit (GLUT). The specifications are outlined below.

SPECIFICATIONS

Your program must be able to properly parse vertex (v), face (f), and comment (#) data from an input OBJ file.

The OBJ files I'll be testing your program with ONLY contain vertices, faces, or comments.

Comments should be ignored by your program (everything from the # to the newline).

After reading in the OBJ file, your program should allow me to interact with the model using the following keyboard commands:

  • Pressing 'w' should display the OBJ file as a wireframe mesh.
  • Pressing 's' should display the OBJ file as a solid body model.
  • Pressing the up-arrow key should move the camera closer to the model.
  • Pressing the down-arrow key should move the camera away from the model.
  • Pressing the left-arrow key should rotate the camera counter-clockwise.
  • Pressing the right-arrow key should rotate the camera clockwise.

Please use the Stanford Bunny OBJ file located at http://www.cs.sjsu.edu/~bruce/misc_files/fall_2016_cs_116a/bunny.obj to test your program. To save this file, click your right mouse button then select "Save Link As..." to save the bunny.obj file to your computer.

PLEASE INCLUDE THE FOLLOWING WITH YOUR PROGRAM

1. Please submit your program to the Canvas dropbox. I only need the source code. I will build the program myself.

2. Please name your programming project file with the following naming convention:

Lastname_Firstname_programming_project_3.c (for C programs)

Lastname_Firstname_programming_project_3.cpp (for C++ programs)

3. Please include your name as a comment at the beginning of your program like this:

/* Rob Bruce */

or this:

// Rob Bruce

4. I usually do not need a makefile to build your programs; however, in the unlikely event that I cannot build your project, I will send an email inquiry as appropriate.

5. I expect your program to compile without syntax errors.

6. I expect your program to execute without run-time errors.

GRADING

Points will be deducted for any program that does not meet the specification as outlined above.

LATE ASSIGNMENTS

Assignments submitted after the due date will be worth, at most, 10 points. Additional points will be deducted for programs not meeting the specification as outlined above.