VREyeParameters - 表示为给定的眼睛正确渲染场景所需的所有信息

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

VREyeParametersWebVR API 的接口,表示为给定的眼睛正确渲染场景所需的所有信息,包括视野信息。

可通过 VRDisplay.getEyeParameters() 方法访问此接口。

此接口中的值不应用于计算视图或投影矩阵。 为了确保尽可能广泛的硬件兼容性,请使用 VRFrameData 提供的矩阵。

属性

VREyeParameters.offset 只读

表示从用户眼睛之间的中心点到眼睛中心的偏移,以米为单位。

VREyeParameters.fieldOfView 只读

表示眼睛的当前视野,该视野可以随着用户调整其瞳孔间距(IPD)而变化。

VREyeParameters.renderWidth 只读

表示每个眼睛视口的建议渲染目标宽度,以像素为单位。

VREyeParameters.renderHeight 只读

表示每个眼睛视口的建议渲染目标高度,以像素为单位。

实例

navigator.getVRDisplays().then(function(displays) {
  // 如果显示器可用,使用它来呈现场景
  vrDisplay = displays[0];
  console.log('发现显示器');
  // 单击该按钮时开始展示:
  // 只能通过用户手势来调用
  btn.addEventListener('click', function() {
    vrDisplay.requestPresent([{ source: canvas }]).then(function() {
      console.log('呈现给WebVR显示器');

      // 将画布大小设置为vrDisplay视口的大小
      var leftEye = vrDisplay.getEyeParameters('left');
      var rightEye = vrDisplay.getEyeParameters('right');

      canvas.width = Math.max(leftEye.renderWidth, rightEye.renderWidth) * 2;
      canvas.height = Math.max(leftEye.renderHeight, rightEye.renderHeight);

      drawVRScene();
    });
  });
});

规范

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

桌面浏览器兼容性

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

554

645

不支持 未知 不支持
fieldOfView 不支持15 — 79

554

645

不支持 未知 不支持
maximumFieldOfView 不支持 不支持

554

645

不支持 未知 不支持
minimumFieldOfView 不支持 不支持

554

645

不支持 未知 不支持
offset 不支持15 — 79

554

645

不支持 未知 不支持
recommendedFieldOfView 不支持 不支持 不支持 不支持 未知 不支持
renderHeight 不支持15 — 79

554

645

不支持 未知 不支持
renderRect 不支持 不支持 不支持 不支持 未知 不支持
renderWidth 不支持15 — 79

554

645

不支持 未知 不支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 不支持56 — 80123 未知55 未知 未知 未知
fieldOfView 不支持56 — 80123 未知55 未知 未知 未知
maximumFieldOfView 不支持 不支持 未知55 未知 未知 未知
minimumFieldOfView 不支持 不支持 未知55 未知 未知 未知
offset 不支持56 — 80123 未知55 未知 未知 未知
recommendedFieldOfView 不支持 不支持 未知 未知 未知 未知 未知
renderHeight 不支持56 — 80123 未知55 未知 未知 未知
renderRect 不支持 不支持 未知 未知 未知 未知 未知
renderWidth 不支持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 团队提供的演示,下载和其他资源。