Skip to content

Latest commit

 

History

History
62 lines (50 loc) · 2.23 KB

README.md

File metadata and controls

62 lines (50 loc) · 2.23 KB

glTF PBR Vulkan Renderer

A Physically-Based Renderer written in C++ using the Vulkan API.

Sponza with 2 point lights: sponza_point_lights

Sponza with a directional light: sponza_point_lights

Damaged helmet: damaged_helmet

Features

  • glTF 2.0 model loading, both .gltf and .glb formats, with tinygltf
  • Physically-Based Rendering based on the glTF 2.0 specification. Supports:
    • Metallic-Roughness Textures
    • Normal textures (Normal mapping)
    • Emissive textures
    • Alpha mask
    • Multiple UV coordinates per vertex
  • Skybox rendering
  • Supports directional and point lights
  • Two different camera movements
    • Arcball
    • Free movement
  • Automatic Descriptor Set Layout creation based on shader reflection data with SPIRV-Reflect
  • Dependency management with vcpkg
  • Vulkan Dynamic Rendering
  • Scene selector UI with Imgui

TODO

  • Shadows
  • Fix max memory allocation (possibly with VMA)

Dependencies

Relevant resources