VREyeParameters - 表示为给定的眼睛正确渲染场景所需的所有信息
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
VREyeParameters
是 WebVR 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 的定义 |
草稿 | 初始定义 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 不支持 | ≤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 | 不支持 | 未知 | 不支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS 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 团队提供的演示,下载和其他资源。