随着信息技术的迅速发展,虚拟现实(Virtual Reality,VR)技术在近些年不断完善,其应用范围也变得十分广泛。为了搭建逼真的虚拟场景,VR技术一般都需要用到大量精美的图像和复杂的动作。因此,大部分的VR应用都借助于复杂的Unity引擎构建。为了降低VR技术的使用难度,WebVR技术诞生。该技术使得开发者只需要利用JavaScript和WebGL等基础的Web技术即可创建VR场景。作为世界著名的非营利组织,Mozilla在WebVR方面做了大量工作。之前,该组织已经开始实现头部跟踪方面的WebVR API,用来跟踪VR设备的运动情况,增强VR场景的互动性。近期,WebVR API的标准草案正式出炉,供相关人士进行讨论。接下来,本文就对该草案内容进行简要介绍。
首先,该草案定义了访问基于Web的传感器和头戴式显示器(Head-Mounted Display,HMD)等虚拟现实设备的标准。一般而言,VR应用都需要底层硬件能够提供高精度、低延迟的数据以保证上层应用的用户体验。之前,VR设备的厂商都是根据自身设备的特点,提供各自定义的接口供上层使用。然而,这些接口既增加了应用开发者的难度,又很难保证精度和延迟。因此,WebVR API这一统一的标准被提出。
目前,该标准草案仅支持两个VRDevice设备的变量。这两个变量分别表示了一个硬件设备中其中一部分组件的一个特殊能力。以一个典型的Oculus Rift的HMD为例,它可以包含HMDVRDevice和PositionSensorVRDevice这两个变量。其中,HMDVRDevice用来描述设备的光学特性(包括视场和瞳孔间距等);PositionSensorVRDevice则用来描述HMD的位置和方向。这两个变量中的PositionSensorVRDevice可以单独存在,用来表示单个控制器(无显示设备)的位置等信息。草案指出,如果未来有新的硬件设备(如眼球追踪系统等)出现,标准可以再逐渐添加额外的VRDevice变量。
作为最主要的内容,草案详细描述了用来支持实时访问的文档对象模型(Document Object Model,DOM)的接口和功能。这包括了VREye、VRFieldOfView、VRPositionState、VREyeParameters、VRDevice、HMDVRDevice、PositionSensorVRDevice和Navigator Interface extension。其中,针对VRPositionState和VREyeParameters等接口,标准详细解释了各个属性和方法的含义,并给出了一些使用案例。
WebVR 作为将虚拟现实场景嵌入到网页的技术,已经开始广泛应用到电影、医药、建筑等行业。通过以上可以看出,WebVR API的标准草案为统一接口的定义提供了很好的参考。