← All projects

EDK Engine Reimplementation

Core modules of my school's C++/OpenGL engine, rewritten by us and used to build a 3D scene.

Graphics & Engine Programmer

C++, OpenGL / Team of 3 / 2026

Overview

EDK is a small engine written in C++ and OpenGL that ESAT gives its students to learn graphics programming. During the course we replace its modules one by one with our own rewritten versions, and at the end we use our version of the engine to build a 3D scene.

We were a team of three. The scene is a terrain with lakes, clouds, a skybox and rain, and I worked mainly on the camera, the post-processing, the particles, the debugging tools and the way the engine manages GPU resources and memory.

What I did

Fly camera

A free-flying camera to move around the scene and look at it from any angle. It's how the whole scene, and every other feature on this page, gets explored.

Post-processing pipeline

The scene is first rendered into an off-screen texture, and then goes through full-screen effects before reaching the screen. Effects can be stacked and switched on and off while the scene runs. I built the pipeline and the underwater effect (wavy distortion with a tint colour that can be changed live). The clip also shows other effects running on it: pixelation, a CRT TV look and colour inversion.

Particle system

A particle system with adjustable spawn rate, size, speed and colour, used in the scene for rain.

ImGui debugging tools

Dear ImGui panels to tweak the scene while it's running. I built the controls for my own systems (camera, post-processing effects and particles), and my teammates added the ones for theirs.

GPU and memory management

I rewrote the GPU manager, the class between the engine and OpenGL that makes sure everything reaches the GPU and renders correctly, along with the texture class it relies on. Most of it is CPU-GPU communication: wrapping OpenGL calls and preparing the buffers and textures the scene needs.