OpenVR

{{short description|Software development kit and application programming interface by Valve}}

{{Infobox software

| title = OpenVR

| logo =

| logo caption = StreamVR, an implementation of OpenVR

| developer = Valve Corporation

| repo = {{URL|https://github.com/ValveSoftware/openvr}}

| programming language = C++, C#, C

| included with = SteamVR

| genre = Virtual reality

| license = BSD 3-Clause "New" or "Revised" License

| website = {{URL|https://www.steamvr.com/}}

}}

OpenVR is a software development kit (SDK) and application programming interface (API) developed by Valve for supporting the SteamVR{{cite web|url=https://www.gamedeveloper.com/business/valve-launches-new-openvr-sdk-to-expand-steamvr-development|title=Gamasutra - Valve launches new OpenVR SDK to expand SteamVR development|author-first=Alex|author-last=Wawro|date=2015-04-30|access-date=2021-12-26|publisher=Game Developer}}{{cite web|url=http://www.itworld.com/article/2917439/personal-technology/valve-releases-openvr-sdk-to-the-masses-says-theres-still-time-to-apply-for-a-free-htc-vive-develop.html|archive-url=https://web.archive.org/web/20170510111339/http://www.itworld.com/article/2917439/personal-technology/valve-releases-openvr-sdk-to-the-masses-says-theres-still-time-to-apply-for-a-free-htc-vive-develop.html|url-status=dead|title=Valve releases OpenVR SDK to the masses, says there's still time to apply for a free HTC Vive Development unit.|author-first=Peter|author-last=Smith|date=2015-05-01|archive-date=2017-05-10|access-date=2021-12-26|work=ITworld}} and other virtual reality headset devices.{{cite web|url=http://www.roadtovr.com/making-valves-openvr-truly-inclusive-for-vr-headsets/|title=Making Valve's OpenVR Truly Inclusive for VR Headsets - Road to VR|author=Road to VR|work=Road to VR|date=20 July 2015}}{{cite web|url=https://venturebeat.com/2015/04/30/valve-launches-openvr-dev-kit-for-virtaul-reality-hardware-makers/|title=Valve launches OpenVR dev kit for virtual reality hardware makers|author-first=Dean|author-last=Takahashi|work=VentureBeat|date=2015-04-30|access-date=2021-12-26}} The SteamVR platform uses it as the default application programming interface and runtime.{{Cite book|title=Mastering C++ Game Development: Create professional and realistic 3D games using C++ 17|last=Macdonald|first=Mickey|date=2018|publisher=Packt Publishing Ltd|isbn=9781788629225|location=Birmingham|pages=308}} It serves as the interface between the virtual reality hardware and software{{Cite journal|title=HTC Vive MeVisLab integration via OpenVR for medical applications|last=Egger|first=Jan|date=2017-03-12|journal=PLOS ONE|volume=12|issue=3|pages=e0173972|doi=10.1371/journal.pone.0173972|pmid=28323840|pmc=5360258|arxiv=1703.07575|bibcode=2017PLoSO..1273972E|language=en-US|doi-access=free}} and is implemented by SteamVR.{{Cite web|url=https://www.roadtovr.com/htc-vive-cosmos-steamvr-openvr-ces-2019/|title=HTC Confirms Vive Cosmos Will Support OpenVR/SteamVR|last=Lang|first=Ben|date=2019-01-08|website=Road to VR|language=en-US|access-date=2019-07-18}}

Although OpenVR is the default SDK for HTC Vive, it was developed to have multiple vendor support. For instance, a developer can design OpenVR-based trigger button functions for controllers of Oculus Rift or Windows MR because these systems are both supported by the SDK.{{Cite book|title=Unity Virtual Reality Projects: Learn Virtual Reality by developing more than 10 engaging projects with Unity 2018, 2nd Edition|last=Linowes|first=Jonathan|date=2018|publisher=Packt Publishing Ltd|isbn=9781788477185|location=Birmingham|pages=135}}

Valve has announced that they will be cooperating with the Open Source Virtual Reality project,{{cite web|url=http://www.ign.com/articles/2015/05/19/valves-openvr-signs-up-to-razers-virtual-reality-standard|title=Valve's OpenVR Signs Up to Razer's Virtual Reality Standard|author-first=Matt|author-last=Porter|date=2015-05-19|work=IGN}} although the extent of the cooperation is unclear.{{cite web|url=http://www.itworld.com/article/2923912/personal-technology/report-valve-openvr-joins-osvr-open-source-virtual-reality-initiative.html|archive-url=https://web.archive.org/web/20170409063836/https://www.itworld.com/article/2923912/personal-technology/report-valve-openvr-joins-osvr-open-source-virtual-reality-initiative.html|url-status=dead|title=Report: Valve OpenVR joins OSVR (open source virtual reality) initiative|author-first=Peter|author-last=Smith|date=2015-05-19|archive-date=2017-04-09|access-date=2021-12-26|work=ITworld}}

Initial release

OpenVR SDK was released to the public on 30 April 2015 by Valve, for developers to develop SteamVR games and software. It provides support for the HTC Vive Developer Edition, including the SteamVR controller and Lighthouse. OpenVR SDK was an important step towards the release of the first HTC Vive Developer Edition.

The OpenVR SDK has replaced the API that was previously available in steamvr.h in the Steamworks SDK. The old API will continue to receive support indefinitely, but applications that require any of the new features must switch to the new SDK.

A number of new interfaces were added, and existing interfaces received new methods. Details can be found in the OpenVR API documentation.

With the OpenVR SDK, software can now be connected to SteamVR hardware. The SDK can be downloaded from the OpenVR GitHub page. It supports all SteamVR products.

The SteamVR Unity Plugin and native SteamVR support in Unreal 4.8 have been implemented to support Unity in addition to the OpenVR SDK support. Both were available shortly after the initial release of OpenVR.

= Release notes =

Changes from the SteamVR interface in SteamWorks SDK 1.31 to Initial release of OpenVR include:{{Cite web |title=Release Initial OpenVR SDK Release · ValveSoftware/openvr |url=https://github.com/ValveSoftware/openvr/releases/tag/0.9.0 |access-date=2022-10-19 |website=GitHub |language=en}}

  • IHmd is now IVRSystem.
  • Added support for multiple tracked objects.
  • Moved fetching of various values about HMDs and other tracked devices into properties.
  • Added support for providing applications with models and textures for tracked devices.
  • Clarified and changed tracking prediction.
  • Added origin to calls that return poses.
  • Renamed IVRSystem::ZeroTracker to IVRSystem::ResetSeatedZeroPose.
  • Added angular velocity and velocity to the data returned with a tracked device's pose.
  • CAPI and C# bindings for OpenVR interfaces added to headers.
  • Added IVRSystem::PollNextEvent to the API.
  • Added new interface IVRChaperone to query chaperone hard and soft bounds.
  • IVRSystem::GetHiddenAreaMesh. It returns the stencil mesh to use to minimize pixel rendering for the current HMD.
  • Removed GetIPD. Use the property Prop_UserIpdMeters_Float instead.
  • Added IVRCompositor interface.

See also

  • OSVR, an open-source library with similar goals by Sensics, Razer and a community of partners and contributors
  • OpenXR, an open, royalty-free standard for access to virtual reality and augmented reality platforms and devices

References

{{Reflist}}