Vulkan renderer for personal prototyping purpose
  • C++ 85.3%
  • GLSL 10.7%
  • CMake 4%
Find a file
2026-08-06 14:48:31 +10:00
assets Pipeline manager: fix the validation error for shader reloading 2026-08-06 14:48:31 +10:00
cmake Create symlink for asset folder 2026-06-06 14:53:17 +10:00
deps Scene hierarchy 2026-08-02 18:04:05 +10:00
engine Pipeline manager: fix the validation error for shader reloading 2026-08-06 14:48:31 +10:00
projects Pipeline manager: fix the validation error for shader reloading 2026-08-06 14:48:31 +10:00
samples adapt beyond::Span 2026-07-15 13:13:26 +09:00
test Vulkan helper: sampler abstraction 2026-07-19 23:30:30 +08:00
.clang-format More work on the task system 2023-10-11 21:18:14 +08:00
.clang-tidy Scene hierarchy 2026-08-02 18:04:05 +10:00
.gitattributes vk_mini_path_tracer: Update README 2026-06-13 15:11:18 +10:00
.gitignore Render graph: resource versioning 2026-06-25 23:12:32 +10:00
.gitmodules rename third-party folder to deps 2023-12-15 11:40:30 +08:00
cmake-format.yaml Initial commit 2021-05-08 09:33:43 -06:00
CMakeLists.txt Restructure project: split projects into 'projects' and 'samples' 2026-06-26 12:46:24 +10:00
LICENSE Shadow mapping 2023-10-24 00:51:40 +08:00
README.md new Tone mapping operations: Uchimura and Khronos PBR 2026-07-20 00:54:23 +08:00
vcpkg.json Fix imgui 'washed out' issue 2026-07-31 14:38:45 +10:00

Charlie3D

Mirrors: git.lesleylai.info | Codeberg

Charlie 3D is my personal R&D rendering framework in Vulkan. It is constructed on top of my beyond-core library.

Amazon Bistro

It's designed as a modular rendering playground monorepo containing multiple projects. Reusable modules reside in engine, while projects that use those modules live in samples and projects.

Features

Main Features

  • Render Graph: automatic barrier placement and pass reordering
  • Shader hot reloading: Set up shader modules and pipeline like normal and shader files will be automatically watched for changes.
  • Vulkan helpers that simplifies object creation and debug name setting

Rendering

Asset

Interactions

  • A versatile camera implementation that support both arcball and first-person control
  • Dear Imgui integration

Utilities

  • Tracy Profiler integration

Build Instruction

Important

This project uses git-submodules. And it also uses git-lfs for asset management. Please follow the setup instructions carefully to ensure everything is initialized correctly.

Install git-lfs if you haven't

If you haven't done this before, make sure to install git-lfs and run git lfs install before cloning the repository to ensure all large assets are correctly downloaded.

If you've already cloned the repository without git-lfs, then install it and run:

git lfs fetch --all
git lfs pull

to download the missing assets.

Install vcpkg

If you havent already installed vcpkg. Goto a new directory where you want to install vcpkg, and do:

git clone https://github.com/microsoft/vcpkg.git
./vcpkg/bootstrap-vcpkg.sh  # or bootstrap-vcpkg.bat on Windows

Clone the repository

git clone https://github.com/LesleyLai/Charlie3D.git --recurse-submodules
cd Charlie3D

If you forget the --recurse-submodules argument, do

git submodule update --init --recursive

Configure CMake and Build

At this point, you can either use your IDEs CMake integration or run the following commands from the terminal. The key is to provide the vcpkg toolchain file to CMake:

cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build build

Tip

Replace /path/to/vcpkg with the actual path to the local vcpkg installation.

Galleries

Galaxy Renderer

Screenshot of the Galaxy Renderer