Skip to content

Vulkan renderer with advanced graphics algorithms applied

License

Notifications You must be signed in to change notification settings

EdoardoLuciani/TheVulkanTemple

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TheVulkanTemple

TheVulkanTemple is a cross-platform vulkan rendering engine that focuses on simplicity and visual quality. By providing 3D PBR models in GLTF format and by setting lights it renders a scene. TheVulkanTemple uses Variance Shadow Mapping for shadows, a Cook-Torrance BRDF for Physically Based Rendering, SMAA for antialiasing, HBAO for ambient occlusion and finally HDR tonemapping with optional upscaling. It supports fullscreen mode as well as windowed. Due to its modularity, it is quite easy to add features or to integrate it in larger projects.

alt text alt text alt text alt text

Features

  • PBR Pipeline
  • Shadows
  • Point, spot and directional lights
  • Horizon Based Ambient Occlusion
  • Edge detection anti-aliasing
  • High dynamic range with final tonemapping
  • Image upscaling with FidelityFX-FSR
  • GLTF model as inputs
  • Runtime mipmap generation
  • Fullscreen, windowed and window resize

Libraries used

Files

  • main.cpp: shows how to use the rendering engine
  • engine/graphics_module_vulkan_app : handles the high level functions of the engine, such as loading objects
  • engine/base_vulkan_app : handles the device initialization

How to build

Builds have been successfully tested on Windows and Linux. In order to build, Cmake is required and the following variables need to be set: GLFW_INCLUDE_DIR, GLFW_LIB_DIR, GLM_INCLUDE_DIR, VULKAN_SDK_INCLUDE_DIR, BOOST_INCLUDE_DIR.

Future plans

Occlusion culling on objects, multithreaded rendering.

About

Vulkan renderer with advanced graphics algorithms applied

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published