Meta公司针对Unity和Unreal引擎的“OpenXR”集成方案,正在引发PC VR游戏开发者的不满,因为该方案实际上限制了其他厂商的PC VR headset的兼容性。
OpenXR作为一个开放的、跨平台的API标准,旨在为增强现实(AR)、虚拟现实(VR)和混合现实(MR)应用提供统一的开发接口,并得到业界广泛支持。 其核心理念是开发者只需构建一次应用程序,即可在各种VR硬件上运行,无需为不同厂商的硬件编写特定的API接口。 然而,至少在目前,理想与现实之间存在一定的差距。
尽管几乎所有头显和运行时(除了Apple VisionPro和PS5上的PlayStation VR2)都声称支持OpenXR,但像MetaandPICO这样的公司仍然提供针对Unity和Unreal引擎的专有集成方案。 这本身无可厚非,但问题随之而来。
这意味着,任何使用这些Meta推荐和推广的集成方案的开发者,都需要额外实现一套独立的子系统,以支持其他PC VR头显。这恰恰是OpenXR本应解决的问题。 这也是为什么许多PC VR游戏仍然使用SteamVR的传统OpenVR API,而不是任何OpenXR实现的原因。 换句话说,为了保证跨平台兼容性,开发者不得不绕过Meta看似“开放”的OpenXR方案,转而依赖更传统的SteamVR途径。
软件开发者Matthieu Bucchianeri几个月来一直在公开场合提出这个问题。 Bucchianeri曾在索尼参与PS4和初代PlayStation VR的开发,在SpaceX参与Falcon 9和Dragon项目,并在微软参与HoloLens和Windows MR的开发。目前他在微软就职于Xbox部门。在微软期间,他为OpenXR贡献了代码,在业余时间,他还开发了OpenXR Toolkit和VDXR(Virtual Desktop的OpenXR运行时)。可见他对OpenXR技术有着深刻的理解和实践经验。
OpenXR Toolkit已于2024年停止维护,Bucchianeri鼓励开发者将它的特性集成到他们自己的应用中。现在,他在OpenXR Toolkit的website顶部添加了一则醒目的声明,强烈反对Meta在Unity和Unreal中的集成方案,并用一个更长的专门页面进一步解释了这个问题。
他写道:“自2024年以来,PC上的OpenXR生态系统处于不良状态。”
"这不是偶然事件:这个问题早在2024年初就通过Khronos group的官方渠道报告给了Meta。 Meta当时承认故意阻止其他平台运行OpenXR内容。
这不是技术限制:某些运行时(VDXR)已经做出了巨大的努力来实现“兼容性”模式。有一些应对措施可以解锁任何平台上的内容,但是调查和实施这些应对措施的成本非常高。
这不是OpenXR的缺陷:正如许多使用启用应对措施的OVRPlugin的应用程序所证明的那样,这些应用程序可以在符合规范的OpenXR实现上运行。”
由于负责维护OpenXR标准的行业联盟Khronos Group未能对Meta采取行动,Bucchianeri感到非常沮丧。他已在OpenXR GitHub上公开提出申请,并已将他的名字从OpenXR规范和公开文档中删除。public request on the OpenXR GitHub.
在Bucchianeri要求删除他的名字后,Khronos发布了一份关于此问题的公开声明。在声明中,该组织表示“认识到开发者在使用传统API和平台特定行为时面临的挑战,这些挑战限制了XR应用程序的可移植性”,并“致力于通过将供应商扩展合并到核心规范中来发展OpenXR”。 声明链接到了Unity、Unreal和Godot的内置跨平台OpenXR支持的文档,并建议开发者使用这些支持。值得注意的是,声明中唯一提到Meta的地方是在参考“社区讨论”时。
然而,这份声明并没有让Bucchianeri满意。他认为,Meta的集成方案以及Khronos未能对Meta采取行动,已经导致OpenXR的徽标和商标“不再像以前那样具有重要意义”:
“不幸的是,自2024年以来,Khronos拒绝采取行动制止Meta的OVRPlugin对PCVR生态系统的破坏性举措。通过不采取任何行动来解决Meta的OVRPlugin所创建的问题,Khronos正在传达一个信息,即OpenXR不再是跨供应商和跨平台支持的通用解决方案,通过CTS并符合规范没有任何意义(符合规范的运行时无法运行OpenXR应用程序),并且OpenXR徽标和商标在PCVR生态系统中不再像以前那样具有重要意义。”
Meta过去曾暗示,最终将摆脱其自己的Unity集成,转而支持Unity的内置OpenXR子系统。 这并不妨碍该公司添加新功能。它已经将它们作为OpenXR扩展来实现其自身引擎的应用程序,也可以将它们作为OpenXR扩展交付到Unity上。 然而,尽管如此,该公司最近继续仅在其自己的集成包中添加一些新功能。如果开发者只使用该集成包,他们的应用程序将无法在其他PC VR头显上运行。
就此事,我们已联系Meta, 寻求他们对此发表声明或提供背景信息。 如果我们收到回复,我们将更新我们的文章。