Skip to content

codeonwort/pathosengine

Repository files navigation

Introduction

OpenGL rendering engine mainly to toy with real-time graphics programming.

It's architecture follows game engine patterns but it's not meant to be a game engine.

Development Environment

The project will only compile and run on the following environment:

  • GL version: OpenGL 4.6 Core Profile
  • Language: C++17
  • OS: Windows 11
  • IDE: Visual Studio 2022

How to Build

  1. Clone this repo.
  2. Run Setup.ps1 to download media resources. (you need execution policy for PowerShell script)
  3. Build all projects in PathosEngine.sln.
  4. Execute one of test projects.

Sample Images

Collapse

RenderChallenge1 RenderingChallenge1 world to showcase procedural geometries and textures, volumetric clouds, and bloom post process.

RenderingChallenge2 RenderingChallenge2 world to showcase procedural geometries and sky.

LightRoom world to showcase omnidirectional shadows and emissive lights.

WIP-Landscape WIP RacingGame world to showcase large-scale rendering.

GLTF-Sponza A toy rendering project always need yet another Sponza scene :)

Summary of Rendering Features

  • Rendering pipeline
    • Depth prepass
    • Local illumination
      • Area lights (sphere light, rect light)
      • PBR materials
    • Global illumination
      • Cascaded shadow map
      • Screen-space ambient occlusion
      • Screen-space reflection
      • Real-time illumination from sky light sources (skybox, panorama, or atmosphere)
      • Real-time indirect illumination from irradiance/radiance probes (WIP)
    • Volumetric clouds
    • Large-scale landscape (WIP)
    • Post processing
      • God ray (light shaft)
      • Auto exposure
      • Bloom
      • Tone mapping
      • Anti-aliasing (FXAA, TAA)
      • Super resolution (AMD FSR1)
      • Depth of field
  • Engine subsystems
    • Render thread
    • Asynchronous asset loaders (Wavefront OBJ, glTF)
    • Scene capture (rendering from separate views other than the main view)
    • Runtime shader recompilation
    • Actor system (component-based development)
    • Material shader assembly system (generate material shaders from templates so that they can run in frame rendering pipeline)
    • RenderDoc integration
    • Console variables and console window

Third-party Libraries

About

OpenGL Rendering Engine for Study

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published