Skip to content
/ Vulki Public

A small framework for vulkan based graphics experiments(want to rewrite)

Notifications You must be signed in to change notification settings

aschrein/Vulki

Repository files navigation

Screenshots

alt text alt text alt text alt text

Dependencies

## Install Lunarg-SDK and set up enviroment variables
## Arch Linux setup
sudo pacman -S cmake gcc unzip sparsehash glfw glslang gtest boost

Build

mkdir build
cd build
cmake ../
cmake --build . --target all

Features

  • PBR rasterization framework
    • Mipmap generation
    • GLTF import
      • Assimp/TinyGLTF
    • IBL
      • Irradiance integration
      • Specular integrationBRDF
  • PBR pathtracing framework
    • Importance sampling
    • Multithreaded execution via Marl
  • PBR
    • Simple single scattering Cook-Torrance+Lambert BRDF
  • Vulkan framework skeleton
    • Simple mid level api
    • Single threaded single command buffer submission
  • Asset pipeline
    • Shader reload with inotify/dir_update
  • Gizmos
    • Translation
  • ISPC/Naive path tracing
  • Shader preprocessing/reflection
    • Auto infer input layout
    • Generate data structures with paddings

TODO

  • PBR rasterization framework
    • Lightprobes
    • AO, SSR
    • Light sources
      • Point/Quad/Sphere/Directed/tube light via LTC
  • PBR pathtracing framework
    • Fix multithreading issues
      • Solve simultaneous writes to the frame buffer
    • SAH BVH
    • Light sources
      • Point/Quad/Sphere/Directed/tube light
  • PBR
    • Multiple scattering Cook-Torrance BRDF
    • Transparent objects/participating media
    • Emittance materials
  • Asset pipeline
    • Shader reload with inotify/dir_update
      • Increase granularity
      • Don't crash if compilation fails
  • Vulkan framework skeleton
    • Multi-threaded multi-command buffer submission
  • Gizmos
    • Rotation
  • Sculpting
    • Sparse surface splats

References

Lighting of Halo 3

MJP: SG Series

Frostbite precomputed GI

Tatarchuk: Irradiance volumes

Learn OpenGL: Specular IBL

Real Shading in Unreal Engine 4

Image Based Lighting with Multiple Scattering

A Multiple-Scattering Microfacet Model forReal-Time Image-based Lighting

SIGGRAPH 2013 Course: Physically Based Shading in Theory and Practice

SIGGRAPH 2017 Course: Physically Based Shading in Theory and Practice

Real-Time Polygonal-Light Shading with Linearly Transformed Cosines

Real-Time Polygonal-Light Shading with Linearly Transformed Cosines Blog post

Vulkan Synchronization Primer - Part I

Vulkan Synchronization Primer - Part II

GPU Zen 2: Advanced Rendering Techniques

Patapom: Importance sampling

Veach: Multiple importance sampling

Past, Present and Future Challenges of Global Illumination in Games

Ready at dawn: the order 1886

Stochastic Screen-Space Reflections

Assets

Models downloaded from Sketchfab

https://sketchfab.com/3d-models/aladren-male-bust-3e42f8636e9f44a9a943ae480015a85f

https://sketchfab.com/3d-models/arc-pulse-core-22e55de3be0c46caad827774109572f5

https://sketchfab.com/3d-models/dieselpunk-hovercraft-43fcdb424fe749ae8a576e9b29983d8a

https://sketchfab.com/3d-models/demon-in-thought-3d-print-c7f4522818a84a559472b8db2268fc4a

https://sketchfab.com/3d-models/one-angery-dragon-boi-e590e148d35e4e589c6aca7d5e87ab9e

https://sketchfab.com/3d-models/vintage-record-player-6f3b6984c2f74d64b08833b5f61c2253

Other sources

Models downloaded from Morgan McGuire's Computer Graphics Archive

Models downloaded from free3d

Cubemaps downloaded from hdrihaven

Models downloaded from glTF-Sample-Models

About

A small framework for vulkan based graphics experiments(want to rewrite)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published