# WebXR Viewer 2.0发布:IOS平台WebAR功能实现

译注

WebXR Viewer 2.0是一款IOS平台的浏览器应用,它能在苹果手机上实现AR功能。

WebXR Viewer 2.0支持Verge3D的AR应用程序。

本文译自:WebXR Viewer 2.0 Released

作者:BLAIR MACINTYRE

日期:2020年5月29日

webxr1

我们很高兴地宣布,今天发布的WebXR Viewer 2.0版是iOS上第一个实现新WebXR Device API的浏览器,可在网络上实现高性能的AR体验,而不需要与第三方Javascript库和网站共享私人空间的图片。

自iOS平台的试验WebXR上一版(1.17版本)至今已经快一年了,并且在过去的一年中,我们一直在对该应用程序进行两项重大更改:

(1)我们更新了Javascript API以实现官方WebXR Device API规范;

(2)我们将基于ARKit的WebXR实现从最小的单页Web浏览器移植到功能齐全的Firefox for iOS代码库

# WebXR Device API:过去、现在和将来

此版本的首要目标是更新浏览器的WebXR Javascript API,以支持官方WebXR Device API,其中包括各种已批准建议的AR功能。WebXR Viewer的最初目标是为我们提供一个基于iOS的平台,以试验WebXR的AR功能,并且我们过去还撰写了文章,内容涉及对隐私和世界构建计算机视觉以及渐进式响应式WebXR设计进行试验。我们希望在新标准的背景下继续进行这些探索。

3年前,我们开发了在WebXR Viewer的第一版中使用的API(作为WebXR如何将AR和VR结合的建议;(如果您有兴趣,请参阅WebXR API提案),然后在一年前对其进行更新以适应不断发展的标准。尽管与官方API非常相似,但该官方API的早期版本在某些方面与最终标准不兼容。现在,WebXR出现在主流浏览器中,这使全世界的开发者对现有旧的,不兼容的API感到困惑。

在过去的一年中,我们重建了API以符合官方规范,并更新了旧的API功能以匹配当前的提案(例如锚点,命中测试和DOM覆盖),并更明确地将其标记为非标准(例如,方法是在方法名称中添加nonStandard_前缀),或从新版本中将其删除(例如,使用摄像头)。现在,Web上的大多数WebXR AR示例都可以与WebXR Viewer一起使用,例如上图中的WebXR Samples库中的“galaxy”示例。

(WebXR Viewer的Javascript API完全在上面链接的webxr-ios-js信息库中的Javascript库中定义,示例也在那里;当页面调用其中的一个时,该库按需从github master分支加载。WebXR API调用。如果您想尝试对API进行更改,则可以自己构建API,并在iOS应用设置中更改URL,以加载您的版本而不是我们的版本。我们很高兴收到PR和问题,位于该github仓库中。)

webxr2

基于标准的版本的旧的“Peoples”演示(左);Three.js WebXR AR Paint演示(中);布兰登·琼斯(Brandon Jones)的XR恐龙演示(右)

在不久的将来,我们有兴趣继续试验WebXR的更高级的AR功能,并查看开发人员对这些功能进行了哪些试验。大多数AR用例都需要将虚拟内容与世界上有意义的事物集成在一起。将可爱的恐龙或超级英雄放在世界的平坦表面上,可以在任何地方进行有趣的演示,但是真正有用的消费者和商业应用程序需要感知、跟踪和增强“人、地方和事物”,并且其内容会随着时间的流逝而持续存在。Mozilla下一步将致力于通过这些功能来增强沉浸式Web的功能,尤其是以向用户提供隐私和安全性的“Webby”方式。我们需要确保有一个基于标准的解决方案,该解决方案安全且私密,这与目前市场上专有的解决方案不同,后者可以创建由单个公司控制的新的封闭市场。

虽然纯粹基于视觉的AR应用程序(通过直接访问摄像机视频在网页内实现)显示出很高的吸引力,但未能使用基础平台技术限制了它们的功能,以及使用了太多的CPU和GPU资源,它们只能运行持续数秒至数分钟,然后再进行热调节,使其无法使用(或耗尽电池)。WebXR为基于视觉的基础传感技术提供了可以在本机实施的可能性,因此它们可以利用基础平台API的优势(这两种性能均可以最大化,CPU,GPU和电池使用量也可以降至最低)。

现在将其中一些功能标准化并以开放的、跨平台的方式(例如,固定锚点)实现它们还为时过早,但现在可以实现其他功能(例如,下面显示的面部和图像跟踪示例)。在新发布的Firefox Reality for Hololens2中,我们正在尝试将手部跟踪公开到WebXR中进行输入,这是一种关键的传感技术,对于基于头戴式显示器的AR至关重要(Oculus也在尝试将手部跟踪公开到Quest上的Oculus浏览器中的VR)。像ARKitVuforia这样的API可以让您检测和跟踪现实中的人脸、图像和物体,这是我们在早期使用WebXR Viewer探索的功能。我们保留了在当前WebXR Viewer中开发的API版本,并热切希望将来将这些功能标准化。

webxr3

利用ARKit的脸部追踪功能,通过戴一副太阳镜来增强作者的个性(左);使用ARKit的图像跟踪器将鸭子模型放在Hubs主页的打印图像上(右)

# 与功能齐全的Web浏览器集成

第二个变化会立即被注意到:启动该应用程序时,您会看到熟悉的Firefox for iOS欢迎界面,并能够利用其同名的许多功能(标签,历史记录,私人浏览和使用Firefox帐户在设备之间进行同步(仅举几例)。尽管并非所有Firefox功能都可以正常工作,例如从Firefox发送到设备,但是使用WebXR Viewer的体验应该更加令人愉悦和高效。

webxr4

WebXR Viewer应用程序中熟悉的Firefox for IOS新页面(左);WebXR Viewer示例页面包含Javascript API页面(中)中的示例;以及WebXR页面的新“ ...”菜单选项(右)。

但是,我们将此代码移至Firefox代码库的目标不仅仅是为WebXR Viewer创建更好的浏览体验。毕竟,这是一个实验性应用程序,面向希望在iOS上探索WebAR的开发人员,我们不打算长期将其作为单独的产品来支持。但是苹果尚未显示出实施WebXR的任何迹象,并且所有主流平台上对于成功实现沉浸式Web都至关重要。为此,我们将该实现转移到了Firefox for iOS代码库中,以了解这种实现WebXR的方法在Firefox内部的实现方式,并着眼于将来(可能)将这些功能集成到Firefox for iOS中。WebXR实现完全可以工作吗?(是)它的性能会比旧应用更好或更差吗?(事实证明更好!)将会出现什么UI和可用性问题?(大量)。尽管在将其移至主流浏览器之前仍有大量UI工作要做,但我们对性能感到非常满意;在此版本的应用程序中,WebXR演示的运行效果比上一个版本更好,并且对非WebXR网页的影响似乎很小。

我们非常希望您下载该应用程序的新版本,并在其中试用WebXR内容。如果您这样做,请告诉我们您的体验。

疑问?

请在钉钉群:21935218交流。群内除聚集众多开发者,还有最新动态、视频教程、智能客服@宅小呗、答疑、直播、下载等实用功能。如需宅家呗提供技术支持,请加钉钉好友:zjbcool

Verge3D知识社区 客服
上次更新: 2020-8-16 12:51:23