Rendering

Stylized Scene in OpenGL

A real-time stylized scene with GPU instancing, culling and cel shading.

out of 100, MSc coursework grade
74
draw call for each instanced forest
1
The space scene, then the stylized forest rendered with GPU instancing.

Overview

A real-time rendering project built for my MSc coursework at Newcastle University, in C++, OpenGL and GLSL. It opens on a space scene and moves to a stylized low-poly world with a forest, mountains and a building.

The code is structured with object-oriented design so each system stays modular. Forests are drawn with GPU instancing, and CPU-side frustum culling with sphere tests keeps off-screen objects out of the frame.

Highlights

  • GPU instancing draws whole forests of trees in a single draw call
  • CPU frustum culling with bounding-sphere tests
  • Deferred rendering with specular lighting
  • Post-processing in GLSL: saturation, desaturation and blur
  • Cel shading across the scene for the stylized look
  • Graded 74 out of 100

More work

Two vertex-coloured cubes rendered by the Project V Vulkan backend on a black background

In progressGame engine

Project V

A C++20 game engine with a hand-written Vulkan 1.3 renderer.

  • C++20
  • Vulkan 1.3
  • CMake
  • GLM
Top-down view of a sandy arena with green blocks, red collectibles and a timer reading 182 seconds

CompleteCross-platform renderer

Project T

A top-down game with its own rendering pipeline for PlayStation 5 and Windows.

  • C++
  • OpenGL
  • GLSL
  • AGC
A reflective blue tiled sphere lit with physically based shading above rough brown terrain

CompleteRendering

PBR in OpenGL

A physically based, deferred rendering pipeline written from scratch.

  • C++
  • OpenGL
  • GLSL
  • PBR