ilumary / nvkg

NVKG is my first attempt at a professionally built rendering engine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NVKG

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:

  1. Improvements to renderer (instanced and indirect rendering, culling, lod, multithreading)
  2. UI Framwork (i.e. buttons, ...)
  3. Proper asset manager (unified way to load all kinds of files)
  4. Audio support
  5. Physics support
  6. Serialisation
  7. And everything that comes up inbetween...

Contents

Getting Started

Dependencies

The following are dependencies for building and running NVKG:

All other libraries are within git submodules.

Setup

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.

Building and execution

Build with make app and execute with ./bin/app.

Modifications & Contributions

If you want to modify anything, the compile_commands.json for the clangd language server can be created using bear.

Contributors

  • ilumary - Christoph Britsch (Creator)

References

About

NVKG is my first attempt at a professionally built rendering engine

License:zlib License


Languages

Language:C++ 95.6%Language:Shell 2.3%Language:GLSL 1.3%Language:Makefile 0.8%