- OpenVR Driver that can render in SbS or TaB 3D with other formats converted to through ReShade
- Compatible games play great with a XInput controller. No motion controls required!
- VRto3D itself does not "fix" games for 3D, but it allows you to run VR modded (fixed) games on a 3D Display
- Supports User Profiles for individual games
- Provides HMD Pitch and Yaw emulation for games that require it
- Currently targeting OpenVR 2.5.1.
- Windows-only solution currently, but there are other solutions on Linux like Monado XR.
- Check out the video guide here (there are 2 parts):
- 3D TVs & Projectors - work great, use Base Installation in SbS/TaB mode or potentially Frame Packing instructions
- Passive/Interlaced 3D displays - work great, use Interlaced instructions
- AR Glasses (Rokid, Xreal, Viture, RayNeo) - work great, use Base Installation instructions. If you don't have a USBC port with DP-Alt mode on your PC, they require a compatible adapter - choose one with SBS and audio support. A USBC extension is also recommended. VertoXR can be used for 3DoF
- Lume Pad - works great, use Base Installation instructions, requires Sunshine/Gamestream + Moonlight
- SR Displays (Acer Spatial Labs / Asus Spatial Vision / Samsung Odyssey 3D) - work great, use SR Displays instructions
- 3D Vision/Frame Sequential - works well, use Frame Sequential instructions
- Virtual Desktop with a VR headset - works with additional setup
Checkout the Compatibility List to see if a game has been tested
- Adjust Depth (Separation) with
Ctrl + F3andCtrl + F4- Synchronize the convergence setting by also holding
Shift- this often has issues in VR mods
- Synchronize the convergence setting by also holding
- Adjust Convergence with
Ctrl + F5andCtrl + F6- this often has issues in VR mods - Save all current settings (ones indicated with a
"+"under Configuration) as a profile for the currently running game withCtrl + F7A beep will indicate success - Reload the profile settings (ones with a
"+") from the current game'sgame.exe_config.jsonwithCtrl + F10A beep will indicate success - Reload the profile settings (ones with a
"+") fromdefault_config.jsonwithCtrl + Shift + F10A beep will indicate success - Toggle locking the SteamVR Headset Window to the foreground and focusing the game window with
Ctrl + F8- This also works with WibbleWobbleReshade active
- Adjust HMD position and yaw origin with
Ctrl + Home/Endfor Y,Ctrl + Delete/PageDownfor X,Ctrl + Insert/PageUpfor Yaw, andCtrl + Shift + PageUp/PageDownfor Height- Save
hmd_height, hmd_x, hmd_y, hmd_yawusingCtrl + F9 - This is useful if you want to align the HMD to a lighthouse tracked position
- Save
- Check the Controls section and the Configuration table below to setup HMD camera controls for VR games (check the compatibility list to see if they are needed)
- Check the User Presets section for instructions on setting up your own Depth/Separation and Convergence presets and also reference the Configuration table below
- When Pitch/Yaw emulation is enabled, you can adjust the ctrl_sensitivity with
Ctrl -andCtrl +and the pitch_radius withCtrl [andCtrl ] - Toggle Auto Depth listener off/on with
Ctrl + F11(only works with VR mods that support it) - Attempt to take a SbS Screenshot with
Ctrl + F12(doesn't always work)
- VRto3D has to be installed and SteamVR launched once for this config file to show up
- Modify the
Documents\My Games\vrto3d\default_config.jsonfor your setup - Some changes made to this configuration require a restart of SteamVR to take effect
- Fields with a
"+"next to them will be saved to a game's profile when you pressCtrl + F7and can be reloaded from either the game's profile usingCtrl + F10or thedefault_config.jsonusingCtrl + Shift + F10 - Reference Virtual-Key Code strings for user hotkeys
- Reference Profile Creation Steps for creating a game-specific profile
| Field Name | Type | Description | Default Value |
|---|---|---|---|
window_width |
int |
The width of the application window | 1920 |
window_height |
int |
The height of the application window | 1080 |
render_width |
int |
The width to render per eye (can be higher or lower than the application window) | 1920 |
render_height |
int |
The height to render per eye (can be higher or lower than the application window) | 1080 |
hmd_height + |
float |
The height/Z position origin of the simulated HMD | 1.0 |
hmd_x |
float |
The X position origin of the simulated HMD | 0.0 |
hmd_y |
float |
The y position origin of the simulated HMD | 0.0 |
hmd_yaw |
float |
The yaw attitude of the simulated HMD | 0.0 |
aspect_ratio |
float |
The aspect ratio used to calculate vertical FoV | 1.77778 |
fov + |
float |
The horizontal field of view (FoV) for the VR rendering | 90.0 |
depth + |
float |
The max separation. Overrides VR's IPD field | 0.4 |
convergence + |
float |
Where the left and right images converge. Adjusts frustum | 4.0 |
async_enable + |
bool |
Whether or not to use Asynchronous Reprojection. May improve or worsen smoothness | false |
disable_hotkeys |
bool |
Disable Depth & Convergence adjustment hotkeys to avoid conflict with other 3D mods | false |
tab_enable |
bool |
Enable or disable top-and-bottom (TaB/OU) 3D output (Side by Side is default) | false |
framepack_offset |
int |
Pixel gap between left and right views in TaB mode. Use for framepacking/HDMI 3D | 0 |
reverse_enable |
bool |
Enable or disable reversed 3D output | false |
vd_fsbs_hack |
bool |
Enable or disable half height Full-SbS for Virtual Desktop | false |
dash_enable |
bool |
Enable or disable SteamVR Dashboard and Home | false |
auto_focus |
bool |
Enable or disable automatic focusing/bringing VRto3D or WibbleWobble to foreground | true |
display_latency |
float |
The display latency in seconds | 0.011 |
display_frequency |
float |
The display refresh rate per-eye, in Hz | 60.0 |
pitch_enable + |
bool |
Enables or disables Controller right stick y-axis mapped to HMD Pitch | false |
yaw_enable + |
bool |
Enables or disables Controller right stick x-axis mapped to HMD Yaw | false |
use_open_track |
bool |
Enables or disables OpenTrack 3DoF HMD Control | false |
open_track_port |
int |
UDP Port for OpenTrack | 4242 |
pose_reset_key + |
string |
The Virtual-Key Code to reset the HMD position and orientation | "VK_NUMPAD7" |
ctrl_toggle_key + |
string |
The Virtual-Key Code to toggle Pitch and Yaw emulation on/off when they are enabled | "XINPUT_GAMEPAD_RIGHT_THUMB" |
ctrl_toggle_type + |
string |
The ctrl_toggle_key's behavior ("toggle" "hold") | "toggle" |
pitch_radius + |
float |
Radius of curvature for the HMD to pitch along. Useful in 3rd person VR games | 0.0 |
ctrl_deadzone + |
float |
Controller Deadzone when using pitch or yaw emulation | 0.05 |
ctrl_sensitivity + |
float |
Controller Sensitivity when using pitch or yaw emulation | 1.0 |
user_load_key + |
string |
The Virtual-Key Code to load user preset | "VK_NUMPAD1" |
user_store_key + |
string |
The Virtual-Key Code to store user preset temporarily | "VK_NUMPAD4" |
user_key_type + |
string |
The store key's behavior ("switch" "toggle" "hold") | "switch" |
user_depth + |
float |
The separation value for a user preset | 0.4 |
user_convergence + |
float |
The convergence value for a user preset | 4.0 |
- A Single Display configuration is recommended, but you can also use a multi-display configuration if desired
- Install SteamVR
- Download the latest VRto3D release and copy the
vrto3dfolder to yourSteam\steamapps\common\SteamVR\driversfolder - Launch SteamVR once to generate the
default_config.jsonand you should see a 1080p SbSHeadset Window - Close SteamVR
- Edit the
Documents\My Games\vrto3d\default_config.jsonas needed - see what each setting does- Set your window resolution to match your fullscreen resolution (i.e. 3840x1080 for Full-SbS or 1920x1080 for Half-SbS)
- Your 3D display MUST BE YOUR PRIMARY DISPLAY, and the window resolution MUST MATCH your full desktop resolution to avoid issues
- Set your render resolution per eye to what you want - can save some performance by reducing this. If your display is half-SbS or half-TaB, then you can try setting this to that half-resolution
- Configure any
Virtual-Key Codesettings to use keys that you want (especiallyuser_load_keyssettings as these load a defined depth+convergence preset)
- Set your window resolution to match your fullscreen resolution (i.e. 3840x1080 for Full-SbS or 1920x1080 for Half-SbS)
- Download the latest VRto3D profiles for games and extract them to your
Documents\My Games\vrto3d\folder - Run SteamVR to verify that you see the Headset window covering your entire display. This is usually not needed before running games.
- The Headset window must be on your primary 3D display
- Dismiss Headset Notice about
Enable Direct Display Modeas this does nothing
- Try launching a VR game
- Keyboard and Mouse are usable, but you may run into issues with accidentally clicking the wrong window or the cursor escaping the game window if the game's mouse control is coded poorly
- Can try using AutoCursorLock if the mouse keeps escaping
- Make the game run in windowed mode either in-game settings or with
Alt + EnterThis will alleviate controller input and fullscreen issues - If needed, press
Ctrl + F8to lock the 3D window to the foreground and focus the game window- This is automated by default with the
auto_focussetting when a VRto3D profile exists for the game
- This is automated by default with the
- If game controls & audio aren't working, use
Alt + Tabto switch to the game window - To quit, exit the game and try to
Alt + Tabout- If the 3D window remains in the foreground, press
Ctrl + F8to toggle the foregrounding off, and thenAlt + Tabout
- If the 3D window remains in the foreground, press
- Keyboard and Mouse are usable, but make sure the mouse is captured by the 2D game's window
- Make sure you set your displays to EXTENDED MODE or this will not work
- Move all windows besides the
Headset Windowover to your second display- Some games provide the option to change which display to use - this is preferred over the options below
- Can use mouse to drag over
- Can use Windows shortcut keys to move windowed programs around
Win + Left/Right - Can use Windows shortcut keys to move fullscreen programs and the SteamVR Headset Window around
Shift + Win + Left/Right - May need to make the game windowed either in-game settings or with
Alt + Enter
- Complete the Base Installation section
- Optionally set
tab_enableto true inDocuments\My Games\vrto3d\default_config.jsonif you prefer to lose half vertical resolution instead of half horizontal resolution- If using interlaced mode, you want SbS for Column Interlaced and TaB for Row/Line Interlaced
- Download the latest ReShade with full add-on support
- Run the ReShade installer
- Browse to to your
Steam\steamapps\common\SteamVR\bin\win64folder - Select
vrserver.exeand click Next - Select
DirectX 11and click Next - Click
Uncheck Alland click Next, Next, Finish
- Browse to to your
- Download 3DToElse.fx and save it to
Steam\steamapps\common\SteamVR\bin\win64\reshade-shaders\Shaders - Run SteamVR
- Press
Hometo open ReShade and clickSkip Tutorial - Select
To_Elsein the menu to enable 3DToElse - Disable ReShade's
Performance Modecheckbox - Change 3DToElse settings:
- Set
Stereoscopic Mode InputtoSide by Side(orTop and Bottomif you settab_enableabove) - Set
3D Display Modeto the type needed for your display (even anaglyph) Eye Swapcan be toggled if needed- Don't touch
Perspective Slider
- Set
- Enable ReShade's
Performance Modecheckbox - Once configuration is complete, you can run everything the same way as the Base Installation
- If settings don't save, you may have to manually edit
Steam\steamapps\common\SteamVR\bin\win64\ReShade.iniand disable Tutorial withTutorialProgress=4
- Complete the Base Installation section
- In
Documents\My Games\vrto3d\default_config.jsonset these settings:window_widthto1920or1280depending on your desktop resolutionwindow_heightto2205or1470depending on your desktop resolutiontab_enableto trueframepack_offsetto45for 1920x2205 or30for 1280x1470 (this may vary by display)
- More instructions and discussion are in this forum
- Create one of these Custom Resolutions in Nvidia Control Panel or CRU:
- frame_packed_720p : resolution 1280x1470, 60Hz
- horizontal: 1280 active; 110 front, 40 sync, 220 back (1650 total)
- vertical: 1470 active; 5 front, 5 sync, 20 back (1500 total)
- frame_packed_1080p : resolution 1920x2205, 24Hz/60Hz
- horizontal: 1920 active; 638 front, 44 sync, 148 back (2750 total)
- vertical: 2205 active; 4 front, 5 sync, 36 back (2250 total)
- May need to use CVT reduced blank specs for success with 1080 60Hz, but 60Hz is not standard and may not work at all
- horizontal: 1920 active; 48 front, 32 sync, 80 back (2080 total)
- vertical: 2205 active; 4 front, 5 sync, 36 back (2250 total)
- It may be necessary to remove other resolutions with CRU to avoid games changing the resolution. Hopefully running them in windowed mode (required for VRto3D) will prevent issues though
- If you don't need VRto3D features (User Hotkeys, Per-Game Profiles, Pitch/Yaw Emulation, etc) and XRGameBridge is more stable, that may be preferable to use instead of VRto3D for games/mods with OpenXR support
- SR displays work in either Multi or Single Display environments
- For both, read the Base Installation configuration and usage instructions to ensure that you get a proper 3D image and can control the game
- Complete the Base Installation section
- Install the software package provided with your SR display, if yours did not come with one, install the
SR-VERSION-win64.exeandsimulatedreality-VERSION-win64-Release.exefrom the LeiaInc Github - Download the latest ReShade with full add-on support
- Run the ReShade installer
- Browse to to your
Steam\steamapps\common\SteamVR\bin\win64folder - Select
vrserver.exeand click Next - Select
DirectX 11and click Next - Click
Uncheck Alland click Next - Select
3DGameBridge by Janthony & DinnerBramand click Next - Click Finish
- Browse to to your
- Run SteamVR
- Press
Hometo open ReShade and clickSkip Tutorial - Click on the
Add-Onstab - Select
srReshadein the menu to enable it- Expand the srReshade dropdown and if you get a
Status: Inactive - Unable to load all SR DLLsthen you need to install the SR Runtime + SDK from Leia's Github above - 3D can be toggled on and off by using srReshade's
Ctrl + 2hotkey
- Expand the srReshade dropdown and if you get a
- Click on the
Hometab- Enable ReShade's
Performance Modecheckbox
- Enable ReShade's
- Once configuration is complete, you can run everything the same way as the Base Installation
- If settings don't save, you may have to manually edit
Steam\steamapps\common\SteamVR\bin\win64\ReShade.iniand disable Tutorial withTutorialProgress=4 - If you experience a super dark screen, try enabling a random ReShade shader
- Using WibbleWobble is at your own risk to your monitor/emitter/glasses. It works well but is unofficial
- WibbleWobble works with 3DVision, Open3DOLED, and several DIY hardware solutions
- WibbleWobble Hotkeys may not work on non-english keyboard layouts
- If you don't need VRto3D features (User Hotkeys, Per-Game Profiles, Pitch/Yaw Emulation, etc) it will be easier to use the WibbleWobbleVR plugin directly
- 3DVision installation detailed below. Other configurations can still follow the WibbleWobble Reshade Add-On instructions but will need to check the WibbleWobble GitHub for other WibbleWobble Settings
- Complete the Base Installation section and modify these VRto3D settings in
Documents\My Games\vrto3d\default_config.json:- Set the Render Resolution to match your Fullscreen Resolution or something lower for performance
- Set the
window_widthto 2x yourrender_width(i.e. 3840x1080 for 1920x1080 per-eye)- This sometimes causes SteamVR to crash. If you want more stability and are ok with half-width, you can set
window_widthandwindow_heightto your desktop resolution
- This sometimes causes SteamVR to crash. If you want more stability and are ok with half-width, you can set
- Leave it in the default SBS display mode
- May need to test and see if
async_enableprovides better performance - If you decide to target 100Hz refresh rate (recommended for performance/stability), set
display_frequencyto50.0- If using
async_enable, you may want to set this value to x1.5 your target refresh rate (i.e.75.0for50.0)
- If using
- Use 3D Fix Manager to install the 3D Vision Driver
- If the emitter driver didn't install, browse to the place you installed the manager and run the
Drivers\3DVisionControllerDriver\3dvisioncontrollerdriver.exe
- If the emitter driver didn't install, browse to the place you installed the manager and run the
- Download the latest WibbleWobble Release and extract it somewhere without spaces in the path like
C:\ - Under the
WibbleWobbleClientfolder, runRegister.batas an administrator and replyYesif prompted - Under the
WWReshadeAddon\Reshadefolder, run the included ReShade Setup- Browse to to your
Steam\steamapps\common\SteamVR\bin\win64folder - Select
vrserver.exeand click Next - Select
DirectX 11and click Next - Click
Uncheck Alland click Next, Next, Finish
- Browse to to your
- Under the
WWReshadeAddon\Release\x64folder, copy all files to yourSteam\steamapps\common\SteamVR\bin\win64folder - Check if there is a WibbleWobble.zip folder you can download from here and extract to
%APPDATA%\..\LocalLow\PHARTGAMES\- If one is available for your monitor, you can skip CRU, NVTimingsEd, and WibbleWobble Config steps below
- Download the latest CRU Release and save it to your WibbleWobble folder
- Run
CRU.exeand grant it admin- Take note of your monitor's EDID (first 7 characters in the dropdown list)
- Exit CRU
- Download the latest NvTimingsEd Release and save it to your WibbleWobble folder
- Run
NvTimingsEd.exeand grant it admin- From the drop down list, select your monitor's EDID you got from CRU (AUS_27B1 for Asus PG278QR for example)
- Choose your target refresh rate / framerate you want to run 3D at
- Click
Editbut don't change anything - Copy the nearest integer refresh rate for WibbleWobble's
Sync Rate HZ - Copy the
Xvalue for WibbleWobble'sOpen Delay Microseconds - Copy the
Yvalue for WibbleWobble'sOpen Duration Microseconds - Copy the
Wvalue for WibbleWobble'sW
- Open Nvidia Control Panel
- Under
Manage 3D Settingstab:- Set
Low Latency ModetoUltra - Set
Max Frame Rateto match your target refresh rate - Set
Power Management ModetoPrefer Maximum Performance - Set
Vertical SynctoUse the 3D application setting
- Set
- Under
Set up G-Synctab, uncheckEnable G-Syncand clickApply - Under
Set up stereoscopic 3Dtab, uncheckEnable stereoscopic 3Dand clickApply - Activate LightBoost using one of these 3 options:
- Monitor OSD has LightBoost option:
- Under the
Change Resolutiontab, set your targetRefresh Rateand clickApply - Activate LightBoost in the monitor OSD
- Under the
- NVidia Custom Resolution:
- If your monitor has a WibbleWobble profile, you can match the settings from the images here
- Open the
Change Resolutiontab - Select
Customize - Check
Enable resolutions not exposed by the displayand clickCreate Custom Resolution - The Horizontal Pixels and Vertical Lines should be the same as your monitor's native resolution
- Set the
Refresh Rate (Hz)to the sameRefresh Rateas NvTimingsEd (nearest integer) - Change Timing
StandardtoManual - Increase the
Vertical Total Pixelsvalue by+5and clickTest - If the Test is successful (Your monitor should switch to LightBoost mode), click
Yesand thenOK - Select your new
CustomResolution and correspondingRefresh Rateand clickApplyandYes
- ToastyX Strobelight:
- May cause monitor
Out of Rangeerrors: can try to fix using its hotkeys, but may need a second monitor or perhaps safe mode to fix - Try following the instructions on the release page
- May cause monitor
- Monitor OSD has LightBoost option:
- Under
- WibbleWobble Config
- Launch SteamVR
- Press
Shift + ENDto start WibbleWobble - Press
Shift + ENDagain to bring up the WibbleWobble menu - You have to press
Enterkey to apply any WibbleWobble setting - Press
Shift + /to (un)focus WibbleWobble (necessary to see anything else on desktop) - Select
Client Config- Set
Window Size X/Yfor your Fullscreen Resolution - Set
Source FormattoSide By Side Half - Set
ReprojectiontoDisabled - Set
DWMtoEnabled - Set
Elevate Process PrioritytoEnabled - DO NOT MODIFY Other Settings unless you are using something other than 3DVision
- Click
SaveandXto close the window
- Set
- Select
Game Config- Set
Window Size Xto be your VRto3D horizontal render resolution (i.e. 1920 for 1920x1080 per-eye) - Set
Window Size Yto be your VRto3D vertical render resolution
- Set
- DO NOT MODIFY Other Settings
- Click
SaveandXto close the window - This may crash SteamVR, just close out and try again
- Click
- Select
Emitter Config- Set
Sync Rate HZto match your nearest integer refresh rate from NvTimingsEd- If you experience eye flips, try setting this to the exact decimal value instead
- Click
Nvidia Config- Select
Enabled - Set
Open Delay Microsecondsto the NvTimingsEdXvalue - Set
Open Duration Microsecondsto the NvTimingsEdYvalue - Set
Wto the NvTimingsEdWvalue - Click
SaveandXto close the window
- Select
- Click
SaveandXto close the window
- Set
- Press
Shift + ENDto close the WibbleWobble menu - Use
Shift + /to focus/unfocus WibbleWobble when starting VR games/mods- VRto3D
Ctrl + F8hotkey will also work and should be easier to use
- VRto3D
- Use
Shift + ,to flip eye output - Close the
SteamVR Statuswindow to completely exit out of things
- Edit
Steam\steamapps\common\SteamVR\bin\win64\ReShade.iniand disable Tutorial withTutorialProgress=4andPerformanceMode=1
- Once configuration is complete, you can run everything in single display mode similar to the Base Installation
- Start SteamVR
- Press
Shift + ENDto start WibbleWobble - Press
Shift + /orCtrl + F8to unfocus WibbleWobble - Launch VR Game/Mod
- If using VRto3D
auto_focusthe WibbleWobble window should be brought to the foreground and the game window focused- If needed, press
Ctrl + F8to foreground WibbleWobble and focus the game window
- If needed, press
- If needed, use
Shift + ,to flip eye output - If controls or audio aren't working,
Alt + Tabto the game window - Mouse controls can work on a single display as long as you are clicking somewhere on the game window that is covered by WibbleWobble
- If SteamVR crashes, close everything, you may need to temporarily edit your VRto3D
window_widthto half, run SteamVR and activate WibbleWobble, close everything, then revert to full - If you get a black screen, open WibbleWobble config with
Shift + ENDand underGame ConfigsetWindow Size Xto either half or double your current setting, and then immedietely set it back to the original value. If SteamVR crashes, close everything and try again. - If you experience ghosting, try turning on your monitor's
LightboostorUltra Low Motion BlurorULMBfeature. You may have to enable 3DVision in Nvidia Control Panel for this setting to be available - If your 3D Emitter doesn't activate, try the following:
- Unplug/replug the emitter
- Toggle 3DVision On/Off
- Restart SteamVR
- If you are getting too much wobbling, try the following:
- Toggle VSync off or on in-game
- Close all other applications
- Toggling GSync On/Off
- Toggling 3DVision On/Off
- Or try rebooting
- If WibbleWobble settings are really messed up, delete your
%APPDATA%\..\LocalLow\PHARTGAMES\WibbleWobblefolder
- The primary display will be where the "Headset" window is located and should be 3D capable
- The game's main window has to be in focus for control input from your mouse/keyboard/controller to work
- SteamVR may still complain about Direct Display mode, but this can be safely dismissed
- Exiting SteamVR may "restart" Steam - this is normal
- Overlays generally won't work on this virtual HMD
- XInput controller is recommended
- SteamVR doesn't support HDR currently
- AutoHDR may work, but some games will be too dark or too bright
- DLSS, TAA, and other temporal based settings can create a halo around objects. Most VR mods have fixes for this, but some may not
- If you want to use Steam Input
- Open Steam->Settings->Controller
- Toggle on
Enable Steam Input for Xbox Controllers - Click
Editon theDesktop Layoutand then selectDisable Steam Input - On SteamVR's library page, click the
Controller Iconand selectDisable Steam Input - Generally you need to start SteamVR first and separately from the game for Steam Input to work
- This project is primarily targeted for VR mods of flatscreen games, not full VR games. As such, there is only HMD pitch & yaw emulation and no VR controller emulation
- VertoXR can be paired with VRto3D to provide 3DoF Head Tracking for popular AR glasses
- Connect AR glasses, switch to Full-SbS mode, set them as your primary display
- Open VertoXR, connect to the AR glasses
- Select
Game Mode, place glasses on a flat surface looking straight ahead, and clickStart Calibrate. Calibration may need to be redone if misalignment occurs - Edit
OpenTrack Configurationand disableEnable Rollif needed Startthe OpenTrack VertoXR plugin- Set
use_open_trackto true and ensureopen_track_portmatches the VertoXR OpenTrack port indefault_config.json
- You can setup a Lighthouse + Vive Tracker + tracked controllers with VRto3D for a seated play area. See this guide for details
- Several VR controller only games can be made to work by using Driver4VR, a paid SteamVR Vive controller emulator. Games with mainly pointer controls work ok. Games with a lot of interaction/movement don't work well.
- Optional HMD
pitch_enableandyaw_enableemulation can be turned on to help with games or mods that need it (maps to XInput right stick)- Reference Virtual-Key Code to find the strings to use for these hotkeys
- The
ctrl_toggle_keycan be set and used to toggle these settings on/off in-game (only functions ifpitch_enableand/oryaw_enableis set to true) - The
ctrl_toggle_typecan be set to either"toggle"pitch/yaw on/off or"hold"that disables them while the button is held - The
pose_reset_keycan be set to allow resetting the view to the original position and orientation - Both of these keys can be set to XInput buttons & combinations or single keyboard/mouse keys as outlined in User Presets - Load Keys below
- The
pitch_radiuscan be set to make the pitch emulation move along a semicircle instead of just tilting up/down in place. Use the Hotkeys to adjust this in-game
- OpenTrack 3DoF support is available over UDP loopback at the configured
open_track_portwhenuse_open_trackis true. It can be used in combination with Pitch/Yaw emulation
- If you swap between different convergence settings in-game, sometimes you will end up with black bars on the sides of the screen or you may not see a change immediately. If you reload/restart/reinitialize the VR mod, you should see the change
- It is recommended to use a single convergence setting for all your presets given the above issue with some VR mods
- Create any number of user depth/separation & convergence hotkeys in the
user_settingsarea of thedefault_config.json- A user preset looks like this:
-
{ "user_load_key": "VK_NUMPAD1", "user_store_key": "VK_NUMPAD4", "user_key_type": "switch", "user_depth": 0.4, "user_convergence": 4.0 },
- A Load key and a Store key can be configured to load and save Depth/Separation and Convergence settings for a preset
- Load keys can use XInput buttons & combinations as well as single keyboard/mouse keys
- The Guide button can be used, but not in combinations
- XInput Combinations can be set like this
"XINPUT_GAMEPAD_A+XINPUT_GAMEPAD_B"
- Store keys can only use single keyboard/mouse keys
- Reference Virtual-Key Code to find the strings to use for these hotkeys
- Load keys can use XInput buttons & combinations as well as single keyboard/mouse keys
- The Load key can be configured to
"switch"to the user depth/separation & convergence setting,"toggle"between the preset and the previous setting every 1.5s, or"hold"the user setting until the key is released - The Store key will update your user Depth/Separation and Convergence setting to the current value (this only saves while the game is running - you need to create a game profile as detailed below to store it permanently)
- It is recommended to have a single user preset of
"switch"type that matches the default depth/separation & convergence so you can easily get back to the default
- Modify or copy and create user preset(s) in
default_config.json(or preferably in theGame.exe_config.jsonif one already exists) for the game you want to play - If applicable, modify
hmd_height, fov, pitch_enable, yaw_enable, pose_reset_key, ctrl_toggle_key, ctrl_toggle_type, pitch_radius, ctrl_deadzone, ctrl_sensitivityfor the game profile - If the game is already running, use
Ctrl + Shift + F10to reload thedefault_config.json(orCtrl + F10to reload theGame.exe_config.json) with your new settings and presets - Adjust depth/separation (
Ctrl + F3andCtrl + F4with+ shiftif possible) & convergence (Ctrl + F5andCtrl + F6) for a preset - Use the configured
user_store_keyto temporarily save the current depth/separation & convergence values to the preset - Repeat 4 & 5 for each preset you need
- Adjust depth/separation & convergence back to what you want the default to be (if you have a default
"switch"preset, you can use its configureduser_load_key) - If applicable, adjust the
ctrl_sensitivitywithCtrl -andCtrl +and thepitch_radiuswithCtrl [andCtrl ] - Save the profile with
Ctrl + F7 - Open your new profile from
Documents\My Games\vrto3din a text editor and make final adjustments like: making all the convergence values match to avoid rendering or performance issues, changing virtual-key mappings, or tweaking other values/settings - Close out of SteamVR and the game and restart the game. You should hear a loud beep to indicate the profile loaded. Test the profile and you can still make any adjustments per above instructions
- Share your
Documents\My Games\vrto3d\Game.exe_config.jsonwith others
- If you set the Window Resolution to anything above your desktop resolution, SteamVR won't start
- If SteamVR crashes and disables add-ons, you will need to re-enable VRto3D in the SteamVR Status window
- The first thing to try is deleting your
Steam\config\steamvr.vrsettingsandDocuments\My Games\vrto3d\default_config.json - If you have used other SteamVR drivers that also create a virtual HMD, you will need to disable and/or uninstall them
- Run SteamVR
- On the SteamVR Status window, go to
Menu -> Settings - Change to the
Startup / Shutdowntab - Click
Manage Add-Ons - Turn
Offany virtual HMD drivers (ALVR, VRidge, OpenTrack, VCR, iVRy, etc) - if issues still arise, try a Clean SteamVR Install and delete your
Steam\steamapps\common\SteamVRfolder
- Conversely, to uninstall or disable VRto3D, you can disable it under the same
Manage Add-Onsmenu or delete thevrto3dfolder from yourSteam\steamapps\common\SteamVR\driversfolder - If you have a VR headset and run into issues with this driver, here's some things to try:
- Disconnect VR headset from computer
- Clean SteamVR Install
- Set SteamVR as OpenXR Runtime
- Clone the code and initialize submodules
- Define
STEAM_PATHenvironment variable with the path to your main Steam folder - Open Solution in Visual Studio 2022
- Use the solution to build this driver
- Build output is automatically copied to your
SteamVR\driversfolder