VRLayerInit - 表示要在 VR 显示器中呈现的内容层

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

VRLayerInitWebVR API 的接口(字典),表示要在 VR 显示器中呈现的内容层(HTMLCanvasElementOffscreenCanvas)。

您可以使用 VRDisplay.getLayers() 方法来获取 VRLayerInit 对象,并使用 VRDisplay.requestPresent() 方法来显示它们。

属性

VRLayerInit.leftBounds

定义画布的左边纹理边界,其内容将由 VRDisplay 显示。

VRLayerInit.rightBounds

定义画布的右边纹理边界,其内容将由 VRDisplay 显示。

VRLayerInit.source

定义在调用 VRDisplay.submitFrame() 时由 VRDisplay 显示其内容的画布。

实例

// 当前返回一个空数组
var layers = vrDisplay.getLayers();

if(navigator.getVRDisplays) {
  console.log('支持 WebVR 1.1');
  // 然后将显示器连接到计算机
  navigator.getVRDisplays().then(function(displays) {
    //如果有显示器,使用它来显示场景
    if(displays.length > 0) {
      vrDisplay = displays[0];
      console.log('发现显示器');
      // 单击该按钮时开始显示:只能响应用户手势来调用它
      btn.addEventListener('click', function() {
        vrDisplay.requestPresent([{ source: canvas }]).then(function() {
          console.log('呈现给 WebVR 显示器');

          // 这里返回一个 VRLayerInit 对象的数组
          var layers = vrDisplay.getLayers();

          // ...
        });
      });
    }
  });
}

VRLayerInit 对象的内容像这样:

{
  leftBounds : [ ... ],
  rightBounds: [ ... ],
  source: canvasReference
}

注意canvasReference 是指 <canvas> 元素本身,而不是与画布关联的 WebGL 上下文。 另外两个成员是数组

规范

规范 状态 备注
WebVR 1.1
VRLayerInit 的定义
草稿 初始定义

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持 不支持≤18 — 79

554

645

不支持 未知 不支持
leftBounds 不支持≤18 — 79

554

645

不支持 未知 不支持
rightBounds 不支持≤18 — 79

554

645

不支持 未知 不支持
source 不支持≤18 — 79

554

645

不支持 未知 不支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 不支持56 — 80123 未知55 未知 未知 未知
leftBounds 不支持56 — 80123 未知55 未知 未知 未知
rightBounds 不支持56 — 80123 未知55 未知 未知 未知
source 不支持56 — 80123 未知55 未知 未知 未知

1. 只能在 Chrome 的实验版本中使用。(其他构建在调用 Navigator.getVRDisplays() 时不会返回任何设备。)

2. Chrome 56 支持 Daydream View。

3. Chrome 57 支持 Google Cardboard。

4. 在 Firefox 55 中启用了 Windows 支持。

5. 在 Firefox 64 中启用了 macOS 支持。

6. Samsung Internet 7.0 支持 Google Cardboard。

相关链接

  • MozVr.com — Mozilla VR 团队提供的演示,下载和其他资源。