SteamVR: Difference between revisions
Appearance
Xinreality (talk | contribs) No edit summary |
Xinreality (talk | contribs) No edit summary |
||
Line 2: | Line 2: | ||
|image={{#ev:youtube|qYfNzhLXYGc|350}} | |image={{#ev:youtube|qYfNzhLXYGc|350}} | ||
|Type=[[Virtual Reality]] | |Type=[[Virtual Reality]] | ||
|Subtype=[[ | |Subtype=[[Virtual Reality Platform]] | ||
|Creator= | |Creator=[[Valve Corporation]] | ||
|Developer=[[Valve]] | |Developer=[[Valve Corporation]] | ||
|Manufacturer= | |Manufacturer= | ||
|Devices=[[HTC Vive]], [[Valve Index]], [[Windows Mixed Reality]] headsets, [[Oculus Rift]], [[Oculus Rift S]], [[VIVE Pro]], [[VIVE Cosmos]] | |Devices=[[HTC Vive]], [[Valve Index]], [[Windows Mixed Reality]] headsets, [[Oculus Rift]], [[Oculus Rift S]], [[VIVE Pro]], [[VIVE Cosmos]], [[Pimax]] | ||
|Accessories=[[SteamVR Controllers]], [[Valve Index Controllers]], [[VIVE Trackers]] | |Accessories=[[SteamVR Controllers]], [[Valve Index Controllers]], [[VIVE Trackers]], [[Base Stations]] | ||
|Release Date=April 5, 2016 (with [[HTC Vive]]) | |Release Date=April 5, 2016 (with [[HTC Vive]]) | ||
|Price=Free (platform), hardware prices vary | |Price=Free (platform), hardware prices vary | ||
Line 22: | Line 22: | ||
### Runtime | ### Runtime | ||
The [[SteamVR Runtime]] is the core software that powers the SteamVR experience. It | The [[SteamVR Runtime]] is the core software that powers the SteamVR experience. It acts as the central background process that manages communication between VR hardware (HMDs, controllers, trackers, base stations), VR applications, and the Steam client. The runtime is responsible for tracking, rendering, device detection, pose updates, input processing, and managing the overall VR experience for users.<ref name="steamvr-runtime">[https://partner.steamgames.com/doc/features/steamvr/steamvr_overview Valve Developer Documentation: SteamVR Overview]</ref> <ref name="runtime_compositor">[https://developer.valvesoftware.com/wiki/SteamVR/Concepts#Runtime Steam Developer Community Wiki: SteamVR Concepts - Runtime]</ref> | ||
### Compositor | |||
The [[Compositor]] is a critical component of SteamVR responsible for taking rendered images from VR applications and displaying them correctly on the HMD. It handles essential functions including: | |||
* Lens distortion correction | |||
* [[Chromatic aberration]] correction | |||
* [[Asynchronous Reprojection|Reprojection]] techniques (like [[Motion Smoothing]]) to maintain smooth visuals even when applications drop frames | |||
* Rendering overlays such as the [[Chaperone]] boundary system and SteamVR Dashboard | |||
* Final image compositing and presentation to the headset display<ref name="runtime_compositor"/> | |||
### OpenVR SDK | ### OpenVR SDK | ||
[[OpenVR]] is an [[Application Programming Interface|API]] and [[Software Development Kit|SDK]] developed by Valve that serves as the interface between VR hardware and software applications. It allows developers to create VR content that works across different VR systems without needing to develop separately for each hardware platform.<ref name="openvr-sdk">[https://github.com/ValveSoftware/openvr OpenVR GitHub Repository]</ref> | [[OpenVR]] is an [[Application Programming Interface|API]] and [[Software Development Kit|SDK]] developed by Valve that serves as the interface between VR hardware and software applications. It allows developers to create VR content that works across different VR systems without needing to develop separately for each hardware platform.<ref name="openvr-sdk">[https://github.com/ValveSoftware/openvr OpenVR GitHub Repository]</ref> | ||
While OpenVR was initially the primary SDK for SteamVR development, Valve now also provides full support for [[OpenXR]], an open, royalty-free standard from the [[Khronos Group]] designed to provide universal access to VR and AR hardware across platforms.<ref name="openxr_steamvr">[https://store.steampowered.com/news/app/250820/view/3066366090050186497 Steam Community: SteamVR is now officially OpenXR conformant]</ref> | |||
### VR Dashboard | |||
The [[VR Dashboard]] is an in-VR interface, accessible via a button press on the controller, that allows users to interact with Steam, launch applications, adjust settings, view their desktop, and manage VR sessions without removing the headset.<ref name="dashboard_feature">[https://www.roadtovr.com/steamvr-update-brings-major-dashboard-overhaul-new-features/ RoadToVR: SteamVR Update Brings Major Dashboard Overhaul & New Features]</ref> | |||
### Tracking System | ### Tracking System | ||
Line 31: | Line 44: | ||
## Devices | ## Devices | ||
SteamVR supports a wide array of VR headsets, ensuring compatibility across platforms and manufacturers: | |||
### HTC Vive | ### HTC Vive | ||
Line 84: | Line 99: | ||
SteamVR supports a wide range of VR headsets beyond those developed specifically for the platform: | SteamVR supports a wide range of VR headsets beyond those developed specifically for the platform: | ||
* '''[[Oculus Rift]]''' and '''[[Oculus Rift S]]''' - Full support through the Oculus SDK and SteamVR integration | * '''[[Meta Quest]] Series''' (formerly Oculus Quest) - Supported via [[Oculus Link]], [[Air Link]], or third-party solutions like [[Virtual Desktop]], allowing the standalone Quest headsets to run PC VR content via SteamVR.<ref name="quest_link">[https://www.meta.com/help/quest/articles/headsets-and-accessories/oculus-link/ Meta Quest Help Center: Oculus Link]</ref> | ||
* '''[[Windows Mixed Reality]]''' headsets - Including devices from HP, Samsung, Acer, and others | |||
* '''[[Pimax]]''' VR headsets - Wide FOV headsets compatible with SteamVR tracking | * '''[[Oculus Rift]]''' and '''[[Oculus Rift S]]''' - Full support through the Oculus SDK and SteamVR integration, leveraging the Oculus runtime.<ref name="steamvr_oculus_support">[https://www.roadtovr.com/how-to-use-oculus-rift-with-steamvr-play-steam-games/ RoadToVR: How To Use Oculus Rift With SteamVR]</ref> | ||
* '''[[Varjo]]''' - Professional-grade VR headsets used in enterprise and simulation applications | |||
* '''[[Windows Mixed Reality]]''' headsets - Including devices from HP, Samsung, Acer, and others, supported via the "Windows Mixed Reality for SteamVR" software bridge available on Steam.<ref name="wmr-steamvr-bridge">[https://store.steampowered.com/app/719950/Windows_Mixed_Reality_for_SteamVR/ Steam Store: Windows Mixed Reality for SteamVR]</ref> | |||
* '''[[Pimax]]''' VR headsets - Wide FOV headsets compatible with SteamVR tracking.<ref name="pimax-steamvr">[https://pimax.com/ Pimax Official Website (features SteamVR compatibility)]</ref> | |||
* '''[[Varjo]]''' - Professional-grade VR headsets used in enterprise and simulation applications. | |||
## Accessories | ## Accessories | ||
Line 95: | Line 115: | ||
There are two generations of SteamVR Base Stations: | There are two generations of SteamVR Base Stations: | ||
* '''Lighthouse 1.0''' (launched with the original HTC Vive) - Requires two base stations with direct line of sight to each other | * '''Lighthouse 1.0''' (launched with the original HTC Vive) - Requires two base stations with direct line of sight to each other, supporting a maximum play area of approximately 5 meters diagonally. | ||
* '''Lighthouse 2.0''' (launched with Vive Pro and Valve Index) - Supports up to four base stations for larger play areas and better occlusion handling | * '''Lighthouse 2.0''' (launched with Vive Pro and Valve Index) - Supports up to four base stations for larger play areas (up to 10m x 10m with four stations) and better occlusion handling. Base Station 2.0 units are only compatible with hardware featuring SteamVR Tracking 2.0 sensors (like Valve Index, Vive Pro series, Vive Controllers 2.0, Vive Trackers 2018/3.0).<ref name="bs_1vs2">[https://www.vive.com/us/support/vive/category_howto/what-is-the-difference-between-base-stations.html HTC Vive Support: What is the difference between Base Stations 1.0 and 2.0?]</ref> | ||
The technical operation of Lighthouse involves base stations emitting timed infrared laser sweeps and flashes across the play area. The headset and controllers are covered with [[photodiode]] sensors that detect these signals. By timing how long it takes for the laser sweeps to hit each sensor, the system can calculate the precise position and orientation of the devices with sub-millimeter accuracy. | The technical operation of Lighthouse involves base stations emitting timed infrared laser sweeps and flashes across the play area. The headset and controllers are covered with [[photodiode]] sensors that detect these signals. By timing how long it takes for the laser sweeps to hit each sensor, the system can calculate the precise position and orientation of the devices with sub-millimeter accuracy.<ref name="lighthouse_howitworks">[https://www.youtube.com/watch?v=J54dotTt7k0 YouTube: Alan Yates (Valve) Explains Lighthouse Tracking]</ref> | ||
### Input Devices | ### Input Devices | ||
'''[[SteamVR Controllers]]''' (often called '''Vive Wands''') are the original motion controllers that shipped with the HTC Vive. These wireless controllers look like a pair of | '''[[SteamVR Controllers]]''' (often called '''Vive Wands''') are the original motion controllers that shipped with the HTC Vive. These wireless controllers look like a pair of wands with sensors on top. Each hand holds one of the two wireless controllers. Each controller has a trigger and circular haptic trackpad. The sensors allow the controllers to be tracked by the SteamVR Base Stations in the same way as the [[HMD]]. The controllers are tracked with very high precision and low latency.<ref name="vive-controllers">[https://www.vive.com/us/accessory/controller/ HTC VIVE Controllers]</ref> | ||
The sensors on the controllers are [[photodiode]]s that work with the Lighthouse tracking system to determine their precise position and orientation in 3D space. | The sensors on the controllers are [[photodiode]]s that work with the Lighthouse tracking system to determine their precise position and orientation in 3D space. | ||
Line 134: | Line 154: | ||
* '''[[SUPERHOT VR]]''' - A unique time-manipulation shooter | * '''[[SUPERHOT VR]]''' - A unique time-manipulation shooter | ||
* '''[[The Lab]]''' - Valve's collection of VR experiments and mini-games | * '''[[The Lab]]''' - Valve's collection of VR experiments and mini-games | ||
* '''[[Job Simulator]]''' - A humorous simulation game that was a launch title for the HTC Vive | |||
* '''[[Tilt Brush]]''' - A 3D painting application for creating art in virtual space | |||
## Developer Tools | ## Developer Tools | ||
### OpenVR API | ### OpenVR API | ||
'''[[OpenVR API]]''' is the programming interface that allows developers to integrate SteamVR support into their applications. It provides access to tracking data, input from controllers, display output, and other VR-specific features.<ref name="openvr-api">[https://github.com/ValveSoftware/openvr/wiki/API-Documentation OpenVR API Documentation]</ref> | '''[[OpenVR API]]''' is the programming interface that allows developers to integrate SteamVR support into their applications. It provides access to tracking data, input from controllers, display output, and other VR-specific features. While still supported, Valve is encouraging developers to transition to OpenXR.<ref name="openvr-api">[https://github.com/ValveSoftware/openvr/wiki/API-Documentation OpenVR API Documentation]</ref> | ||
### OpenXR Support | |||
SteamVR is a fully compliant [[OpenXR]] runtime. OpenXR is an open, royalty-free standard from the [[Khronos Group]] designed to provide universal access to VR and [[Augmented Reality|AR]] hardware and software platforms. Developing with OpenXR allows applications to run across different VR runtimes (like SteamVR, Oculus, WMR) with less porting effort. Valve actively supports and contributes to OpenXR development.<ref name="openxr_steamvr"/> | |||
### SteamVR Unity Plugin | ### SteamVR Unity Plugin | ||
Line 145: | Line 170: | ||
### SteamVR Input System | ### SteamVR Input System | ||
The '''[[SteamVR Input System]]''' allows developers to define actions rather than specific button mappings, making it easier to support multiple controller types. It also gives users the ability to customize control schemes to their preference, improving accessibility.<ref name="steamvr-input">[https://github.com/ValveSoftware/steamvr_unity_plugin/wiki/SteamVR-Input SteamVR Input System Documentation]</ref> | The '''[[SteamVR Input System]]''' allows developers to define actions rather than specific button mappings, making it easier to support multiple controller types. It also gives users the ability to customize control schemes to their preference, improving accessibility.<ref name="steamvr-input">[https://github.com/ValveSoftware/steamvr_unity_plugin/wiki/SteamVR-Input SteamVR Input System Documentation]</ref> | ||
### SteamVR Skeletal Input | |||
'''[[SteamVR Skeletal Input]]''' provides access to hand pose data for more natural interactions in VR applications, enabling developers to implement realistic hand animations and gestures.<ref name="steamvr-skeletal">[https://steamvr.com/steamvr-skeletal-input SteamVR Skeletal Input Documentation]</ref> | |||
### Steam Workshop | |||
The '''[[Steam Workshop]]''' integration allows users and developers to share custom home environments, props, avatar skins, and controller bindings, fostering a creative community around SteamVR Home.<ref name="steamvr-workshop">[https://steamcommunity.com/workshop/about/?appid=250820 SteamVR Workshop]</ref> | |||
## Technology | ## Technology | ||
Line 167: | Line 198: | ||
'''[[Asynchronous Reprojection]]''' is a technique that helps maintain frame rate in demanding VR applications. When an application cannot render at the target frame rate (typically 90Hz), asynchronous reprojection generates intermediate frames based on head movement to smooth out the experience.<ref name="reprojection">[https://developer.valvesoftware.com/wiki/SteamVR/Frame_Timing Valve Developer Community: SteamVR Frame Timing]</ref> | '''[[Asynchronous Reprojection]]''' is a technique that helps maintain frame rate in demanding VR applications. When an application cannot render at the target frame rate (typically 90Hz), asynchronous reprojection generates intermediate frames based on head movement to smooth out the experience.<ref name="reprojection">[https://developer.valvesoftware.com/wiki/SteamVR/Frame_Timing Valve Developer Community: SteamVR Frame Timing]</ref> | ||
'''[[Motion Smoothing]]''' is an advanced version of reprojection introduced in later SteamVR updates. It uses motion vectors to create more accurate intermediate frames, resulting in smoother motion during performance dips.<ref name="motion-smoothing">[https://steamcommunity.com/games/250820/announcements/detail/1705078594290082077 SteamVR Motion Smoothing Announcement]</ref> | '''[[Motion Smoothing]]''' is an advanced version of reprojection introduced in later SteamVR updates. It uses motion vectors to create more accurate intermediate frames, resulting in smoother motion during performance dips. When Motion Smoothing is active, the application renders at half frame rate (e.g., 45 FPS for a 90Hz display), and SteamVR synthesizes every other frame based on motion estimation from previous frames.<ref name="motion-smoothing">[https://steamcommunity.com/games/250820/announcements/detail/1705078594290082077 SteamVR Motion Smoothing Announcement]</ref> | ||
### Direct Mode | |||
'''[[Direct Mode]]''' optimizes the display pipeline by treating the HMD as a dedicated monitor, reducing latency and improving compatibility. This allows the display driver to render directly to the HMD, bypassing OS-level compositor latency.<ref name="direct-mode">[https://steamcommunity.com/app/250820/discussions/0/492378265884093631/ Steam Community: Direct Mode Implementation]</ref> | |||
### Supersampling | |||
'''[[Supersampling]]''' allows rendering at higher resolutions for improved image quality on capable hardware. Users can adjust this setting globally or per application based on their GPU performance.<ref name="supersampling">[https://steamvr.com/steamvr-supersampling SteamVR Supersampling Documentation]</ref> | |||
## Features | ## Features | ||
Line 180: | Line 217: | ||
'''[[Advanced Camera Settings]]''' on compatible headsets provide options for passthrough camera functionality, including reality overlay modes that blend the virtual and real worlds for mixed reality experiences.<ref name="camera-settings">[https://support.steampowered.com/kb_article.php?ref=8569-RPGE-9437 SteamVR Camera Settings]</ref> | '''[[Advanced Camera Settings]]''' on compatible headsets provide options for passthrough camera functionality, including reality overlay modes that blend the virtual and real worlds for mixed reality experiences.<ref name="camera-settings">[https://support.steampowered.com/kb_article.php?ref=8569-RPGE-9437 SteamVR Camera Settings]</ref> | ||
'''[[Steam Link for VR]]''' - Official Wi-Fi streaming app (Quest 2/3/Pro) released November 2023, allowing wireless streaming of SteamVR content to Meta Quest devices.<ref name="steam-link">[https://www.roadtovr.com/valve-launches-steam-link-on-meta-quest/ Road to VR: Valve Launches Steam Link on Meta Quest]</ref> | |||
## History | ## History | ||
Line 216: | Line 255: | ||
'''March 23, 2020''' - Valve released [[Half-Life: Alyx]], a flagship VR game designed specifically for SteamVR, showcasing the platform's capabilities.<ref name="alyx-release">[https://www.half-life.com/en/alyx/ Half-Life: Alyx Official Website]</ref> | '''March 23, 2020''' - Valve released [[Half-Life: Alyx]], a flagship VR game designed specifically for SteamVR, showcasing the platform's capabilities.<ref name="alyx-release">[https://www.half-life.com/en/alyx/ Half-Life: Alyx Official Website]</ref> | ||
'''May 1, 2020''' - SteamVR ended support for macOS.<ref name="macos-end">[https://9to5mac.com/2020/05/01/valves-steamvr-ends-support-for-macos/ 9to5Mac: Valve's SteamVR ends support for macOS]</ref> | |||
'''December 16, 2021''' - SteamVR introduced [[OpenXR]] support, allowing developers to build applications that work across multiple VR platforms with minimal changes.<ref name="openxr">[https://steamcommunity.com/games/250820/announcements/detail/3131689764662886553 Steam Community: SteamVR OpenXR Support]</ref> | '''December 16, 2021''' - SteamVR introduced [[OpenXR]] support, allowing developers to build applications that work across multiple VR platforms with minimal changes.<ref name="openxr">[https://steamcommunity.com/games/250820/announcements/detail/3131689764662886553 Steam Community: SteamVR OpenXR Support]</ref> | ||
'''October 25, 2023''' - '''SteamVR 2.0''' public release, unifying UI with [[Steam Deck]].<ref name="steamvr2-release">[https://www.theverge.com/valve-officially-releases-steamvr-2-0 The Verge: Valve officially releases SteamVR 2.0]</ref> | |||
'''November 30, 2023''' - Valve released Steam Link for Meta Quest, enabling official wireless streaming.<ref name="steam-link-release">[https://www.roadtovr.com/valve-launches-steam-link-on-meta-quest/ Road to VR: Valve Launches Steam Link on Meta Quest]</ref> | |||
## Competitors | ## Competitors |