An experimental game engine.
- Windows 10 / Visual Studio 2022
- Ubuntu 22.04 / GCC 13.1.0
- Entity Component System (EnTT)
- Renderer (Vulkan w/ FrameGraph):
- Forward/Deferred Shading PBR + IBL
- Weighted Blended OIT
- Lighting and shadows (Tiled Culling):
- Directional lights (w/ CSM)
- Point lights
- Spot lights
- Decals
- Skinning
- Skybox
- Global Illumination (LPV)
- SSAO
- SSR
- Eye Adaptation
- Bloom
- Tonemapping
- FXAA
- Customizable materials (surface and postprocess)
- Custom mesh format (w/ assimp exporter)
- Physics (Jolt)
- Rigid bodies
- Character controller
- Skeletal animations (ozz-animation)
- Audio (OpenAL Soft)
- Playback/Streaming (.wav, .ogg)
- Lua scripting (sol2)
- Material Editor (imgui w/ imnodes)
Requires CMake 3.26 and vcpkg
> git clone --recurse-submodules https://github.com/skaarj1989/SupernovaEngine.git
> cd SupernovaEngine
> cmake -S . -B build
> git clone https://github.com/microsoft/vcpkg
> ./vcpkg/bootstrap-vcpkg.bat
Add the following environment variables:
VCPKG_ROOT=path_to_vcpkg
VCPKG_DEFAULT_TRIPLET=x64-windows
Install dependencies:
> vcpkg install entt minizip robin-hood-hashing glm spdlog nlohmann-json cereal glslang spirv-cross ktx[vulkan] stb openal-soft libvorbis libogg lua argparse meshoptimizer boost-graph freetype catch2
Linux packages:
> sudo apt install libxcb-util-dev libxcb-icccm4-dev libxcb-ewmh-dev libxcb-xfixes0-dev libxcb-keysyms1-dev libxcb-randr0-dev libx11-xcb-dev
- EnTT
- zlib
- robin-hood-hashing
- glm
- spdlog
- nlohmann-json
- cereal
- Vulkan SDK
- glad
- Vulkan Memory Allocator
- glslang
- SPIRV-Cross
- FrameGraph
- KTX-Software
- stb_image
- JoltPhysics
- ozz-animation
- OpenAL Soft
- Vorbis
- Ogg
- Lua
- sol2
- Tracy Profiler
- RenderDoc
- argparse
- assimp
- meshoptimizer
- The Boost Graph Library
- Dear ImGui
- imnodes
- ImGuiColorTextEdit
- ImPlot
- Nuklear
- IconFontCppHeaders
- RmlUi
- Catch2
- Install Lua Language Server
- Add path to annotations
- File -> Preferences -> Settings Lua.workspace.library -> Add Item
- or run:
InstallAnnotations.bat
(requires yq)
- PBR Lighting based on: glTF-Sample-Viewer
- Forward vs Deferred vs Forward+ Rendering with DirectX 11
- Light Propagation Volumes
- OpenGL Cascaded Shadow Maps
- Automatic Exposure Using a Luminance Histogram
- Physically Based Bloom
MIT