Experimental support for Oculus Rift DK1 is available in the 1.9.x+ patches, support for DK2 and CV1 is available in the oculus
beta branch on Steam. Currently the support is available only in the Windows versions of the game. The oculus
beta also supports OpenVR API so it can be used with HTC Vive.
If you are using a DK2 or CV1 you should be using the Oculus API instead of the OpenVR.Used SDKs
- The normal version supports Oculus Rift DK1 using 0.2.5 version of the SDK.
- The oculus beta supports DK2 using 1.3.0 version of the SDK.
- The oculus_07 beta supports DK2 using 0.7.0 version of the SDK. Note that this version is obsolete and will be eventually discontinued.
- The oculus_06 beta supports DK2 using 0.6.0 version of the SDK. Note that this version is obsolete and will be eventually discontinued.
Limitations and known issues
- The game expects that there is a default OVR user profile which has proper IPD and that magnetic calibration was done in the configuration tool for DK1.
- In case of the normal version the display mode must be set to the "Extend Desktop to the HMD" mode and the display must be configured to "Portrait" orientation in Windows. For oculus_07/oculus_06 the display mode should be set to "Direct HMD Access from Apps".
- A really fast GPU and CPU is recommended.
How to enableOculus
- The versions from oculus/oculus_07/oculus_06 betas requires support DX9Ex mode (Windows Vista+) and currently does not support OpenGL.
- The versions from oculus/oculus_07/oculus_06 betas are not compatible with SLI and will experience flickering if it is enabled.
- The versions from oculus/oculus_07/oculus_06 betas have very early support for head tracking in the UI which has some issues such as incorrect fadeouts or strange looking PIP images of trucks.
- The game is currently not marked as VR capable on Steam so the Steam client will show warning when launching the game.
- Only some parts of the menu have 3d background
- The head orientation and position is currently used only by the interior camera
- There might be distortions when using some menu screens in 3d mode or when switching the 3d mode of the menu in some situations.
- The advisor was moved to the bottom center of the screen when Oculus is used however no other optimizations were done.
- The game does not reset the orientation/position when entering truck so you will have to do that manually by pressing F12.
- The default reset key F12 coincides with the default Steam screenshot key.
To enable the support, run the game with -oculus
command line parameter. For the 1.3.0+ based versions you also need to enable launching applications from Unknown Sources
in the Oculus application. This will cause the game to detect the available oculus devices, select the first one found and launch with a resolution matching the device. If no device is found, a dummy one is used.
For standard builds it is recommended to set-up your system so the oculus mirrors the primary monitor and run the game in fullscreen mode. OpenVR
To enable the support, run the game with -openvr
command line parameter. When using the game with SteamVR, you also should uncheck the "Use Desktop Game Theatre while SteamVR is active" in game properties in Steam client.Common
You might want to configure the graphics settings to use Scale of 100%, disable MLAA and DOF.Configuration
The game can show the menu in 2D or 3D positioned mode. This is toggled by the r_manual_stereo_in_menu
cvar or by F11
key. As the menu was not designed for low resolution displays, the content of many screens is unreadable. If you are using the monitor in the mirrored mode, you might want to set the game to show the menu in a 2D mode or temporarily toggle between the 2d and 3d mode using the F11
key when using the menu to do some work where text reading is required. This mode is currently of no use for DK2 because of its monitor layout.
It is possible to configure the 3D parameters of the plane on which the UI is shown using the r_manual_stereo_ui_fov*
cvars. There are two sets of the parameters. One is used in menu to provide view of all corners of the ui while the other is used when driving in game to provide better view of the advisor.
As the ui mirrors are not visible in the field of view in the default ui fov settings, it is good idea to disable them to improve performance.
The advisor is best run in the minimized transparent variant. The variants are toggled using the F3
It is possible to reset the HMD position using the F12
key. This conflicts with default Steam screenshot key so you might want change the setting in game by editing the headreset
mix in the controls.sii file for your in-game profile or use the in-game screenshot key which since 1.6 also creates corresponding Steam screenshot.
The 22.214.171.124+ builds use a limited variant of angle-dependent movement of the head from the normal game. It only keeps the window lookout and moves its start to about 85 degress. The movement can be disabled entirely by setting g_hmd_no_artifical_movement
profile cvar to 1 before starting the game.
The game reduces shaking of the cabin when HDM mode is active. This reduction can be disabled by setting g_hmd_reduced_cabin_movement
profile cvar to 0.
cvar can be used to increase size of the rendered image which is latter used as input to the distortion to improve quality. If you have powerful GPU, you might try to experiment with bigger values (e.g. 1.3) of this parameter for more clear view. It is preferred to keep the default scaling value to 100% and change this cvar instead. Alternatively you can combine increased value of this parameter with reduced values of r_scale_x/r_scale_y (set to 1/r_manual_stereo_buffer_scale) to get anti-aliasing of the UI while keeping cost of the rendering of the main scene aproximately the same.
The 126.96.36.199+ builds support a HMD-specific appearance of menu. Currently this is only used to change layout of the full-featured (with all widgets unlocked) desktop menu. Future builds are likely to tweak the menu more and improve layout of additional parts of the menu. This feature can be disabled by setting g_hmd_no_special_menu
profile cvar to 1 before starting the game.
The background truck under the menu is drawn in 3D. This might be disabled by setting g_hmd_no_3d_background
profile cvar to 1 before starting the game.
The 188.8.131.52 build allows use of controller to control the mouse pointer and provides ui to set a controller button to open the menu. When switching from the beta back to standard build of the game, the mouse cursor might stop working after you load profile which was used with the beta build. In that case you need to open the controls.sii
file for that profile and replace the `fusion.mouse`
string with `di8.mouse`
The oculus/oculus_07/oculus_06 build by default does not display any image in the application window. If you want to show undistorted content of the scene seen by the user, set o_oculus_mirror_mode
The standard builds use the Oculus movement prediction with the duration of the precision limited by per-game-profile cvars named i_oculus_min_prediction
representing the range in seconds to which to clamp the frame duration used for the prediction. The beta builds ignore the value of those parameters.
In standard build you can tweak the size of the simulated head using i_oculus_eye_height
profile cvars. Other builds take parameters from Oculus SDK.
betas support following o_oculus_independent_timewarp
cvar which controls use of independent timewarp. This feature is intended to improve apparent performance if your system is not capable to always of maintaining 75Hz by separating framerate used for timewarp from framerate of the game and should be left enabled most of the time. If you have a powerful system which is capable of running at 75Hz in your preferred settings, you might try to set it to 0. This option is not present in oculus
as the feature is implemented automatically by 1.3.0+ SDK.OpenVR only
Currently there are several modes you might try to see which works best for you. They are controlled by new cvar parameters o_openvr_independent_timewarp
Following combinations are possible
- o_openvr_independent_timewarp set to 1, o_openvr_interleaved_reproject set to 0. This mode is the default one. It tries to do "poor man" asynchronous timewarp. Note that there is still some issue which I need to investigate so it might be crashing sometimes.
- o_openvr_independent_timewarp set to 0, o_openvr_interleaved_reproject set to 0. Image is directly passed to the compositor. The compositor will try to run at 90fps and fallback to interleaved reprojection at 45fps when framerate goes low. If the game stops updating the screen for some time (e.g. during loading screen) the image will temporarily switch to the Vive room.
- o_openvr_independent_timewarp set to 0, o_openvr_interleaved_reproject set to 1. Image is directly passed to the compositor. The compositor is forced to always use the interleaved reprojection. This is probably the mode to try if your system can consistently maintain more than 45fps. If the game stops updating the screen for some time (e.g. during loading screen) the image will temporarily switch to the Vive room.