NVKG is a rendering engine and my next attempt to finally master vulkan (and modern c++).
Currently (and for the forseeable future) only linux and macos are supported. I simply don't have access to a windows machine.
Any bugs or problems can be reported via the repo's issues.
The dependencies are reduced to a minimum as the majority of external code is included through git submodules.
Current highlights are:
- Automated descriptor creation using SPIRV-Cross reflection
- Material based rendering
- Fully functional Entity Component System
- Font rendering using signed distance fields
Next up on my to-do list will be:
- Improvements to renderer (instanced and indirect rendering, culling, lod, multithreading)
- UI Framwork (i.e. buttons, ...)
- Proper asset manager (unified way to load all kinds of files)
- Audio support
- Physics support
- Serialisation
- And everything that comes up inbetween...
The following are dependencies for building and running NVKG:
All other libraries are within git submodules.
Execute the provided script scripts/setup.sh
. If you wish to build with vulkan validation layers, execute with --include-validation-layers
. No more action should be needed.
Linux Users may need to download the following libs: libx11-xcb-dev libxkbcommon-dev libwayland-dev libxrandr-dev libasound2-dev mesa-common-dev libx11-dev libxrandr-dev libxi-dev xorg-dev libgl1-mesa-dev libglu1-mesa-dev
.
Build with make app
and execute with ./bin/app
.
If you want to modify anything, the compile_commands.json
for the clangd language server can be created using bear.
- ilumary - Christoph Britsch (Creator)