FlatVR ๐ถ๏ธ
Everything the app does, in the order you'll meet it: getting a game onto the virtual screen, shaping that screen around you, and turning the flat picture into real depth.
What FlatVR is
FlatVR launches any non-VR (flat) game directly in VR. It builds a highly customizable OpenXR overlay with a massive virtual screen right in front of you, turning a desktop game into an immersive VR experience โ and, with a depth source, into a genuinely volumetric one.
Nothing is patched into the game. FlatVR captures the window or display the game is already drawing to, and projects it into the headset. The same applies to videos, emulators and any other desktop app.
๐ How to launch
There are two ways to get a game onto the virtual screen.
Standard capture
Press Refresh Window/Monitor List, pick your running game or a physical monitor from the dropdown, and click START FLATVR.
Virtual monitor recommended
Create a virtual monitor in its own tab โ this uncaps the 60 Hz limit and lets you use square resolutions. Then click Make Virtual Monitor Primary on the Launch tab, start the game, and press START FLATVR. Use Show Virtual Monitor Overlay to peek at what is happening on the invisible display.
The master checkbox Enable Flat VR Overlay at the top of the app has to be checked, or nothing will appear in the headset.
Other controls on the Launch tab
Performance statistics
The right-hand panel shows the game's source frame rate, the VR render rate and โ in AI depth mode โ how long each depth inference actually takes in milliseconds. That last number is the one to watch when tuning depth quality against GPU headroom.
๐ฅ๏ธ Virtual monitor
Instead of capturing your physical monitor, you can create a headless virtual monitor. This is strongly recommended for VR gaming.
Why use it
Your physical monitor may be capped at 60 Hz. A virtual monitor bypasses that, letting the game run at your headset's native refresh rate โ 90 Hz, 120 Hz โ for maximum smoothness. It also allows custom square resolutions such as 1600ร1600, which fit the VR field of view far better than a 16:9 strip.
How to use it
- Press Add Virtual Monitor and set its width, height and refresh rate.
- Go to the Launch tab and click Make Virtual Monitor Primary.
- Start your game โ it opens on the virtual screen automatically.
- Use Show Virtual Monitor Overlay on the desktop to peek at what is on it.
- When finished, press Restore Physical Monitor Primary to return Windows to normal.
๐บ Screen position & shape
Fine-tune the virtual screen's physical shape, distance and lens distortion inside the headset.
Moving the screen with your controllers
Point a controller at the virtual screen and hold the grab button to take hold of it. Turning the controller swings the screen around you; moving your hand carries it โ forwards and back for distance, sideways and up for a shift. Squeeze the trigger while holding for quarter-speed fine placement.
- Right stick while holding: forward pushes the screen away, back pulls it closer, right makes it larger, left smaller.
- Right stick with nothing held: forward and back scroll whatever the beam is pointing at, like a mouse wheel.
- Left stick: shift the screen.
- Right stick click: steps through your saved placements.
Nothing here resets anything โ that is Reset Center, on its own binding (left stick click by default, or F7). The laser stops driving the mouse while the screen is held.
๐ซ๏ธ Blur & Ambilight
Ambilight samples the colours at the edge of the screen and smears them outwards into the dark void, so the picture stops feeling boxed-in. It is the cheapest immersion win in the app.
๐ Head tracking & mouse emulation
Head tracking translates your physical head rotation into in-game mouse movement. You look around, aim or steer in first-person and simulation games simply by turning your head โ a pseudo-VR experience in a game that knows nothing about VR.
Mouse from the controller
Independently of head tracking, you can point, click and drag the real Windows cursor with a controller's laser and trigger โ enough to manage the game and the desktop without lifting the headset.
๐ Three ways to get depth
Depth is what separates a flat screen floating in VR from a volumetric picture. Pick whichever your game can give you.
ReShade native depth
Reads the game's own depth buffer. Sharpest result, costs almost nothing to run, needs ReShade installed.
AI 3D depth
A neural network infers depth from the picture. No setup, works with any game or video, costs GPU time.
Stereoscopic SBS / TAB
The source already renders two views. FlatVR just splits the frame and routes each half to the right eye.
Whichever depth source you use, the picture is then turned into a stereo pair by the FlatVR 3D warp, or by simple parallax if you prefer the cheaper path.
๐ค AI 3D depth
A real-time neural network calculates a depth map of the scene and the picture is stretched according to it. Ordinary 2D games, YouTube videos and films become a volumetric 3D experience with real depth perception inside the headset โ with nothing to install and no per-game setup.
AI depth mode requires none of the ReShade setup below. It guesses depth from the picture rather than reading it โ softer at edges and more expensive to run, but it works in every game.
๐ฎ ReShade native depth
FlatVR can build its 3D from the game's own depth buffer instead of guessing it with the AI model. That is sharper and costs almost nothing to run, but it needs ReShade and the small add-on that ships with FlatVR.
Three things have to be true. Each of them fails silently on its own, so if you get a flat picture, work down this list in order.
Install ReShade โ the add-on build
ReShade is not included with FlatVR. Download it yourself from reshade.me โ the button on the tab opens the page. Run the installer, point it at your game's .exe, and pick the API the game uses, usually DirectX 11 or DirectX 12.
You do not need any effect packages. The add-on reads the depth buffer directly rather than using effects โ installing shaders is fine, just not required.
You need the one with add-on support. The plain build cannot load add-ons at all โ not ours, not any โ and when you use it, nothing appears to happen and nothing explains why. This is the single most common reason this feature does not work.
Put the add-on next to the game
Press Install ReShade & Addonโฆ on the tab, then Copy Addon to Gameโฆ, and pick your game's .exe. That is all it does: it copies FlatVR_DepthProvider.addon64 into the folder the .exe lives in. You can do it by hand from flatvr\reshade_addon if you prefer. Replace the old file if asked.
Let ReShade find the depth buffer
Start the game, press Home to open ReShade's menu, go to the Add-ons tab and find Generic Depth.
a) Tick โCopy depth buffer before clear operationsโ. It is off by default, and a great many games hand ReShade an empty depth buffer without it โ ReShade's own note under that box reads โEnable this when the depth buffer is emptyโ. FlatVR offers to set this for you when it copies the add-on; if you said no then, this is the box. Changing it needs a game restart to take effect.
b) Pick the right buffer from the list. Each line is a depth buffer the game drew into, with a resolution and a vertex count.
- The one you want has a vertex count in the millions.
- Its shape should match your screen's, roughly 16:9.
- With DLSS, FSR or XeSS on, the resolution can be far smaller than your screen โ
1280ร720, even640ร360โ and still be the right one. Go by the vertex count, not the size. - Ignore square buffers such as
1024ร1024or2048ร2048. Those are shadow maps.
Our add-on appears at the bottom of the Add-ons list as FlatVR Depth Provider. It picks up whatever Generic Depth selected; there is nothing to configure on it.
Leave the game through its own menu rather than killing it, and ReShade writes both choices into ReShade.ini for next time.
Settings
When it is not working
FlatVR names which of the three steps is missing rather than leaving you to guess. The same messages appear on the panel and on the in-VR overlay, so you do not have to take the headset off to read them.
| Message | What it means |
|---|---|
| DEPTH MAP NOT FOUND across the bottom of the picture | ReShade is sending the picture but no depth. That is step 3 โ either the checkbox in (a), or no buffer selected in (b). |
| No picture from the ReShade addon | Nothing is arriving at all. That is step 1 โ the plain build instead of the add-on build โ or step 2, the file not being next to the .exe. |
| No ReShade banner when the game starts | ReShade did not install into this game. Run its installer again and check the .exe and the API. |
About the add-on
FlatVR_DepthProvider is open source, and it has to be: it reads a structure belonging to ReShade's own Generic Depth add-on, so a future ReShade release can change that structure underneath it. When that happens the add-on shuts its depth path down rather than misbehaving inside your game, writes a line into ReShade's log, and FlatVR shows DEPTH MAP NOT FOUND.
๐ถ๏ธ FlatVR 3D โ the stereo warp
FlatVR 3D converts a depth map into a complete stereo pair calibrated to your real screen size and eye distance. It works with any depth source โ AI or ReShade โ and needs no external wrappers or proprietary shaders.
If you would rather not use the warp at all, Native (Simple Parallax) under Image Processing is the cheaper path โ a straight shift with no occlusion search.
๐ Stereoscopic 3D (SBS / TAB)
This mode supports stereoscopic wrappers and shaders that split the game screen to produce a native 3D image. The wrapper renders two camera views into one window; FlatVR cuts that window in half in real time and sends each half to the matching eye panel in your headset. The result is true two-camera stereo โ considerably better than any reconstruction from a depth map.
Supported input formats
The same SBS and TAB formats are what AR glasses โ Xreal, Rokid, Viture โ expect as input, so this is also the path for playing on glasses rather than a headset.
โจ๏ธ Hotkeys
| Key | Action |
|---|---|
| F5 | Take screenshot |
| F7 | Reset center โ recentres the screen in front of you |
| F8 | Toggle head-locked mode |
| F10 | Toggle the overlay |
| Home | Open the ReShade menu, in-game (ReShade's own key) |
All of these can also be bound to VR controller buttons. A controller binding takes a hold time โ Reset Center ships at 400 ms โ so a brush of the thumb cannot set it off. F7 stays instant whatever the hold time says, so there is always a way back to a centred screen.
Ready to try it? ๐ฎ
Download FlatVR and run it with the game you're playing right now. Free, no account needed.