Difference between revisions of "Asynchronous Spacewarp"

From Virtual Reality, Augmented Reality Wiki
Jump to: navigation, search
(How Does Asynchronous Spacewarp Work?)
Line 17: Line 17:
 
An example of this extrapolation is shown below. We have a scene in which a held gun which is moving from right to left in frames 0 and 1 (generated 1/45th of a second apart), and we want to generate an extrapolated frame from that movement (1/90th of a second after frame 1). We detect the movement of the gun and generate a new frame which we display on behalf the application.
 
An example of this extrapolation is shown below. We have a scene in which a held gun which is moving from right to left in frames 0 and 1 (generated 1/45th of a second apart), and we want to generate an extrapolated frame from that movement (1/90th of a second after frame 1). We detect the movement of the gun and generate a new frame which we display on behalf the application.
  
[[File:asw_example_gif1.gif]]
+
[[File:asw_example_gif1.gif|300px]]
  
 
When it comes to virtual reality, ATW and ASW are siblings and complement each other. Timewarp is great for accommodating head rotation. In fact, it's perfect for static images at a distance. For applications like 360 videos and features on the horizon, Spacewarp is unnecessary. Conversely, Spacewarp is pretty good for animated objects up close but not so great at tracking head rotation.
 
When it comes to virtual reality, ATW and ASW are siblings and complement each other. Timewarp is great for accommodating head rotation. In fact, it's perfect for static images at a distance. For applications like 360 videos and features on the horizon, Spacewarp is unnecessary. Conversely, Spacewarp is pretty good for animated objects up close but not so great at tracking head rotation.

Revision as of 04:59, 28 November 2016

See also: Timewarp
Information icon1.png This page is a stub, please expand it if you have more information.

Introduction

Asynchronous Spacewarp or ASW applies animation detection, camera translation, and head translation to previous frames in order to predict the next frame. As a result, motion is smoothed and applications can run on lower performance hardware. ASW expends upon Asynchronous Timewarp (ATW), which only applies to the rotational tracking of the head.

The Rift operates at 90Hz. When an application fails to submit frames at 90Hz, the Rift runtime drops the application down to 45Hz with ASW providing each intermediate frame.

Once officially released, ASW will be enabled for all supported Rifts.

ASW tends to predict linear motion better than non-linear motion. If your application is dropping frames, you can either adjust the resolution or simply allow ASW to take over.

Asynchronous SpaceWarp (ASW) enables users to run the Oculus Rift on lower specification hardware than our current recommended specification.

How Does Asynchronous Spacewarp Work?

ASW generates extrapolated frames from previous frames generated by the VR application. On the surface, this sounds quite a bit like ATW, which is capable of extrapolating for only a single thing: the user's head rotation. While this covers many of the hitches, it's not a magic bullet. ASW works in tandem with ATW to cover all visual motion within the virtual reality experience. This includes character movement, camera movement, Touch controller movement, and the player's own positional movement. If the application falls behind the display's frame rate, the experience typically remains smooth and enjoyable.

An example of this extrapolation is shown below. We have a scene in which a held gun which is moving from right to left in frames 0 and 1 (generated 1/45th of a second apart), and we want to generate an extrapolated frame from that movement (1/90th of a second after frame 1). We detect the movement of the gun and generate a new frame which we display on behalf the application.

Asw example gif1.gif

When it comes to virtual reality, ATW and ASW are siblings and complement each other. Timewarp is great for accommodating head rotation. In fact, it's perfect for static images at a distance. For applications like 360 videos and features on the horizon, Spacewarp is unnecessary. Conversely, Spacewarp is pretty good for animated objects up close but not so great at tracking head rotation.

With ASW, Oculus is building on ATW to produce the best virtual reality experience possible. Effective latency is kept low and head tracking as before is smooth—and now, moving elements within VR are also kept smooth.[1]

Requirements

ASW requires the following:

  • Oculus Runtime 1.9 or later
  • Windows 8 or later
  • For Nvidia, driver 373.06 or later
  • For AMD, driver 16.40.2311 or later

Until the minimum specification is released, we recommend the following GPUs for ASW testing:

Manufacturer Series Minimum RAM Minimum Model
NVIDIA Pascal 3GB 1060
Maxwell 4GB 960
AMD Polaris 4GB 470
[2]

Testing ASW

To enable ASW testing:

  1. Open your registry editor.
  2. Navigate to HKLM\Software\Oculus VR, LLC\LibOVR.
  3. Create the DWORD AswEnabled key and set it to 1.

While testing your application with ASW, you can switch between rendering modes:

  • Control-Numpad1: Disables ASW and returns to the standard rendering mode.
  • Control-Numpad2: Forces apps to 45Hz with ASW disabled. Depending on the application, you are likely to experience judder.
  • Control-Numpad3: Forces apps to 45Hz with ASW enabled. Enabling and disabling ASW will help you see the effects of ASW.
  • Control-Numpad4: Enables ASW. ASW automatically turns on and off, depending on whether the app maintains a 90Hz frame rate. This is the default runtime rendering mode.[2]

References

  1. https://developer.oculus.com/blog/asynchronous-spacewarp/
  2. 2.0 2.1 https://developer3.oculus.com/documentation/pcsdk/latest/concepts/asynchronous-spacewarp/