Initial OpenVR SDK Release
The API that used to be available in steamvr.h in the Steamworks SDK is now the OpenVR SDK. Support for the old API will be maintained indefinitely, but applications that need any of the new features will need to switch to the new SDK.
Several new interfaces were added and new methods were added to existing interfaces. See the API documentation for details.
Changes from the SteamVR interface in SteamWorks SDK 1.31 to OpenVR SDK 0.9.0 include:
- IHmd is now
IVRSystem
. - Added support for multiple tracked objects. Call
IVRSystem::GetTrackedDeviceClass
on numbers between 0 and k_unMaxTrackedDeviceCount to determine what kind of device is in each slot. The active HMD will always be at k_unHmdTrackedObject (aka 0) in the list. - Moved fetching of various values about HMDs and other tracked devices into properties. The TrackedDeviceProperty enum defines the available values. Call
IVRSystem::Get<type>TrackedDeviceProperty
to get the value for an object. - Added support for providing applications with models and textures for tracked devices. This allows applications to draw the actual devices being tracked. See
IVRSystem::LoadRenderModel
andIVRSystem::FreeRenderModel
for details. - Clarified and changed tracking prediction. The right value to pass to
IVRSystem::GetDeviceToAbsoluteTrackingPose
is typically ( - ) + . All three of those values are available as properties on the HMD. - Added origin to calls that return poses. This can be Seated, Standing, or Raw. In the first two cases all returned poses will be relative to that configured origin. Raw poses are in whatever tracking system the current driver provides.
- Renamed
IVRSystem::ZeroTracker
toIVRSystem::ResetSeatedZeroPose
. This function only applies to the seated origin and will have no effect on applications that use the standing origin. - 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. The accompanying json can be used to generate bindings for other languages as well.
- Added
IVRSystem::PollNextEvent
to the API. This allows applications to receive events when devices are activated, deactivated, or updated. - Added new interface
IVRChaperone
to query chaperone hard and soft bounds. Use this to show the user where safe areas to walk are. 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. This interface allows an application to use the VR Compositor to perform distortion mapping and manage the HMD window.