Oculus has announced that as of today, support for Asynchronous Spacewarp is available and active for all users that install the 1.10 runtime. Announced at the Oculus Connect 3 event in October, ASW promises to complement existing Asynchronous Timewarp (ATW) technology to improve the experience of VR for lower performance systems that might otherwise result in stutter.
A quick refresher on Asynchronous Timewarp is probably helpful. ATW was introduced to help alleviate the impact of missed frames on VR headsets and started development back with Oculus DK2 headset. By shifting the image on the VR headset without input from the game engine based on relative head motion that occurred AFTER the last VR pose was sent to the game, timewarp presents a more accurate image to the user. While this technology was first used as a band-aid for slow frame rates, Oculus felt confident enough in its advantages to the Rift that it enables for all frames of all applications, regardless of frame rate.
ATW moves the entire frame as a whole, shifting it only based on relative changes to the user’s head rotation. New Asynchronous Spacewarp attempts to shift objects and motion inside of the scene by generating new frames to insert in between “real” frames from the game engine when the game is running in a 45 FPS state. With a goal of maintaining a smooth, enjoyable and nausea-free experience, Oculus says that ASW “includes character movement, camera movement, Touch controller movement, and the player's own positional movement.”
To many of you that are familiar with the idea of timewarp, this might sound like black magic. Oculus presents this example on their website to help understand what is happening.
Seeing the hand with the gun in motion, ASW generates a frame that continues the animation of the gun to the left, tricking the user into seeing the continuation of the motion they are going through. When the next actual frame is presented just after, the gun will have likely moved slightly more than that, and then the pattern repeats.
You can notice a couple of things about ASW in this animation example however. If you look just to the right of the gun barrel in the generated frame, there is a stretching of the pixels in an artificial way. The wheel looks like something out of Dr. Strange. However, this is likely an effect that would not be noticeable in real time and should not impact the user experience dramatically. And, as Oculus would tell us, it is better than the alternative of simply missing frames and animation changes.
Some ASW interpolation changes will be easier than others thanks to secondary data available. For example, with the Oculus Touch controller, the runtime will know how much the players hand has moved, and thus how much the object being held has moved, and can better estimate the new object location. Positional movement would also have this advantage. If a developer has properly implemented the different layers of abstraction for Oculus and its runtime, separating out backgrounds from cameras from characters, etc., then the new frames being created are less likely to have significant distortions.
I am interested in how this new feature affects the current library of games on PCs that do in fact drop below that 90 FPS mark. In October, Oculus was on stage telling users that the minimum spec for VR systems was dropping from requiring a GTX 970 graphics card to a GTX 960. This clearly expands the potential install base for the Rift. Will the magic behind ASW live up to its stated potential without an abundance of visual artifacts?
In a blog post on the Oculus website, they mention some other specific examples of “imperfect extrapolation.” If your game or application includes rapid brightness changes, object disocclusion trails (an object moving out of the way of another object), repeated patterns, or head-locked elements (that aren’t designated as such in the runtime) could cause distracting artifacts in the animation if not balanced and thought through. Oculus isn’t telling game developers to go back and modify their titles but instead to "be mindful of their appearance."
Oculus does include a couple of recommendations to developers looking to optimize quality for ASW with locked layers, using real-time rather than frame count for animation steps, and easily adjustable image quality settings. It’s worth noting that this new technology is enabled by default as of runtime 1.10 and will start working once a game drops below the 90 FPS line only. If your title stays over 90 FPS, then you get the advantages of Asynchronous Timewarp without the potential issues of Asynchronous Spacewarp.
The impact of ASW will be interesting to see. For as long as Oculus has been around they have trumpeted the need for 90 FPS to ensure a smooth gaming experience free of headaches and nausea. With ASW, that, in theory, drops to 45 FPS, though with the caveats mentioned above. Many believe, as do I, that this new technology was built to help Microsoft partner with Oculus to launch VR on the upcoming Scorpio Xbox console coming next year. Because the power of that new hardware still will lag behind the recommended specification from both Oculus and Valve for VR PCs, something had to give. The result is a new “minimum” specification for Oculus Rift gaming PCs and a level of performance that makes console-based integrations of the Rift possible.