A physically-Based Rendering Vulkan reference implementation in C++ with image based lighting using glTF 2.0 models. The lighting equation is based on the reference glTF PBR implementation from Khronos.
The main component of this project was writing a Vulkan glTF model loader and renderer that uses tinygltf, supporting most of glTF 2.0’s features.
The application supports both pbr material workflows (metallic-roughness, specular-glossiness), renders the whole scene hierarchy and fully supports skinned animations for up to 128 bones.
The UI allows for loading of glTF scenes and HDR environment files and also lets you visualize the components and calculations that make up the pbr equation.
It supports loading glTF 2.0 scenes from text and binary files and also has support for loading compressed mesh data via google’s Draco mesh compression library.
As with my other Vulkan related projects, this one is open source and runs on Windows, Linux and Android.
The source is available at at my github repository