Basic OpenGL constructs and functions to construct a cube out of vertex buffer objects, and different vertex and fragment shaders applied different coloration effects to the surfaces of 3D models.
SURFACE SHADER PROGRAMS: CUBE VERTEX BUFFERS: In the Mesh class, which can be found in scene/mesh.h, createCube() fills std::vectors with vertex data for the following attributes of a cube that spans the range [-1, 1] in the X, Y, and Z axes (in world space): Position (glm::vec4) Normal (glm::vec4) UV (glm::vec2)
SURFACE SHADER UNIFORM HANDLE: Integer member variable in SurfaceShader() class acts as a handle to a uniform vec3 in the surface shader that represents the camera's position in world space.
SURFACE SHADER RESULTS:
Lambert Shader
Blinn-Phong Shader
Matcap Red Clay Shader
Matcap Chrome Shader
Iridescent Heat Map Shader
POST PROCESS SHADER RESULTS:
Gaussian Blur Post Process Shader
Greyscale Post Process Shader
Bloom Post Process Shader
Sobel Post Process Shader
Worley Noise Pixellated Process Shader