发布支持VR的Web3D内容

基于WebGL的Web3D也可以有VR体验,只要可以在Web端应用中做到以下两点即可:

  • 可以在Web端中得到VR设备的各种状态,比如头显或显示设备的位置、朝向以及其它的运动姿态等
  • 可以将Web端中显示和渲染的内容通过合适的方式送往头显或显示设备
发布支持VR的Web3D内容_第1张图片

针对上述两点,在不同的Web内容的实现中有不同的方法,主要分为以下三种:

1. 基于Html5+js开发的Web3D内容

对于此类Web内容,使用WebVR.js的库来实现。
WebVR.JS是由Mozila和Google联合开发的一个针对Web端的VR库,目前还正处于实验阶段。其中提供了基本的js对象,可以获取无差异的VR设备状态,比如在设备是Oculus或HTC Vive时,会得到对应的头显的位置、朝向以及姿态等,进而用这些信息控制Web3D中的摄像机以便来进行渲染;同时,对于移动VR设备,其会获得设备的陀螺仪状态来控制摄像机的属性。渲染的结果也会根据不同的VR设备以不同的方式向目标端进行传送,比如Ocolus/Vive会以双眼视角分别渲染之后传向设备,而对于移动VR设备则会渲染左右眼到同一屏之后传向终端。

关于WebVR.js库在具体实践中的具体使用方法会在下一篇博文中来介绍。
示例

2. 基于Unity引擎开发的Web内容

对于使用Unity引擎开发的Web内容,可以使用第三方的插件:Unity-WebVR-Assets。
在Unity的项目工程中导入该插件之后,将其中的WebVRCamera.prefab添加到工程中,用来调整原始的Camera,之后再来进行常规的Unity->Html5内容的发布即可得到具有VR支持的Html5内容。
发布支持VR的Web3D内容_第2张图片


3. 基于Unreal或其它自研引擎开发的Web内容

对于此类内容可使用Emscripten来进行Web化。同时,最新的Emscripten中已经添加了对于VR的支持,使用此特性之后生成的Web内容也可以得到VR化。

上述三种方法可以实现几种主流Web3D内容对VR的支持,但是目前三种方法都仍处于开发与实验阶段,都不是很稳定而且也存在相应的bug,请大家使用时审慎。

你可能感兴趣的:(Web3D,VR)