No description
  • C++ 94.4%
  • GLSL 3.2%
  • CMake 2.2%
  • Shell 0.2%
Find a file
2023-07-03 16:04:15 +03:30
ABC beh: add tracy profiler 2023-06-23 10:20:33 +03:30
AssetBaker wip: refactor: major style & code refactor 2023-01-05 23:46:38 +03:30
AssetParser refactor: simplified RenderGraph/Pass to RenderNode 2023-05-25 00:40:33 +03:30
Assets feat: skybox 2022-10-18 18:32:39 +03:30
BindlessVk beh: add tracy profiler 2023-06-23 10:20:33 +03:30
Branding asset(branding): update bindlessvk logo 2023-02-08 23:13:31 +03:30
docs docs: add doxygen + doxygen-awesome-css 2023-04-16 22:08:54 +03:30
Examples ref: vendor libraries now build with '-O3 -DNDEBUG -w' 2023-06-23 13:25:26 +03:30
Shaders beh(demo): add lights 2023-06-02 06:25:33 +03:30
Vendor beh: add meshoptimizer submodule 2023-07-03 16:03:19 +03:30
.clang-format ref: extract out preliminary code to a separate project 'ABC' 2023-06-05 18:14:28 +03:30
.gitignore ref: extract out preliminary code to a separate project 'ABC' 2023-06-05 18:14:28 +03:30
.gitmodules beh: add meshoptimizer submodule 2023-07-03 16:03:19 +03:30
CMakeLists.txt ref: vendor libraries now build with '-O3 -DNDEBUG -w' 2023-06-23 13:25:26 +03:30
Doxyfile docs: add lots of documentations 2023-04-17 19:31:27 +03:30
README.md doc: update repository readme 2023-06-01 10:00:49 +00:00
shader.sh beh: extract out debugging into a separate project 'Amender' 2023-06-05 16:33:23 +03:30

BindlessVK


"Perfection is achieved, not when there is nothing left to add but when there is nothing left to take away..."

-Antoine de St. Exupery, Wind, Sand, and Stars, 1939

What's all this?

BindlessVK is a physically based renderer(PBR) written in modern C++ using Vulkan API, it utilizes a bindless design to minimize the state changes.

Development Guideline

Getting started:

git clone --recurse-submodules 'git@github.com:light7734/bindlessvk.git' bindlessvk
mkdir bindlessvk/build
cd bindlessvk/build
cmake .. -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_BUILD_TYPE=DEBUG
cmake --build . -j`nproc`
cd ..
ln -s ./build/compile_commands.json ./compile_commands.json

Commit syntax (almost) follows the conventional commits specification:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

Commit types:

  • beh: Changes to the behavior.

    • beh(bvk): add multi sample anti-aliasing
    • beh(demo): randomize objects' transformation
    • beh(asset-loader): add progress logging
    • beh(profiler): output will be prettified
  • fix: Changes that fix a malfunction in behavior.

    • fix(asset-loader): file handle left open
    • fix(demo): incorrect lights' parameters
    • fix(profiler): missing closing brackets
  • ref: Changes that improve the internal structure of the code without altering its external behavior.

    • ref(bvk): optimize render loop
    • ref(bvk): rename methods & variables
    • ref(profiler): remove unused variables
    • ref(asset-loader): split large class 'a' into 'a', 'b' & 'c'
  • sty: Aesthetic changes that won't affect the structure or the behavior of the code.

    • sty: update .clang-format
    • sty: tidy up CMakeLists
    • sty: change naming convention for 'some type'
    • sty(bvk): remove extra whitespaces
    • sty(profiler): re-order methods
  • doc: Changes to the documentations.

    • doc: update repository readme
    • doc(bvk): fix spelling errors
    • doc(profiler): add docs for class 'a'
    • doc(asset-loader): remove comments
  • ass: Changes to the assets.

    • ass(branding): add bindlessvk logo
    • ass(demo): fix player weight paintings
    • ass(demo): remove unused files

Branches:

  • main: the main development branch.

Contact

Feel free to HMU anytime on matrix @light7734:matrix.org to chat about programming or whatever. ♥️