OpenVR Advanced Settings Dashboard Overlay
Clone or download

Readme.md

language dependencies license_gpl3

OpenVR Advanced Settings Overlay

Adds an overlay to the OpenVR dashboard that allows access to advanced settings.

Example Screenshot

Features

  • Set supersampling values.
  • Enable/disable asynchronous and interleaved reprojection.
  • Save supersampling and reprojection settings into profiles.
  • Change several chaperone settings not accessible via SteamVR settings (to e.g. make it completely invisible).
  • Chaperone Proximity Warning: Several warning methods can be configured.
  • Chaperone Profiles: Allows to quickly switch chaperone geometry and settings while in VR.
  • Temporarily move and rotate the playspace.
  • Floor height fix.
  • Displays several performance statistics and other statistics (e.g. headset rotations).
  • Select the playback/mirror/recording audio device
  • Mute/unmute and set volume of audio mirror device.
  • Mute/unmute and set volume of microphone device.
  • Implements push-to-talk and allows to configure push-to-talk profiles.
  • Desktop mode shows a window on the desktop instead of a vr overlay.
  • Revive settings support (Requires Revive 1.0.4+ for full functionality).
  • VR Keyboard Input Utilities
  • Simple Alarm Clock
  • Player height adjust toggle (Credits to mklim)

Usage

Installer

Download the newest installer from the release section and execute it.

If you have an older standalone version installed, delete the old application folder first.

Standalone

Download the newest standalone archive from the release section and unpack the archive.

To install for the first time simply start AdvancedSettings.exe once while SteamVRis running. It will register with SteamVR and automatically starts whenever SteamVR starts (Can be disabled in the settings).

To upgrade an existing installation first stop SteamVR and delete the old application folder (or override it). Then start SteamVR and run AdvancedSettings.exe once.

Desktop mode

Executing startdesktopmode.bat from the application folder shows a window on the desktop instead of a vr overlay. Desktop mode can be used alongside an already running vr overlay instance.

Documentation

Top Page:

Root Page

  • Supersampling Profile: Allows to apply supersampling profiles. Profiles can be created on the SteamVR page
  • Chaperone Profile: Allows to apply chaperone profiles. Profiles can be created on the Chaperone page
  • Microphone: Allows to set the microphone volume and to mute/unmute it.
  • Push-to-Talk: Enable/disable push-to-talk and allows to apply push-to-talk profiles. Profiles can be created on the Audio page.

- SteamVR Page:

SteamVR Page

  • Profile: Allows to apply/define/delete supersampling profiles that save supersampling and reprojection settings.
  • Application Supersampling: Supersampling setting for OpenVR applications/games. Application supersampling now behaves linearly where 2.0 means twice the number of pixel.
  • Compositor Render Target Multiplier: Supersampling setting for the OpenVR compositor (Requires restart). Compositor supersampling still behaves the old way where 2.0 means four-times the number of pixel.
  • Enable Advanced Supersample Filtering: Einable/disable image filtering on supersampled renderings.
  • Allow Asynchronous Reprojection: Enable/disable asynchronous reprojection.
  • Allow Interleaved Reprojection: Enable/disable interleaved reprojection.
  • Enable Always-on Reprojection: Enable/disable forced reprojection.
  • Restart SteamVR: Restart SteamVR (May crash the Steam overlay when SteamVR Home is running when you restart. Therefore I advice that you close SteamVR Home before restarting).

- Chaperone Page:

Chaperone Page

  • Profile: Allows to apply/define/delete chaperone profiles that save geometry info, style info or other chaperone settings (What exactly is saved in a chaperone profile can be selected when a profile is created).
  • Visibility: Allows to configure the visibility of the chaperone bounds. Unlike the slider in the chaperone settings, this one is not capped at 30%. When set to 0 chaperone bounds are completely invisible.
  • Fade Distance: Allows to configure the distance at which the chaperone bounds are shown. When set to 0 chaperone bounds are completely invisible.
  • Height: Allows to configure the height of the chaperone bounds.
  • Center Marker: Displays a marker that represents the center of the playspace.
  • Play Space Maker: Displays the outlines of the rectangle representing the playspace.
  • Force Bounds: Force chaperone bounds always on.
  • Proximity Warning Settings: Opens a page that allows to configure several warning methods for when the user comes too close to the chaperone bounds.
  • Flip Orientation: Flips the orientation of the play space.
  • Reload from Disk: Reloads the chaperone bounds geometry from disk.

- Chaperone Proximity Warning Settings Page:

Chaperone Proximity Warning Settings Page

  • Switch to Beginner Mode: Switches the chaperone bound's style to beginner mode when the user's distance to the chaperone falls below the configured activation distance.
  • Trigger Haptic Feedback: The left and right controller start vibrating when the user's distance to the chaperone falls below the configured activation distance.
  • Audio Warning: Plays an alarm sound when the user's distance to the chaperone falls below the configured activation distance.
    • Loop Audio: Whether the audio alarm should only be played once or in a loop.
    • Loop Audio: Modify audio volume as a function of the user's distance to the chaperone.
  • Open dashboard: Opens the dashboard when the user's distance to the chaperone falls below the configured activation distance. The idea is to pause the game (most single-player games auto-pause when the dashboard is shown) to give the user time for reorientation.
  • Velocity Dependent Fade/Activation Distance: Dynamically modifies the chaperone's fade distance and the proximity warning's activation distance as a function of the player's speed. The used formula is: distance = old_distance * ( 1 + distance_modifier * max(left_controller_speed, right_controller_speed, hmd_speed) )

- Play Space Page:

Play Space Page

