Capture a side-by-side stereo source (game, video player, Katanga producer) and re-present it as true frame-sequential NVIDIA 3D Vision output via NV3DLib. No DLL injection into the captured app; runs as a standalone .exe with an ImGui control panel.
- Windows 10 1903+ / Windows 11 (WGC capture)
- NVIDIA GPU with the legacy 3D Vision driver installed. The driver works on any NVIDIA GPU and any current display-driver version - it's installed alongside your main driver, not bundled into it. See 3DVision4All / Native install for step-by-step instructions.
- A 3D Vision-certified display (120 Hz panel + IR emitter) configured as a 3D Vision target in NVCP
- "Set up stereoscopic 3D" enabled in the NVIDIA Control Panel
- For source: any windowed app that already produces side-by-side stereo (one frame split into left half / right half), or a katanga (full-SbS) producer (see the Geo-11 example below)
Download the latest pre-release from the
Releases page, unzip, and run NV3D-Glass.exe. The
binary is self-contained - no installer.
- Launch
NV3D-Glass.exe. The control panel opens. - Capture Source - pick
Window, choose the SbS-producing app from the dropdown. Or pickMonitorto capture a whole display, orKatangato receive from a Geo-11/Katanga producer over the shared-memory channel. - 3D Vision Output - leave
(auto)to let NV3DLib pick the 3D-Vision-certified display, or pick one explicitly. - Click Start. The control panel minimises and a click-through FSE popup appears on the 3D Vision display. Put on the shutter glasses; you should see stereo separation.
- Click the taskbar icon (or right-click the tray icon -> Show panel) to bring the control panel back. Press Ctrl+F8 to hide / re-show the 3D output without stopping. Click Stop to tear down the 3D output cleanly.
| Hotkey | Action |
|---|---|
| Ctrl+F8 | Show / hide the 3D Vision FSE window (also kills/spawns the focus watcher) |
| Shift+F8 | Toggle eye-swap (reverses left/right; ~300 ms FSE blink while the presenter restarts) |
Both are global - they fire even when the captured game has foreground.
Right-click the system tray icon for: Show/Hide panel, Start/Stop, Quit. Double-click toggles panel visibility. Closing the panel with the X button quits the app (and tears down the FSE popup cleanly).
NV3D-Glass.ini(next to the .exe) - picked source, output monitor, eye-swap, LightBoost / Driver Fix toggles, force-full-capture-Hz toggles, cursor lock / 3D cursor settings, hotkey bindings, panel geometry.NV3D-Glass.log(next to the .exe) - all[NV3D]messages from the presenter + suppressor + LightBoost subsystems, plus app-level start/stop/shutdown checkpoints. First file to attach when reporting an issue.
-
LightBoost (control panel toggle): applies the custom display timing from NV3DLib's embedded nvtimings DB for low-persistence shutter-friendly backlight strobing. Disabled if your panel isn't in the DB or already matches.
-
3DVision Driver Fix (control panel toggle): in-process hooks that suppress the legacy 3D Vision driver's OSD warnings, depth adjustment, and the rating/info overlay. Turn off if you suspect the hooks are interacting badly with another tool.
-
Click-through FSE popup: the 3D output window is
WS_EX_LAYERED | WS_EX_TRANSPARENT- mouse clicks pass through to whatever is underneath, so you can interact with the captured game without alt-tab. -
Force full capture Hz (control panel toggles, shown for Window / Monitor / Katanga sources): some games drop to a few fps when the mouse is idle and the 3D popup fully occludes them - WGC because DWM stops compositing the hidden source, and/or because Windows throttles the occluded game. Both toggles opt the game out of Windows power throttling and then keep it awake at ~120 Hz. Leave both off unless a source runs at a few fps hands-off, then enable whichever works for that game (or both). Only active while the 3D output is showing.
- Cursor jiggle (
force_full_capture_hz): nudges the cursor +1/-1 px (no net movement) each tick to force DWM to keep compositing. This is the one that fixes the WGC floor, but the global cursor events can make a raw-input game's camera shimmer. - Game poke (
force_capture_hz_postmsg): posts a same-positionWM_MOUSEMOVEstraight to the game window to keep its render loop pumping. Gentler (no global cursor motion) and more portable, but only helps games that idle on lack of input - not the WGC compositing floor.
- Cursor jiggle (
-
Lock cursor to captured window (control panel toggle): while the 3D output is showing, clips the mouse to the focused window's client area so mouse-look games don't let the pointer wander onto the desktop or another monitor. The clip region follows whichever external window has focus, so alt+tabbing updates it - and focusing the control panel or the desktop frees the pointer, so it can never trap you. Only active while the FSE popup is visible; released on Stop / hide (Ctrl+F8) / quit.
-
Draw 3D cursor (control panel toggle): draws a folded stereo arrow pointer into the 3D output at the mouse's position within the captured content. Because the captured frame never contains the OS cursor, this is the only pointer the 3D view can show.
Cursor depthsets its parallax (0 = screen plane; +/- pushes it behind / in front), andCursor sizesets its height in pixels. -
Monitor capture caveat: if you pick the same monitor as both source and output, the app refuses to start (would feed back into itself). Use Window capture instead, or pick a different display.
-
Geo-11 setup (for the
Katangasource mode): configure your Geo-11 install to publish over the shared-memory channel NV3D-Glass listens on by setting the following ind3dxdm.ini:direct_mode = katanga_vr upscaling = 0
Requires Visual Studio 2022 with the Desktop development with C++ workload (v143 toolset, Windows 10 SDK).
git clone --recurse-submodules https://github.com/oneup03/NV3D-Glass.git
cd NV3D-Glass
.\tools\build.ps1tools/build.ps1 locates MSBuild via vswhere (no Developer Command
Prompt needed) and builds the default Release-MT|x64. The vcxproj's
PreBuildEvent builds NV3DLib first (lib only, samples skipped). Pass
-Configuration Debug-MT / -Target Rebuild / etc. for other variants.
Output: bin\x64\Release-MT\NV3D-Glass.exe.
In VS Code: open the folder, then Ctrl+Shift+B runs the default build task (Release-MT|x64). F5 launches the built .exe under the Visual Studio debugger.
LGPL-2.1-or-later. See SPDX headers on individual source files and the
LICENSE file at the repo root.
- NV3DLib - the 3D Vision presenter
- SR-Loom - reference structure for the standalone-app shell + WGC perf patterns
- Katanga - defines the shared-memory
producer/consumer protocol our
Katangasource mode implements - Geo-11 — modern producer for the Katanga protocol; we consume what it publishes
- VRScreenCap - prior art for the Katanga shared-memory consumer pattern
- Dear ImGui - control panel UI