OpenGL Graphics Programming Project

Introduction

This graphics programming demo was part of the final coursework for the COMP3011 Computer Graphics module at the University of Nottingham in 2023. The requirements by means of core features were fairly fundamental, so I took the opportunity of going beyond, learned and implemented many new features I found gratifying.

A short video showcasing many of the features implemented in this demo.

Even though I think I did achieve most of the features as I intended, the code quality is beyond subpar given everything I learned since then, so it’s archived.

Showcase Image

A simple implementation of post-process crepuscular rays.

Features

Showcase Image

Day night cycles, shadows, sky cubemaps.

  • OpenGL fundamentals (buffer/array objects, shaders, instanced rendering, textures) following best practices as provided by Khronos, wherever possible.
  • Simple .obj parser and working with models.
  • Blinn-Phong lighting, and shadow mapping for point, spot, and directional sources.
  • Maps (normals, emissive) etc.
  • Sky cubemaps with day-night cycles, and accompanying light properties to achieve an atmosphere without resorting to advanced techniques.
  • Screen-space post process effects i.e., god-rays, fog.
Showcase Image

Generated terrains with various maps.