/xengine

An experimental real-time render engine

Primary LanguageC++

eXperimental Engine

Extremely simple realtime renderer

Features

  • Physical based rendering(PBR)
  • Image based lighting(IBL)
  • Screen space ambient occlusion(SSAO)
  • Screen space reflection(SSR)
  • Deferred pipeline
  • Particle system(firework only)
  • Post effect

Dependencies

Third parties kits:

  • GLM (Math library)
  • GLAD (OpenGL extension)
  • GLFW (Window controller)
  • Assimp (Resources loader)
  • ImGUI (GUI)

CXX standards:

  • c++17 (only required for filesystem.cpp)

Build

mkdir build && cd build

cmake ..

Running

  • Set repository folder as working directory
  • Add all DLLs(assimp only here) to startup path

In the case of Visual Studio:

  • Select project "demo" and choose "Set as Startup Project"
  • Go to "Properties" of "demo" then "Debugging" page
  • Set "Working Directory" as "$(ProjectDir)../../"
  • Set "Environment" as "PATH=$(ProjectDir)../../3rdparty/assimp/bin;%PATH%"
  • All above apply if your build folder is under repo folder

Usage

  • Mouse control(view)
  • Keyboard WASD(move) Q(up) E(down)
  • Keyboard Tab(show/hide ui board)
  • Keyboard 1(scene 1) 2(scene 2) 3(null scene)

Effect

Alt text

Alt text