3Glasses X1

Valve VR程序员开发Aardvark平台,将类似AR的实用程序带入VR

该平台通过Steam Early Access项目推出

零酱 2021年01月20日 来源:映维网

Valve的VR程序员乔·卢德维格(Joe Ludwig)正以个人名义打造一个开源平台,并致力于将类似AR的实用程序带到虚拟现实。名为Aardvark的项目是我们今天所熟知的VR控制面板扩展的一个演变,它可以把新的功能注入能在任何VR应用内运行的交互式和空间感知式“小组件”之中。

AR,ar软件,ar技术

卢德维格从早期开始就参与了公司的虚拟现实项目,而最近他一直在致力于能够将增强现实带到虚拟现实的开源项目Aardvark。这意味着一个允许轻量级空间应用在虚拟现实空间内运行的“中间层”。

与其他VR环境一样,SteamVR提供一个允许用户在任何应用程序内调用以访问有用信息的控制面板,比如浏览游戏库或改动设置。

尽管VR控制面板提供了有用的核心功能,但就本质而言,它们只是在当前运行中的VR应用之上显示的一个巨大浮动屏幕。作为对比,Aardvark的目标是允许称为“小组件”的类AR实用程序在现有VR应用中运行,从而提供额外的功能。

例如,你可能希望构建一个虚拟相机形式的截图工具,并允许玩家自由拍摄虚拟世界的照片,但又不想将这个功能纳入到游戏之中。这种工具可以变成一个Aardvark小组件,并在任何VR应用程序中运行。类似地,计时器、网络视频播放器、Twitch聊天盒、绘图板、好友列表等简单的实用程序同样可以构建为Aardvark小工具,并允许玩家用在任何游戏之中。

Aardvark属于非常早期的开发阶段,到目前为止大都是基本的示例性小组件,但卢德维格演示了它们的作用和在VR环境中运行的效果:

值得一提的是,Aardvark已经以抢先体验版的形式登陆Steam。在最新一集的Voices of VR播客中,他解释了平台的设计方法。

有趣的是,Aardvark小组件在某种意义上属于“Web应用”,其中小组件的功能定义类似于网页,而Aardvark则是将其呈现到虚拟空间的“浏览器”。但不同于WebXR,因为它实际上会直接渲染自己的完整场景。卢德维格表示这种设计主要是为了性能和可扩展性:

……Aardvark在某种程度上讲是我的白皮书……我认为JavaScript在声明性环境中的效果非常出色。当你打开一个网页时,你看到的是一些HTML和CSS,以及一些由JavaScript生成的图像。JavaScript并不是每次都需要生成一个像素,因为你的显示屏刷新率是60Hz,JavaScript所做的是,它要么首先进行声明,要么操纵声明的HTML元素,然后通过C++编写的布局引擎运行,这样就可以很快地计算出来,例如方框有多大,字体有多大,呈现出所有的一切……,这都会进入显示屏上的矩形方框之中,而JavaScript只在你点击什么,拖动什么或鼠标移到什么地方时运行。

所以,JavaScript以人类时间尺度或交互时间尺度发生的事件运行,这种事件是每秒几次,而不是每秒90次或144次(虚拟现实头显的渲染率]。当鼠标移动时,原生代码,C++代码会实现视频的平滑动画或控件平滑的动画。你可以通过HTML和CSS的声明性方法来表达你的意图,然后由Web浏览器系统的原生代码将其实际地呈现给用户。

Aardvark类似。在Aardvark中,你没有采用WebXR方法,即询问系统‘手在哪里,加载模型,在手的位置绘制模型’。你(在Aardvark)不能这样做。你要做的是说‘绘制这个手的模型’,然后你把它交给Aardwark,而Aardwark会说‘哦,我要相对于手绘制这个模型’……但你要作出的声明是‘在手上绘制它’。这意味着在11毫秒后,当你的手向左移动几毫米时,Aardwark知道它需要在手部之上,并在新的手部位置绘制它。

所以Aardvark需要以帧速率运行,但没有一个小组件需要以帧速率运行。如果你有一个速度慢的小组件,那也没关系,因为它不需要以帧速率运行。所以,在以声明方式进行操作的性能影响和使用场景图进行合成,以及使用深度缓冲区和像素图进行合成的视觉逼真度影响之间,我认为Aardvark正在采取一种在很多方面更具可扩展性的方法,并将在很多方面实现更高的质量和更高的保真度。但我构建和研究Aardvark的部分原因是为了证明这个论点。我认为它尚未得到解答……但我们最终会找到答案。

“浏览器”方法带来了其他好处。首先,小组件可以以类似于网站的功能进行构建,即呈现文本、加载图像和从网页其他部分提取信息的能力。卢德维格指出,基于Web同时意味着小组件的分发和维护非常容易,因为小组件基本上是任何人都可以通过URL访问的网页。只要你知道如何编写这个小组件,分发它就像托管一个网站并向人们发送URL一样简单。

AR,ar软件,ar技术

在Voices of VR中,他提到平台的开发依然在进行之中,而且大部分功能都是最低限度地进行定义,这样Aardvark就可以自然地进化,以适应小组件开发者设想的用例。

项目目前的主要任务是寻找参与者来尝试构建自己的小组件。如果你对构建小组件或为底层平台做贡献感兴趣,请查看Aardvark的GitHub页面。

相关推荐

用户评论

Nolo X1