VRLayerInit - 表示要在 VR 显示器中呈现的内容层
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
VRLayerInit
是 WebVR API 的接口(字典),表示要在 VR 显示器中呈现的内容层(HTMLCanvasElement
或 OffscreenCanvas
)。
您可以使用 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 的定义 |
草稿 | 初始定义 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 不支持 | ≤18 — 79 | 554 645 | 不支持 | 未知 | 不支持 |
leftBounds | 不支持 | ≤18 — 79 | 554 645 | 不支持 | 未知 | 不支持 |
rightBounds | 不支持 | ≤18 — 79 | 554 645 | 不支持 | 未知 | 不支持 |
source | 不支持 | ≤18 — 79 | 554 645 | 不支持 | 未知 | 不支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS 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 团队提供的演示,下载和其他资源。