Foundations of 3D Computer Graphics



The purpose of this assignment is to give you experience with programming simple OpenGL applications. You will also get some initial experience with programmable shaders.

The starter code will setup a simple OpenGL 3.0 program that uses GLSL. It demonstrates the basic programming pipeline of this API. The application draws a single texture mapped square in 2D. There are no 3D concepts involved.

Included with this code:

  1. Helpful functions to support openGL
  2. Functions to deal with images in the "ppm" format.

Main differences from the book's code:
  1. C++ Structs are used to maintain shaders data and textures.
  2. C++ smart pointers are used to do automatic memory deallocation
  3. This code performs proper resource management such as deallocating shaders, buffer objects, and textures appropriately, and gracefully handles runtime errors.