Engine Demo
Engine Overview

ProjectGLSL is a custom-built On Going C++ and OpenGL game engine project created to deeply understand real-time rendering, engine architecture, and production-style tooling. The engine was designed with scalability, performance, and developer experience in mind.

  • Deferred and forward rendering pipeline support
  • Physically Based Rendering (PBR) with Image-Based Lighting (IBL)
  • Directional and omnidirectional shadow mapping
  • Post-processing pipeline with FXAA, SSAO, bloom
  • Multiple tone mapping operators (Filmic, Neutral, AMD)
  • Serialization system for saving and loading assets and scenes
  • Built-in CPU/GPU profiling and performance analysis
  • Two build targets: Editor (UI-enabled) and Sandbox (runtime-only)
System Breakdown

Rendering Architecture

ProjectGLSL supports both deferred and forward shading paths. Deferred rendering targets complex scenes with many dynamic lights, while forward shading is used for simpler scenes and debugging scenarios.

Render Pipeline Flow

The deferred pipeline writes geometry data into a G-buffer, evaluates lighting using physically based BRDFs, applies shadow maps per light, and processes the result through a modular post-processing stack. The forward path evaluates lighting directly during material shading to reduce overhead where appropriate.

Lighting & Shadows

Directional shadows are used for sun lighting, while omnidirectional shadow maps support point lights. Both are implemented as reusable render passes to ensure scalability and maintainability.

Post-Processing & Tone Mapping

The post-processing system supports FXAA, SSAO, bloom, and multiple tone mapping operators. Filmic tone mapping emphasizes cinematic contrast, Neutral preserves color accuracy, and AMD tone mapping targets HDR-friendly output.

Serialization & Asset Persistence

A custom serialization layer enables saving and loading of assets, scenes, and engine state. This allows editor persistence and reproducible runtime behavior.

Editor & Sandbox Builds

Two distinct build configurations are supported. The Editor build includes full UI tooling for scene inspection and debugging, while the Sandbox build strips editor-only systems for a lightweight runtime.

Profiling & Performance

Integrated profiling tools track performance across engine systems and render passes, supporting data-driven optimization.

Engine Roadmap & Vulkan Migration

Future work includes introducing a render graph system and a Vulkan backend. The engine architecture already abstracts graphics APIs to support explicit resource management and multi-threaded command recording.

Core Systems

Rendering

PBR, IBL, forward & deferred shading, shadows.

Engine Systems

Serialization, scene management, profiling.

Tooling

Editor UI, sandbox runtime, debug tools.

Engineering Challenges
  • Maintaining parity between forward and deferred render paths
  • Managing synchronization efficiently
  • Designing scalable render pass architecture
  • Separating editor-only and runtime code paths
Takeaway
  • Engine-level architecture thinking
  • Modern real-time rendering expertise
  • Tooling-driven development mindset
  • Performance-focused engine design
OpenSource Engine →