如果你是用OpenXR构建体验的Unity或Unreal开发者,或者是相关的底层开发者,OpenXR Explorer可能值得你的关注。社区存在众多的OpenXR运行时,而OpenXR Explorer可以帮助你找到这些单独维护的实现。日前,微软的混合现实工程师尼克·克林根史密斯(Nick Klingensmith)撰文介绍了这个旨在帮助你查看每个运行时提供的信息,查看其实现的扩展,以及检查可以查询的常见属性和枚举的工具。下面是映维网的具体整理:
1. OpenXR运行时
OpenXR不是一个可以简单处理所有XR头显的单一库,而是一系列不同公司同意并实现的通用API。目前仅在Windows就有5个符合规范的OpenXR运行时可用。运行时必须通过一致性测试,以确保基本的一致性行为,这意味着OpenXR应用程序应该能够支持目标平台遇到的任何OpenXR运行时。
事实上,说起来容易做起来难,尤其是在考虑扩展的时候。现在,许多真正有趣的XR行为以可选OpenXR扩展的形式出现。例如,XR_MSFT_spatial_anchor这个MSFT扩展目前仅支持Microsoft OpenXR运行时,如Windows Mixed Reality。随着时间的推移,像这样的扩展可能会升级到KHR扩展,由Khronos正式承认为一种常见的但仍然是可选的扩展。
对于开发者而言,这意味着大量的测试,而了解预期的差异有助于设计代码。OpenXR Explorer可以帮助你查看每个运行时提供的信息,查看它实现的扩展,以及检查可以查询的常见属性和枚举。另外,OpenXR Explorer同时提供了可以通过可视用户界面或命令行轻松更改active运行时的功能。
2. 运行时切换
每个OpenXR运行时都有将自己设置成active的方式。对于普通用户来说,这通常已经足够,但作为开发者,提供一定的选择会更好。Windows使用注册表值指示active运行时,尽管你可以自己直接修改,但OpenXR Explorer提供了一种简单的方法:只需单击即可完成所述操作。
用户使用OpenXR Explorer GUI更改运行时
或者,你可以通过命令提示符直接使用xrsetruntime.exe。运行时切换使用单独的可执行文件执行,以防止主OpenXR Explorer应用在修改OpenXR注册表值时要求管理员访问计算机。
3. 扩展与属性
快速浏览一下运行时的扩展支持可以告诉你可以期待什么。例如,Windows的Windows Mixed Reality 当前支持XR_KHR_D3D11_enable和XR_KHR_D3D12_enable扩展,但不支持 XR_KHR_opengl_enable, XR_KHR_vulkan_enable,或XR_KHR_vulkan_enable2。对于某些开发者来说,这将是一件非常重要的事情。
OpenXR Explorer的扩展视图
OpenXR Explorer同时可以尝试启动运行时实例,并查询OpenXR提供的任何易访问属性。知道推荐的显示分辨率是什么,或者运行时支持什么类型的定位/参考空间同样非常方便。另外,OpenXR运行时通常会按首选项的顺序列出枚举,所以可以非常深入地查看列出的交换链格式。
如果对所看到信息的细节感兴趣,GUI提供了指向OpenXR规范相关部分的快速链接。对于本机开发者或好奇者来说,规范是非常宝贵的资源。
OpenXR Explorer同时提供了一个命令行界面,允许你通过命令提示符收集所有相同的信息。当提供命令行参数时,OpenXR Explorer将跳过GUI,只打印信息。
如果有兴趣,你可以通过这个页面下载最新的OpenXR Explorer(Windows或Linux)。