为《Supernatural》添加MR模式:方法、挑战和经验

Quest1一个月前更新 firefly
1 0 0

XR导航网 2024年08月09日)《Supernatural》是Quest Store最成功的VR应用之一,以至于Meta一度开出4+亿美元的价格收购Within。这款健身体验除了正常的纯VR模式之外,还提供了MR透视功能,并获得了社区的积极反馈。

该团队的工程总监戴夫·考林(Dave Cowling)近日分享了他们在为《Supernatural》添加混合现实模式时的方法、挑战和经验:

为《Supernatural》添加MR模式:方法、挑战和经验

尽管玩家对MR模式反响积极,但该应用的核心是沉浸在自然环境中的感觉。因此,在保持这种沉浸感的同时提供MR的态势感知是一项有趣的技术挑战。以下是他们采用的方法:

以传送门为中心

大多数《Supernatural》训练都包含在一个完整的360度场景中锻炼。不同的传送门会在训练过程中动态打开,以指示目标的活跃“通道”。通过仅在活跃通道周围显示虚拟世界,这种方法保持了虚拟世界在焦点内的沉浸感,同时在焦点之外提供了现实世界的情境意识。

alpha icosphere

underlay层允许通过framebuffer alpha控制透视可见性。这非常适合该应用的用例,因为它提供了对过渡区域的逐像素控制,允许显示虚拟环境、透视或两者的混合。

为了实现这个功能,他们将渲染分为三个层,通过Unity渲染队列进行分割:

  • 使用透视动态掩码的环境和相关对象

  • alpha icosphere

  • 总是虚拟渲染的对象(手套和目标等)

第一层:环境和传送门按正常方式呈现。

第二层:alpha icosphere仅渲染到alpha通道。这是一个高度镶嵌的~10k顶点球体,覆盖framebuffer并写入alpha蒙版,在传送门可见的地方masking in像素,并在透视feed将出现的地方masking out像素。设计团队通过纹理曲线控制蒙版的衰减。

// Blend operation for the icosphere
// Fragment shader returns (0, 0, 0, mask_amount)
// Note the premultiplied alpha for the framebuffer color
Blend One SrcAlpha, One Zero

第三层:渲染始终可见的虚拟对象。由于它们是在icosphere之后渲染的,因此可以编写一个适当的framebuffer alpha来覆盖icosphere已经设置的内容。

为《Supernatural》添加MR模式:方法、挑战和经验

左图:第1层渲染后。中图:第2层icosphere渲染后(在线框中覆盖了icosphere的顶点密度)。右图:第3层对象渲染后。注意:透视masking区域已人为增加,并在这里显示为绿色。

充满挑战

尽管概念很简单,但这种方法产生了一些特定的一阶和二阶挑战。例如,由于MR中与现实世界表面不协调,他们需要实现UI缩放,将虚拟元素移动到离camera更近的地方,以确保在MR中浏览内容的感觉尽可能舒适。为了保持质量,他们还提升了教练视频的清晰度,并在MR模式下将帧率从90fps降至80fps。此外,由于透视的光子到光子延迟,控制器运动会导致虚拟世界和透视世界之间的边界明显不匹配。他们投入了一定的时间来调整边界,并提出了一个可能的缓解方法,允许控制器编写本地化的alpha blob。

为《Supernatural》添加MR模式:方法、挑战和经验

为《Supernatural》添加MR模式:方法、挑战和经验

请注意,在报告的控制器位置(虚拟手套)和透视之间存在实质性的不匹配,这是由透视中的光子对光子延迟引起。

Quest 2

为了在可行情况下保持硬件生态系统的功能均等,他们重新构建了计算过程,将处理摊销到可配置的帧数,以解决在Quest 2上出现的帧率问题。由于带有alpha punch-through的underlay意味着需要仔细考虑在半透明第三层对象中使用framebuffer alpha,他们最终不得不对数个着色器进行修改来完成这个任务。在某些情况下,他们不得不编写一个Unity标准着色器集的替代品,以提供需要的特定于alpha的控制。

总结和感谢

考林最后感谢了《Supernatural》团队的每个人,是他们共同实现了这一功能。

© 版权声明

相关文章

暂无评论

暂无评论...
zh_CNZH
Powered by TranslatePress