Rendering

PBR Scene in OpenGL

A physically based, deferred rendering pipeline written from scratch.

Fly-through of the PBR scene with a lit, reflective sphere over displaced terrain.

Overview

A 3D scene built from scratch in C++ and OpenGL, with a physically based rendering pipeline to raise the visual quality of the scene.

After studying the GTA V rendering pipeline write-up, I moved the renderer to deferred shading. The scene is lit by directional, spot and point lights, and Reinhard tone mapping with gamma correction produces the final image.

Highlights

  • PBR pipeline written by hand in C++, OpenGL and GLSL
  • Deferred rendering, informed by a study of the GTA V rendering pipeline
  • Directional, spot and point lights
  • Reinhard tone mapping and gamma correction as post-processing
  • Graphics debugging with NVIDIA Nsight Graphics and RenderDoc

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 low-poly forest of dark green trees on bright grass with grey mountains and a building under a night sky

CompleteRendering

Stylized Scene in OpenGL

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

  • C++
  • OpenGL
  • GLSL
  • GPU instancing