Skip to content

A compilation of few Rasterization and Hybrid Ray Tracing techniques using Vulkan API.

License

Notifications You must be signed in to change notification settings

kapvipoor/VFrame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DemoReel_03232024 FixedShadowSceneFitting_2 IBL SSR

VFrame

A compilation of few rasterization and Hybrid Ray Tracing techniques using Vulkan API and C++

External Tools/Packages

  1. tinygltf (fork, module)
  2. NiceMath
  3. tiny_obj_loader
  4. ImGui (fork, module)
  5. ImGuizmo (fork, module)
  6. Imimgui-filebrowser (fork, module)

Features

  1. Object Picker

    • Challanges Faced: -
    • Algorithm Limitations: -
    • Bugs:
      1. Object picking is not accurate in Forward Pass
      2. Object picking is not correctly implemented in Differed Pass
  2. Normal Maps

    • Challanges Faced:
      1. Did not use the correct texture format to store Normals and so computed wrong TBN matrix (used UNORM duh!)
    • Algorithm Limitations:
    • Bugs:
      1. Forward pass is also computing lighting in View Space however inverse-transposing the light vector (after multiplying with view materix) is giving incorrect results
  3. SSAO

    • Challanges Faced:
      1. Noise computation was bugy in my previous implementaiton. Now fixed
    • Algorithm Limitations:
      1. Quality of SSAO is not great. Migh want to implement AMD SSAO for comparision
    • Bugs:
  4. Shader Compilation - GLSL to SPIRV

    • Challanges Faced: -
    • Algorithm Limitations:
      1. Currently inspired from Sascha Willems's offline python script using glslangValidator
      2. Will later move to a runtime glsl compilation process
    • Bugs: -
  5. Bounding Box Debug Display

    • Challanges Faced: -
    • Algorithm Limitations:
      1. Currently generating vertex and indices as 1 complete buffer and rending as single draw call (GPU effecient with some CPU overhead)
      2. Will later add support for Instanced support for displaying bounding boxes
      3. Will leter add support to display light type identifiers, cameras and other editor friendly visual tools depending on need
    • Bugs: -
  6. User Interface and Guizmo Control

    • Challanges Faced: -
    • Algorithm Limitations:
      1. Using ImGui and ImGuizmo for UI and transform editting
      2. Implemented simple participant architecture for willing classes to implement their UI display
      3. Will keep improving UI as I progress
    • Bugs: -

About

A compilation of few Rasterization and Hybrid Ray Tracing techniques using Vulkan API.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published