Allows to temporarily move and rotate the center of the playspace. This allows to reach interaction elements that are just inside our real-world walls or otherwise inaccessible (e.g. when your playspace is smaller than the recommended one). Can also be used to discover the terrors that lie outside of the intended playspace (ever wondered what's behind the door in The Lab?).

  • Adjust Chaperone: When enabled then the chaperone bounds stay in place when the playspace is moved or rotated (so noone gets hurt). Unfortunately this does not work when moving up/down.

- Floor Fix Page:

Floor Fix Page

Allows you to fix the height of your floor. Just place one controller on your floor and press the button.

- Audio Page:

Audio Page

  • Playback Device: Allows to select the playback device.
  • Mirror Device: Allows to select the mirror device, set its volume and to mute/unmute it.
  • Microphone: Allows to select the microphone device, set its volume and to mute/unmute it.
  • Proximity Sensor Mutes/Unmutes Microphone: Allows the proximity sensor to mute the microphone when the user is not wearing the HMD, and to unmute it when the user is wearing the HMD.
  • Push-to-Talk: Enable/disable push-to-talk. When push-to-talk is activated the microphone gets muted unless one of the configured buttons is pressed on one of the configured controllers.
  • Left Controller: Configure the left controller for push-to-talk.
  • Right Controller: Configure the right controller for push-to-talk.
  • Show Notification: Shows a notification icon in the headset when push-to-talk is enabled a configured button is pressed.
  • Push-to-Mute: Inverse push-to-talk. The Microphone is unmuted by default and muted when any of the configured buttons is pressed.
  • Profile: Allows to apply/define/delete push-to-talk profiles that save buttons, controller and notification settings.

- Revive Page:

Revive Page

The Revive page is only visible when the Revive overlay is installed. In case an installed Revive overlay is not correctly detected you can force the Revive page in the settings.

Any changes to controller settings are immediately applied by Revive (Requires Revive 1.0.4+).

  • Render Target Override: Overrides the Oculus-side render target (aka supersampling). Enabling it prevents Oculus applications from dynamically modifying this value. Warning: Is applied on top of the SteamVR supersampling value. (pixelsPerDisplayPixel setting in the vrsettings file)
  • Grip Button mode: Allows to set the grip button mode. (ToggleGrip setting in the vrsettings file)
  • Toggle Delay: Allows to configure the toggle delay. (ToggleDelay setting in the vrsettings file)
  • Trigger As Grip: Swaps the trigger and grip. (TriggerAsGrip setting in the vrsettings file)
  • Deadzone: Allows to modify the simulated thumbsticks' deadzone. (ThumbDeadzone setting in the vrsettings file)
  • Sensitivity: Allows to modify the simulated thumbsticks' sensitivity. (ThumbSensitivity setting the vrsettings file)
  • Yaw: Allows to modify the touch controllers yaw orientation. (TouchYaw setting the vrsettings file)
  • Pitch: Allows to modify the touch controllers pitch orientation. (TouchPitch setting the vrsettings file)
  • Roll: Allows to modify the touch controllers roll orientation. (TouchRoll setting the vrsettings file)
  • X: Allows to modify the touch controllers x-offset. (TouchX setting the vrsettings file)
  • Y: Allows to modify the touch controllers y-offset. (TouchY setting the vrsettings file)
  • Z: Allows to modify the touch controllers z-offset. (TouchZ setting the vrsettings file)
  • Controller Profile: Allows to apply/define/delete controller profiles that save the controller settings (grip button mode, deadzone, sensitivity, pitch/yaw/roll and x/y/z-offsets).

- Utilities Page:

Utilities Page

  • Keyboard Utilities: Some applications (mostly 2D-monitor applications with tackled-on/modded-in VR support) do not support the VR keyboard but require an actual physical keyboard for text input. This utilities allow to send emulated key strokes from VR keyboard input to such application to overcome this limitation. Does not work in desktop mode.

  • Alarm Clock: Just a simple alarm clock so you don't miss important appointments. VR can sure mess up perception of time. Does not work in desktop mode.

  • Steam Desktop Overlay Width: Allows to increase the size of the Steam desktop overlay. Useful for multi-monitor setups.

- Accessibility Page:

Accessibility Page

  • Adjust Player Height: Offsets the player height to allows short or wheelchair-bound players to fully interact with height-limited applications by both boosting their height and being able to touch the in-game floor when necessary by pressing a configurable motion controller button.

- Statistics Page:

Statistics Page

  • HMD Distance Moved: Shows the distance the headset has moved on the xz-plane.
  • HMD Rotations: Shows the number of rotations around the y-axis (Useful for untangling the cord).
  • Left Controller Max Speed: Shows the max speed of the left controller.
  • Right Controller Max Speed: Shows the max speed of the right controller.
  • Presented Frames: Number of frames presented to the hmd in the currently running application.
  • Dropped Frames: Number of frames dropped in the currently running application.
  • Reprojected Frames: Number of frames reprojected in the currently running application.
  • Timed Out: Number of times the currently running application timed out.
  • Reprojection Ratio: Ratio of presented frames to reprojected frames.

- Settings Page:

Settings Page

  • Autostart: Allows you to enable/disable auto start.
  • Force Revive Page: Force the Revive page button on the root page to be visible.

How to Compile

  • Use the Qt addon for Visual Studio to create a Visual Studio project from the .pro file.
  • Execute bin/windeployqt.bat which copies all Qt files necessary for execution into the output directory.

Notes:

  • The center marker and the play space marker are provided by the chaperone subsystem, and therefore they will have the same color and visibility settings as the chaperone bounds.

  • Application autostart can also be configured in the SteamVR menu (SteamVR->Settings->Applications->"Advanced Settings").

  • You can modify the shutdown wait time when restarting SteamVR by opening restartvrserver.bat and changing the number behind "timeout /t" (unit is seconds).

Known Bugs

  • None yet.

License

This software is released under GPL 3.0.