Oculus SDK for Windows

1.3.0 | Published 2016-03-28
I have read and agree to the terms of the EULA, Terms of Use and Privacy Policy

Oculus SDK for Windows 1.3.0

The Oculus SDK now provides Asynchronous TimeWarp (ATW). With ATW, TimeWarp is automatically applied to the last rendered frame by the Oculus Compositor at the same time as distortion. For more information, see Asynchronous TimeWarp .

Oculus now provides guidance and APIs for VR focus management, which helps you smoothly transition users between your game or experience and Oculus Home. For more information, see VR Focus Management .

New Features

The following are new features for the Oculus SDK and runtime:

  • Added Asynchronous TimeWarp (ATW). For more information, see Asynchronous TimeWarp .
  • Added features for VR focus management, which helps you smoothly transition users between your game or experience and Oculus Home. For more information, see VR Focus Management .
  • Updated queue ahead to be adaptive. Queue ahead previously processed frames 2.8 milliseconds in advance to improve CPU and GPU parallelism. Adaptive queue ahead works similarly, but automatically adjusts the start time from 0 to -1 frame (depending on the current performance).
  • Added the performance indicator, which displays when the application is slow or not maintaining frame rate. For more information, see Performance Indicator
  • Added the Oculus Compositor performance HUD (ovrPerfHud_CompRenderTiming) and renamed the application performance HUD (ovrPerfHud_RenderTiming) to ovrPerfHud_CompRenderTiming.
  • Support for DirectX 12 (DX12). For more information, refer to the Oculus Room Tiny (DX12) sample.

Runtime Changes

Changes include:

  • Added Oculus Setup, which installs and configures the Oculus Rift, installs the Oculus App, and installs Oculus Home.
  • Added the Oculus App, which replaces the Oculus Configuration Utility. To open the Oculus App, double-click the Oculus desktop icon.
  • Added Oculus Home, the VR-based application for launching games and experiences. If the Oculus App is open, Oculus Home automatically runs whenever you put on the headset.
  • Added the universal menu to perform many common tasks, such as recentering and lens adjustment. To open the universal menu, press the Oculus button on the Oculus remote or the Xbox button on the Xbox Controller
  • Account, device, and privacy management tasks are now performed through the Oculus App. To make changes, click the menu icon (three dots) in the upper right corner of the Oculus App and select Settings.
  • Previously, when you locked your computer, any VR content continued to display in the headset. Now, when you lock the computer, the headset displays a blank screen.

API Changes

Updates to the API include:

  • Added ovrTrackerFlags, which returns whether the sensor is present and is in a valid position.
  • Added ovrSessionStatus flags to for focus management. For more information, see VR Focus Management.
  • Added ovrTrackerPose to get the position of a specific sensor.
  • Added bit masks that provide button touch states (ovrTouch_RButtonMask and ovrTouch_LButtonMask), button press states (ovrButton_RMask and ovrButton_LMask), and finger poses (ovrTouch_RPoseMask and ovrTouch_LPoseMask) for the Oculus Touch controllers.
  • Added ovrTrackingState::CalibratedOrigin, which is the initial origin configured by the user when he or she set up the headset. Every time a user recenters a headset, the updated location is relative to this value.
  • Added the ovr_ClearShouldRecenterFlag function for applications that want to manually calculate a recentered tracking pose instead of using the provided SDK function ovr_RecenterTrackingOrigin.
  • Added the utility function ovrPosef_FlipHandedness to help applications easily flip any ovrPosef from a left to right-handed coordinate system.

Changes to the API include:

  • The previous API returned a mutable struct which had to be modified in a specific way and passed back to the API. The Oculus SDK now returns an Opaque handle that represents the TextureSwapChain.
  • Removed the deprecated ovrHmdStruct synonym for ovrHmd.
  • Removed the ovrStatusBits::ovrStatus_CameraPoseTracked and ovrStatusBits::ovrStatus_PositionConnected flags.
  • Moved CameraFrustumHFovInRadians, CameraFrustumVFovInRadians, CameraFrustumNearZInMeters, and CameraFrustumFarZInMeters from ovrHmdDesc to ovrTrackerDesc. Renamed them FrustumHFovInRadians, FrustumVFovInRadians, FrustumNearZInMeters, and FrustumFarZInMeters.
  • Removed CameraPose and LeveledCameraPose from ovrTrackingState and added them to ovrTrackerPose (as Pose and LeveledPose).
  • Renamed HmdToEyeViewOffset to HmdToEyeOffset.
  • Renamed ovrSwapTextureSet to ovrTextureSwapChain.
  • Removed the deprecated functions ovr_ResetBackOfHeadTracking and ovr_ResetMulticameraTracking.
  • Removed ovr_SetEnabledCaps.
  • Removed ovr_ConfigureTracking.
  • Removed the ovr_GetEnabledCaps function.
  • Removed the ovr_GetTrackingCaps function.
  • Removed the ovrLayerDirect layer type.
  • Renamed the ovr_RecenterPose function to ovr_RecenterTrackingOrigin.
  • Changed ovrMaxLayerCount from 32 to 16.
  • Moved the bindFlags parameter in function ovr_CreateTextureSwapChainDX to be part of the ovrTextureSwapChainDesc structure.
  • Added the output parameter outSensorSampleTime to the utility function ovr_GetEyePoses.
  • Modified ovrMatrix4f_Projection to be right-handed by default and changed ovrProjection_RightHanded to ovrProjection_LeftHanded.
  • Modified the default handedness of ovrMatrix4f_Projection to be right-handed by default and changed ovrProjection_RightHanded to be ovrProjection_LeftHanded.
  • Added the ovrPosef_FlipHandedness utility function.
  • Renamed ovrControllerType_SID to ovrControllerType_Remote.
  • Renamed ovrMirrorTextureDesc::Flags to ovrMirrorTextureDesc::MiscFlags and ovrTextureSwapChainDesc::Flags to ovrTextureSwapChainDesc::MiscFlags.
  • Removed the OVR_Kernel.h header file.

Known Issues

The following are known issues:

  • Antivirus software, such a McAfee, can cause installation issues. To work around the issue, make sure you have the latest updates and disable real-time scanning.
  • If you encounter installation issues, delete the Oculus folder and install the software again.
  • If the Rift displays a message that instructs you to take off the headset, remove it and place it on a flat surface for 10-15 seconds.
  • The keyboard and mouse do not work in Oculus Home. To select an item, gaze at it and select it using the Oculus Remote or Xbox controller.
  • Bandwidth-intensive USB devices, such as web cams and high-end audio interfaces, might not work when using the Rift. To work around this issue, install the device on another USB host controller or a separate computer.
  • For dual-boot systems using DK2 or CB1 HMDs, the OS selection screen might appear on the HMD instead of the monitor. To work around this, try plugging the HMD into a different port or unplug the HMD while booting.
  • If you are running your application from the Unity Editor and you press the controller's home button to return to Oculus Home, you will be prompted to close the application. If you select OK, Unity might remain in a state where it is running, but will never get focus. To work around this, restart Unity.