Foundations of 3D Computer Graphics



The purpose of this assignment is to get started with 3D graphics programming in OpenGL.

Your program will use OpenGL to draw two cubes as well as some scenery. You will implement a number of different viewpoints, and allow the cubes to be moved around the scene. They will move with respect to various frames, including the two cubes' frames and external points of view.

The starter code will setup a simple 3D application using OpenGL 3.0 and GLSL, that draws a single cube and lets you move it around in space.

Included with this code:

  1. A vector library
  2. A matrix library
  3. A geometry class for drawn objects

Main differences from the book's code:
  1. OpenGL Index buffers are used to point the vertex data for the triangles.
  2. Position and normal data is packed into a single OpenGL buffer
  3. Geometry structs are used represent objects to be drawn