Skip to content

nemjit001/vulkan-renderer

Repository files navigation

Vulkan Renderer

Vulkan toy renderer written in C++. Based on previous experience with Vulkan. The aim of this project is to combine lessons learned in previous renderers into a high quality renderer.

TODOs

  • Automatic descriptor layout / set / pool management
    • Descriptor layout builder
    • Descriptor set manager w/ layout cache for reuse
    • Allocate from manager w/ automatic pool realloc and reset per frame

Features

  • OBJ mesh loading
  • Texture mapping
    • automatic mipmap generation
  • ImGui support
  • Virtual camera support
    • Perspective camera
    • Orthographic camera
    • Camera controller
  • Scene loading (Assimp)
    • Camera loading
  • Lights
    • Sun light (directional)
    • Multiple lights
      • Point
      • Directional
    • Shadow mapped lights
  • Skybox
  • Render pipeline
    • Shadow mapping pass
    • Depth prepass
    • Forward opaque pass
    • Transparency pass
  • PBR materials
  • Animations
    • Linear skinning
    • Blend shapes
    • DQ skinning
  • Volumetric clouds (raymarched)

A sample image that was rendered using Vulkan renderer

About

C++17 Render Engine using Vulkan as graphics API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published