WebVR: Introducing VR Concepts

Learn basic VR concepts to understand how to use VR rendering and to better leverage the WebVR API.

In this episode, we'll talk about values VR concepts. I'm Alexis Menard, and I will introduce the basics to create the illusions of reality. This is WebVR. 

To create an immersive, yet performant VR experience, you need to understand how VR works. Virtual reality experiences start with simulating the world in front of your eyes. It's done by using a stereoscopic display in an HMD. A VR headset is built with two lenses together with one or two displays inside. In each display, we show slightly different angles of the scene to each eye, simulating depth. This means that a VR application has to render two frames—one for each eye with slightly different parameters. These parameters, called user pose, are calculated using the sensors that are located inside the HMD. If your system supports room-scale tracking, you will also get the position in the pose data. 

The final visual effect is applied with the lenses, which create a stereoscopic 3D image by angling the two 2D images to mimic each of your eyes. Fresnel lenses is the distortion they apply on the content. Think of a magnifying glass. The middle content is sharp, but the edges are distorted. A VR runtime has to take into account this problem and apply post-processing on each frame. The VR system has to neutralize the distortion by applying the opposite effect of the lenses. This is called barrel distortion. If you have ever wondered why VR imaging looked distorted on your smartphone before you put them in your HMD, this is the reason. 

The final critical part of VR is latency. If the user perceives dropped frame or slowness in the refreshing the content, it will most likely lead to motion sickness and provide a poor user experience. If a VR application doesn't meet its frame budget—for example, 11 milliseconds in a 90 hertz VR display—the VR runtime will trigger what we call asynchronous timewarp or reprojection, basically showing the last dropped frame reprojected with the latest user pose. Timewarp has drawbacks such as jitter. And as a developer, you should always try to meet your frame budget. Thanks for watching and subscribing to the Intel Software channel. We'll see you next week for another episode of WebVR.