最新资讯风向标

OculusUnity插件v23为Quest加入OpenXR支持以及「相位同步」

2021-02-08 09:27 作者: 来源: 本站 浏览: 25次 字号:

摘要:       Oculus Unity插件最新的v23版本增加了对Quest和Quest 2应用程序开发的实验性OpenXR支持。同时Unity和Unreal Engine 4的Oculus插件集成中都增加了一种新的减少位置延迟的技术,称为「相位同步」。Ocu...

  

   Oculus Unity插件最新的v23版本增加了对Quest和Quest 2应用程序开发的实验性OpenXR支持。同时Unity和Unreal Engine 4的Oculus插件集成中都增加了一种新的减少位置延迟的技术,称为「相位同步」。Oculus建议所有Quest开发人员都应当考虑使用这一技术。

   Oculus Unity插件对OpenXR的支持

   OpenXR是一项旨在简化XR应用程序开发的行业标准,今年即将迈向大规模的应用。今天Oculus发布了新的开发工具,对用Unity构建的Quest和Quest 2应用程序增加了实验性的OpenXR支持。

   OpenXR允许开发人员一次构建与任何OpenXR头显兼容的应用程序,而无需为每个头显进行单独适配。尽管Unity自身也在推进引擎对于OpenXR的支持,但Oculus Unity插件显然动作要更快一些。

   今年早些时候,Oculus也发布了用于构建源生Quest和Rift应用程序的OpenXR支持。

   Unity和虚幻引擎中的「相位同步」减少延迟

   Oculus称,针对Unity和Unreal Engine 4的v23 Oculus插件还带来了新的延迟降低技术,称为「相位同步」(Phase Sync),该技术可以减少位置跟踪延迟,却不会产生性能开销。Oculus建议每个开发中的应用都应启用「相位同步」,尤其是在应用对延迟敏感的情况下(例如使用手势识别等等)。

   虽然Quest长期以来一直使用「异步时间扭曲」来减少头显旋转时的渲染延迟,方法是将渲染的帧依据画面即将显示时头显最新的旋转数据进行再次处理,但位置跟踪并不能从该技术中受益。

   降低位置追踪延迟的一种方法是尽量缩短帧渲染完成到实际发送显示器之间的时间长度。理想情况下,一帧画面应当在发送到显示器之前刚完成渲染。如果渲染提早完成,则从完成帧渲染到将其发送到显示器之间的整段时间意味着位置追踪的延迟。

   「相位同步」引入了动态帧定时,通过动态调整来确保以最佳方式完成帧渲染以减少等待时间。

   与Oculus PC SDK不同,Oculus Mobile SDK自推出以来就一直使用固定延迟模式来管理帧时序。固定延迟模式的原理是尽早完成所有操作,以避免过时的帧。它很好地实现了这一目标,但是随着Quest 2的CPU和GPU计算能力比Quest显著增加,许多应用程序可以比计划提前完成帧渲染。这反而带来了更高的追踪延迟。

   与固定延迟模式相比,「相位同步」会根据应用程序的工作量自适应地处理帧定时。目的是使帧恰好在合成器需要完整画面帧之前完成渲染,这样可以尽可能多的降低延迟,并且也不会导致任何帧丢失。下图显示了典型的多线程VR应用程序上的「相位同步」和固定延迟模式之间的差异。