Quest Browser浏览器正式支持WebXR混合现实体验
(映维网Nweon 2022年11月17日)正如Connect 2022的公告一样,Meta Quest2和Meta Qust Pro端的Meta Quest Browser浏览器现在已经增加了对WebXR混合现实服务的支持。
Meta Quest Browser现在支持以下WebXR规范:
Passthrough透视
Passthrough为Meta Quest头显提供了物理世界的实时3D可视化。在以前,你无法使用WebXR向用户展示真实世界。但现在Meta Quest Browser浏览器现在已经增加了对WebXR混合现实服务的支持。
Passthrough在Quest Pro是全彩,而Quest 2则是灰度。
要使用Passthrough,请在请求WebXR会话时使用新的”immersive-ar”模式:
navigator.xr.requestSession("immersive-ar").then((session) => { xrSession = session; });
你可以检测浏览器中是否支持Passthrough,如下所示:
navigator.xr.isSessionSupported('immersive-ar').then((supported) => { if (!supported) { return; } // 'immersive-ar' sessions are supported. // Page should advertise AR support to the user. }
你必须在透明背景绘制内容,否则将无法看到Passtrough环境。
你可以在这里体验一个基本的Passtrough示例。
平面检测
除了在防护系统中定义你的工作空间外,你同时可以转到Settings > Guardian > Mixed Reality 来定义房间设置,如办公桌、沙发等。
然后,浏览器会把所述对象显示为具有世界位置的平面形状。
要启用这一功能,你必须在请求会话时传递”plane-detection”功能描述符:
const session = await navigator.xr.requestSession("immersive-ar", { requiredFeatures: ["plane-detection"] });
然后,浏览器请求用户访问房间设置信息,如果被允许,则将其呈现给会话。
启用所述功能后,XRSession将包含包含XRPlanes的新数组“detectedPlanes”。每个XRPlane都包含一个世界位置和一个多边形。目前,相关多边形在Meta Quest头显始终是水平或垂直矩形。你可以使用这些多边形进行命中测试、与VR对象的交互、遮挡等等。
由于很少有人运行防护系统的房间设置,XRSession添加了一个名为“initiateRoomCapture”的新助手功能。这个助手功能将从沉浸式会话中触发防护系统的房间设置。建议你在确定“detectedPlanes”数组中没有平面时调用所述函数。这个“detectedPlanes”数组不会立即填充,因此在会话创建后等待2到3秒,然后再做出决定。每个会话只能调用此函数一次。
你可以在这里体验一个基本的平面检测示例。
持久性锚点
锚点允许你定义现实世界中的位置。定义后,无论设备的原点在何处,锚点都会保持在同一空间中。这允许你在现实世界中放置虚拟对象或为场景设置公共原点。
Meta Quest头显同时支持持久锚,从而允许你在沉浸式会话中保存和恢复相关位置。
你可以通过调用带有位置和XRSpace的“createAnchor”来创建非持久性锚点。这将返回一个具有获取其世界位置的API的对象。即使头显的原点被重置,所述位置在现实世界中都将始终相同。
要创建持久性锚点,请对锚点对象调用“requestPersistentHandle”。生成的字符串可以由站点存储。要恢复锚点,站点可以调用“restorePersistentAnchor”,它在相同位置返回锚点对象。
一个站点目前一次只能创建8个持久性锚点。如果会话在隐私模式下运行,则锚点不会持续。这意味着,如果在隐私模式下保存锚点并关闭,然后重新打开隐私模式,你无法再恢复持久性锚点。清除站点的历史记录同样会删除永久性锚点。
你可以在这里体验一个基本的持久性锚点示例。