Home - mbucchia/Quad-Views-Foveated GitHub Wiki
In layperson's terms:
This software lets you use Eye-Tracked Foveated Rendering (sometimes referred to as Dynamic Foveated Rendering) with your Pimax Crystal, Meta Quest Pro, and other headsets supporting eye tracking via OpenXR in games using the quad views rendering technique like Digital Combat Simulation (DCS) and Pavlov VR. If your headset does not embed an eye tracking device, you will be getting Fixed Foveated Rendering instead.
THIS IS NOT A UNIVERSAL INJECTOR TO ADD FOVEATED RENDERING TO APPLICATIONS THAT DO NOT IMPLEMENT IT. This software can only be used with applications that implement quad views rendering.
If you are looking for a universal injector, look into OpenXR Toolkit or vrperfkit (for OpenVR/SteamVR applications).
In technical terms:
This software enables OpenXR apps developed with XR_VARJO_quad_views
and optionally XR_VARJO_foveated_rendering
to be used on platforms that do not typically support those extensions. It composes each quad view projection layer into a stereo projection layer, and uses the eye tracking support on the device to make the inner projection views follow the eye gaze.
Read more about it: What is Quad Views rendering?.
DISCLAIMER: This software is distributed as-is, without any warranties or conditions of any kind. Use at your own risks.
Before installing, check the compatibility tables below for both hardware and application support.
Headset | I use... | Supported? | Notes |
---|---|---|---|
Meta Quest Pro | Oculus OpenXR | Yes | |
Meta Quest Pro | VirtualDesktopXR (VDXR) | Yes | |
Meta Quest Pro | SteamVR with Virtual Desktop | Yes | Requires OpenXR-Eye-Trackers |
Meta Quest Pro | Steam Link | Yes | Requires OpenXR-Eye-Trackers |
Meta Quest Pro | SteamVR with Oculus Link | No [1] | |
Pimax Crystal | PimaxXR | Yes | |
Pimax Crystal | SteamVR OpenXR | Yes | Requires OpenXR-Eye-Trackers |
Pimax 5K/8K (w/ Droolon Pi1) | PimaxXR | Yes | |
Pimax 5K/8K (w/ Droolon Pi1) | SteamVR OpenXR | No | |
Varjo Aero | Varjo OpenXR | Yes | You may also use Varjo's own implementation of quad views (included in Varjo Base) [2] |
Varjo Aero | SteamVR OpenXR | Yes | Requires OpenXR-Eye-Trackers |
Varjo VR-3/XR-3 | Varjo OpenXR | Yes | This implementation does not support Bionic Display: you may instead use Varjo's own implementation of quad views (included in Varjo Base) [2] |
Varjo VR-3/XR-3 | SteamVR OpenXR | Yes | Requires OpenXR-Eye-Trackers |
HP Reverb G2 Omnicept Edition | WMR OpenXR | Yes | Requires OpenXR-Eye-Trackers |
HP Reverb G2 Omnicept Edition | SteamVR OpenXR | Yes | Requires OpenXR-Eye-Trackers |
Vive Pro Eye | SteamVR OpenXR | Yes | Requires Vive Console for SteamVR |
Pico Neo Pro 3/4 | SteamVR OpenXR | No | Can use in Fixed Foveated Rendering mode |
[1] Support in SteamVR for Oculus would require Oculus to provide a public OVR API to retrieve eye tracking data, which they currently do not offer.
[2] Why using Quad-Views-Foveated (this project) instead of Varjo/Somnium's own implementation?
Both Quad-Views-Foveated and the platform software for Varjo and Somnium provide similar functionality, however Quad-Views-Foveated has advantages over the other implementations:
- It allows the peripheral/focus resolutions to be fully customized;
- It forces applications with quad views rendering but not foveated rendering support to use foveated rendering. This was originally achieved through Varjo-Foveated;
- It provides AMD Contrast Adaptive Sharpening (CAS) for the focus region for a crisper image;
- It provides customizable transition (alpha-blending) from the focus region to the peripheral region;
- It is compatible with OpenXR Toolkit.
The program will operate in Fixed Foveated Rendering mode.
Headset | Tested? |
---|---|
HP Reverb G2 | Yes |
Oculus Quest 2/3 | Yes |
Oculus Rift | Yes |
Pimax 4K/5K/8K | Yes |
Pimax Crystal Light | Yes |
HTC Vive | Yes |
HTC Vive Pro | Yes |
HTC Vive Cosmos | Yes |
HTC Vive Focus | Yes |
Valve Index | Yes |
Pico Neo 3/4 | Yes |
Bigscreen Beyond | Yes |
This software works with any GPU. Unlike the more traditional foveated rendering techniques based on Variable Rate Shading (VRS) and requiring Nvidia cards, the quad views method works with any GPU.
Application | Supported? | Notes |
---|---|---|
DCS World | Yes | Must use OpenXR; See application notes below for quirks |
Pavlov VR | Yes | Nothing special - works out-of-the-box |
The 7th Guest VR | Yes | Must run with Direct3D 11, add the following command-line argument: -d3d11
|
VAIL | Yes | Must run with Direct3D 11 when prompted in Steam ("Launch VAIL DX11 in OpenXR Mode") |
Other OpenXR tools are supported as well. List of what is known to work or not work so far:
Application | Supported? | Notes |
---|---|---|
OpenXR Toolkit | Yes | See application notes below for quirks |
OpenKneeboard | Yes | |
Hand Tracking Cockpit Clicking | Yes | |
OpenXR OBSMirror | Yes | |
XRNeckSafer | Not tested | |
OpenXR-MotionCompensation | Yes |
-
DCS World has two modes of operation: the single-threaded mode, and the new experimental multi-threaded mode. Due to a bug in the game with single-threaded mode (cursor renders double), you must use the multi-threaded (MT) mode.
- If you are using DCS OpenBeta, create a shortcut to the
dcs.exe
file under thebim-mt
folder where DCS is installed.
- If you are using DCS Steam Edition - running the executable from the
bin-mt
folder does not work, instead you must go to DCS World 'Properties' in Steam, then under 'General', make sure 'Launch options' is set to 'Play MT Preview'. You must then run the game from within your Steam library.
- If you are using DCS OpenBeta, create a shortcut to the
-
Contrary to popular beliefs, you do not need the
--force_OpenXR
launch parameter when using DCS MT. -
In the DCS World settings, you must disable 'VR' -> 'Bloom effect' and 'System' -> 'Lens Effects' as they produced poor visuals when using foveated rendering.
This program is compatible with OpenXR Toolkit, however with the current version of OpenXR Toolkit (1.3.2), certain precautions must be taken:
-
Quad-View-Foveated must be installed after OpenXR Toolkit. This is because the installer program for OpenXR Toolkit has not been updated to recognize Quad-View-Foveated. The installer for Quad-View-Foveated will ensure that Quad-View-Foveated and OpenXR Tookkit are loaded in the correct order. If unsure, uninstall then reinstall Quad-View-Foveated in order to establish the correct loading order.
-
If you previously used OpenXR Toolkit, certain settings that you may have enabled can be incompatible with Quad-View-Foveated. You must clear the OpenXR Toolkit settings for your application prior to using it with Quad-View-Foveated.
- In the 'OpenXR Toolkit Compation app' (launched from the desktop or the 'Start Menu'), tick the 'Enable safe mode' option.
- Run your application with OpenXR Toolkit in safe mode. Once the application enters VR, open the OpenXR Toolkit menu, then navigate to the 'Menu' tab, then to 'Restore defaults'. Use the left or right action to trigger the restore, and the left or right action once more to 'Confirm' at the prompt.
- In the 'OpenXR Toolkit Compation app' (launched from the desktop or the 'Start Menu'), untick the 'Enable safe mode' option.
-
Be mindful of the settings you enable in OpenXR Toolkit! Several settings are incompatible and should not be used:
- 'Foveated Rendering' - You are already doing this through Quad-Views-Foveated, and better!.
- 'Field of view' override and 'Zoom'.
- 'Turbo mode' may only be used if it is not already enabled through Quad-Views-Foveated's configuration.
PLEASE DO NOT HOTLINK TO THE DOWNLOAD LINK BELOW - INSTEAD LINK TO THIS PAGE THAT COMES WITH BOTH THE DOWNLOAD LINK AND ALL THE NECESSARY INSTRUCTIONS! THANK YOU
YOU MUST COMPLETE ALL THE STEPS BELOW - IN ADDITION TO INSTALLING THE TOOL, YOU MUST FOLLOW THE INSTRUCTIONS SPECIFIC TO YOUR HEADSET AND SPECIFIC TO YOUR APPLICATION (IF ANY)
Quick download link: Quad-Views-Foveated-1.1.3.msi
Download the latest version from the Releases page. Find the installer program under Assets, file Quad-Views-Foveated-<version>.msi
.
You might need to install the latest Visual C++ Redistributable.
Run the installer and follow the instructions to complete the installation.
Follow the additional steps specific to your headset in order to enable eye tracking (when applicable):
- Meta Quest Pro
- Pimax Crystal
- Pimax 5K/8K (w/ Droolon Pi1)
- Varjo Aero/Varjo VR-3/XR-3
- Vive Pro Eye
- HP Reverb G2 Omnicept Edition
Take a look at additional notes specific to your applications, such as recommended settings or incompatible settings.
You may watch Str][kerTV's tutorial video for a visual walkthrough for Digital Combat Simulator:
THESE STEPS WILL WORK EVEN IF YOU ARE NOT USING OPENXR THROUGH STEAMVR!
You can temporarily disable (without uninstalling) the software. Open SteamVR, then in the 'SteamVR Settings', go to the 'OpenXR' tab, then click 'Manage OpenXR API Layers'. Find the 'Emulate quad views foveation support' entry and toggle it off. You may re-enable it at any point by toggling it back on from the same menu.
You can use 'Add or remove programs' (available from the Start Menu) and uninstall 'OpenXR-Quad-Views-Foveated' from there.
The default configuration should be sufficient for most users. You probably do not need to modify the configuration file.
Please refer to this page for advanced configuration.
Please refer to this page for troubleshooting issues.
You can also join the OpenXR Toolkit Discord for support, specifically the #foveated-rendering
channel.
IF YOU DON'T INCLUDE YOUR LOG FILE AND A CLEAR EXPLANATION OF YOUR ISSUE, YOUR MESSAGE WILL BE IGNORED.
Thanks to my beta testers for helping throughout development and release (in alphabetical order):
- BARRACUDAS
- edmuss
- MastahFR
- mfrisby
- Omniwhatever
- xMcCARYx
Donations are welcome and totally optional. Please use my GitHub sponsorship page to make one-time or recurring donations!
Thank you!