Compute shader based pipeline clustering, various fixes

Merged Jonathan Kunstwald requested to merge feature/jk-dev into master

Main

  • Port pipeline light clustering to compute shaders
    • Clean up lots of old code
    • Remove all GPU flagging define permutations
  • Simplify pipeline interface with new RenderContext struct
  • Add a fully customizable shadow pass to the pipeline, allowing for custom shaders
  • Improve double click focus in Viewer (#4 (closed))
  • Move embedded shaders to separate CMake target and specific folder (#3 (closed))
  • Add C++/GLSL-shared globals.hh to pipeline with various defines
  • Add CMake option to enable aion profiling for the pipeline
  • If ImGui is available, replace periodic log output with profiling GUI in GlfwApp

Minor + Fixes

  • Add pipeline markdown guide to docs/
  • Remove caching from camera lens, add caching to pipeline StageCamera
  • Add new InputState and InputSnapshot class, replacing previous Input class
  • Fix pipeline shader compilation on non-NVidia drivers
  • Add camera up argument to Handle::setLookAt (#6 (closed))
  • Adapt camera move speed to scene AABB in Viewer (#9 (closed))
  • Add viewer close on ESC, program termination on Shift + ESC
  • Fix SSAO naming
  • Add various minor fixes and optimizations
Edited by Jonathan Kunstwald

Merge request reports