Skip to content

Light7734/BindlessVK

Folders and files

NameName
Last commit message
Last commit date
Jun 23, 2023
Jan 5, 2023
May 24, 2023
Oct 18, 2022
Jun 23, 2023
Feb 8, 2023
Jun 23, 2023
Jun 2, 2023
Jul 3, 2023
Apr 16, 2023
Jun 5, 2023
Jun 5, 2023
Jul 3, 2023
Jun 23, 2023
Apr 17, 2023
Jun 1, 2023
Jun 5, 2023

Repository files navigation

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 '[email protected]: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. ♥️