Optimizing Web Virtual Reality
Rice University
Rice University, 2017
@phdthesis{karanjai2017optimizing,
title={Optimizing Web Virtual Reality},
author={Karanjai, Rabimba},
year={2017}
}
Performance has always been a key factor in any virtual and augmented reality experience. Since Virtual Reality was conceived, performance has always been the factor that has often slowed down, or at times even halted the adoption of Virtual Reality related technologies. More recently, the hardware advancements have caught up with the development so that virtual reality experiences can be rendered satisfactorily. The performance gains, however, still depend a lot on both the hardware and the software platform that we use. With mobile phones becoming one of the primary devices to consume media, it is critical to pay attention to how these applications perform on portable devices. With help of the Web Graphics Library (WebGL), it is now possible to create Web Virtual Reality capable experiences that can directly be executed on supported web browsers. However, that raises new challenges like making these JavaScript-based web applications run with near-native performances for the user. Immersive reality applications, like those built for WebVR, assume that performance will always be satisfactory to avoid both screen latencies and physical side effects such as nausea. This thesis presents a collection of optimizations targeted specifically at WebGL and the library, Three.js – on top of which most Web Virtual Reality applications are built including the Mozilla aframe library – though the principles behind our optimizations can be applied to other frameworks as well. Our approach identifies certain aspects and pain-points in the present framework including object loading, texture rendering and stereoscopic image production. We propose, implement and test our approach to optimize these aspects, and show that a visible performance gain is observed on both desktop and mobile web browsers. Further, we show that some of our approaches let the virtual and augmented reality applications utilize parallelism in a way that allows them to handle more complex scenarios than what is available with state-of-the-art solutions in production devices. Since Three.js and webgl are not only used by WebVR/AR/MR applications but also by a large number of games and graphic rendering applications, our improvements can impact all applications that utilize these frameworks. Experiments on both desktop and mobile browsers affirm our hypothesis. We also designed a new set of benchmarks and techniques to measure WebVR performance, since there is no pre-existing benchmark suite that could be used to capture VR performance on browsers.
August 26, 2018 by hgpu