ENH: VR support for Vulkan renderer
VR support for Vulkan renderer. This turned out to be a lot of work, but also led to some improvements in the Vulkan renderer and interactor classes.
Status:
-
Corrected image layout transitions -
Added additional framebuffer images in (low?) dynamic range to send to the headset -
Headset displays two images now -
Apply HMD transformation to camera -
Refactor interactor classes for Vulkan -
Implement stereo instanced rendering1 -
Update shaders to account to stereo rendering -
Load/render controllers -
Calculate the correct the camera position shader variables for VR mode -
Identify performance bottlenecks and fix -
Clean up destructor for Vulkan renderer -
Fixed bug with uploading static mesh data
Known issues:
- The validation layer is ironically complaining about image layout issues, but I can't identify the images that they affect. This may be internal to OpenVR, and perhaps updating OpenVR can fix these.
-
uses VK_KHR_multiview, which limits support mainly to PC devices. However, this is the most efficient way to render VR currently.
↩
Edited by Nicholas Milef