piyushgd21/multithread

★ 0Forks 0MakefileGitHub ↗Compare

README

Vulkan Multithreaded Command Buffer Rendering

This project demonstrates a Vulkan rendering example focused on multithreaded command buffer generation. It renders multiple animated UFO objects in a 3D scene using a glTF model, a star sphere background, Vulkan graphics pipelines, and secondary command buffers recorded across multiple CPU threads.

The goal of this project was to understand how Vulkan exposes the rendering process at a lower level, especially concepts such as:

  • glTF asset loading
  • vertex and index buffers
  • graphics pipeline creation
  • push constants
  • model-view-projection transformations
  • primary and secondary command buffers
  • multithreaded command recording
  • frustum culling

Demo Overview

The scene renders hundreds of UFO objects in a star field. The UFO model is loaded from a .gltf asset and reused many times with different positions, rotations, scales, and colors.

The sample also displays a UI overlay showing runtime information such as frame time and the number of active CPU threads.


Motivation

Unlike higher-level graphics engines, Vulkan makes the rendering process explicit. This project was used to understand how a 3D model moves through the Vulkan rendering pipeline:

glTF model
→ vertex and index buffers
→ graphics pipeline
→ command buffer recording
→ draw call
→ final rendered scene

Output

Vulkan UFO Demo


Video Explanation

ufovulkanexplain.mp4

Contributors

piyushgd21flatt53

Issues