Собственный 3D-графический движок на C++, разрабатываемый с целью глубокого изучения низкоуровневого графического программирования, управления памятью GPU и архитектуры современных графических API.
- Language: C++20
- Graphics API: Vulkan 1.3
- Dependencies Management: CMake (FetchContent)
- Core Libraries: GLM (Math), VMA (Memory Management), spdlog (Logging), glfw (Windowing), tinyobjloader (Mesh loading), stb (Image loading).
- Code Quality: Automated formatting via clang-format.
- Automated Shader Pipeline: Интегрированная в билд-систему (CMake) автоматическая компиляция GLSL шейдеров через
glslc. - Resource Management: Использование
Vulkan Memory Allocator(VMA) для эффективной аллокации памяти GPU. - Modern API Usage: Работа с Dynamic Rendering, Push Constants для трансформации матриц, Fences/Semaphores для синхронизации кадров.
- Code Style: Интегрированные таргеты
check-formatиformatдля поддержания стандартов написания кода.
В активной разработке. Текущая реализация включает:
- Инициализацию Vulkan-инстанса и логического устройства.
- Настройку Swapchain, Depth-буферов и графического конвейера.
- Рендеринг загруженных 3D-моделей (OBJ) с текстурированием.
- Камеру от первого лица с обработкой ввода и трансформацией матриц.
- Vulkan SDK (должен быть установлен в системе).
- CMake (3.25+).
- C++20 компилятор.
Проект использует FetchContent для автоматического скачивания всех необходимых зависимостей (GLFW, GLM, spdlog, VMA, tinyobjloader, stb), поэтому вам не нужно устанавливать их вручную.
git clone https://github.com/Satlykovs/VulkanEngine.git
cd VulkanEngine
mkdir build && cd build
cmake ..
make
./MyEngine