高通分享:OpenXR、骁龙Spaces、Unity、Unreal的协作运行
(映维网Nweon 2022年09月09日)高通的骁龙Spaces XR开发者平台提供了环境和用户理解功能,能够支持开发者打造可感知用户、可与用户智能互动、可适应用户所在室内物理空间的头戴式AR体验,从而帮助社区充分挖掘可穿戴AR的潜力。
延伸阅读:骁龙Spaces XR专栏
高通目前正陆续通过博文系列来介绍骁龙Spaces XR开发者平台,包括开发头戴式AR体验的功能和优势,以及骁龙Spaces基础OpenXR。
在日前一篇全新的博文中,高通XR业务的战略和合作伙伴负责人布莱恩·福格尔桑(Brian Vogelsang)将向你介绍OpenXR以及骁龙Spaces是如何与Unity和Unreal协作:
1. OpenXR API和生命周期
OpenXR是Khronos Group的行业标准C API规范。它可以帮助快速将新硬件引入XR生态系统,允许公司和组织为特定硬件创建称为OpenXR runtime的实现。对于高通的情况,骁龙Spaces的运行时旨在服务一系列支持头戴式AR显示器的兼容硬件。所述运行时同时可以通过对OpenXR的扩展expose其他功能。随着新功能的expose,新扩展将添加,以便用户能够予以利用。
OpenXR的API设计提供并支持众多编程结构和概念,其中包括:
- 实例:启用应用程序和OpenXR运行时之间通信的对象。
- 会话:AR应用程序会话的表示,涵盖AR应用程序的生命周期。
- 动作:用户可以执行的动作和过程(例如打开菜单)。
- 交互配置文件:用于执行操作的物理输入源。交互配置文件使用Interaction Profile Bindings映射到动作。
- 空间:映射和追踪真实世界的参考帧(例如映射虚拟对象的位置)。
- 视图配置:渲染图像的视口。头戴式设备通常有两个视图(每只眼睛一个视图,有时使用注视点渲染),而典型的智能手机只有一个。
- 渲染:支持交换链渲染和多层合成,使用创建会话时提供的渲染引擎(例如Vulkan或OpenGL)。
- API层:可以插入应用和API之间的hook(例如,用于日志记录、调试和验证)。
下图显示了AR应用生命周期中结构和概念视图:
左侧的紫色区域显示应用使用API查询可用的扩展和层,以及创建实例与OpenXR运行时通信并打开会话。
中间的蓝色区域显示了会话活动时发生的主要功能。在初始化期间,系统收到请求,应用程序查询可用的渲染混合模式、视图配置和随后用于创建会话的交互配置文件。会话启动并运行后,将查询和创建空间,配置操作,并设置交换链以进行渲染。
然后,会话开始其主循环,如右侧浅绿色区域所示。最右边的深绿色框显示了在主循环期间调用的各种API的详细信息。与典型的游戏循环类似,主要阶段包括收集输入(动作),执行更新,并相应地渲染最终帧。
在循环过程中,应用会监视空闲会话,预计会减少或避免执行资源密集型任务,如收集输入和渲染。应用同时监视指示会话将结束的事件(例如用户希望关闭应用程序),此时会话将被销毁。
2. 骁龙Spaces如何在SDK和运行时工作
Snapdragon Spaces SDK是Unity和Unreal的OpenXR插件的provider,因此是必需的依赖项。框架中的OpenXR插件建立了渲染和头部追踪等基本功能,并提供了与OpenXR运行时通信的接口。在Unity中,AR Foundation的管理器组件接入骁龙Spaces子系统(例如锚、平面检测、图像检测等)。在Unreal中没有进一步的依赖项。一旦配置,这允许你在内容驱动的框架中工作,不必担心特定的OpenXR API调用。
在运行时会发生以下生命周期:
- 用户在设备安装一个或多个OpenXR服务。请注意,必须安装Snapdragon Spaces Service,骁龙Spaces应用才能正常运行。
- 应用请求所需的OpenXR服务运行时进行通信。骁龙Spaces应用专门请求Snapdragon Spaces Service。
- 应用请求一个OpenXR实例,所述实例具有OpenXR运行时支持的特定功能集。
- 创建一个实例以连接到服务,并将指针返回到应用。
- 然后,应用使用指针启动实例,并在应用的整个生命周期中与其通信。
渲染由游戏引擎的基本OpenXR层处理,交互配置文件到应用程序输入代码的映射同样如此。然后,应用可以请求其他功能的实例,如控制器支持、手部追踪等。
Unity和Unreal,结合Snapdragon Spaces SDK,都会生成在目标设备运行的游戏二进制文件。松鼠二进制文件包含使用Snapdragon Spaces Service所需的代码,因此你不必担心调用特定的OpenXR API调用。
3. 立即尝试骁龙Spaces
骁龙Spaces为你提供了在设计和运行时使用OpenXR兼容设备所需的功能。当你准备开发下一款头戴式AR应用时,请访问骁龙Spaces开发者门户网站并查看相关文档,然后注册下载Snapdragon Spaces SDK for Unity或Unreal。
------------
伴随骁龙Spaces XR开发者平台正式面向全球开发者开放,为了更好地服务中国AR/VR开发者生态,并为骁龙Spaces XR平台寻找优秀的潜在合作伙伴。“2022 Qualcomm XR创新应用挑战赛(参赛点击前往)”发起了“骁龙Spaces XR平台开发者问卷调查(点击前往)”。
参与问卷调查的优秀开发者(点击参与)更有机会获得高通创投的骁龙元宇宙基金支持,以及与高通公司在骁龙Spaces XR生态平台上达成深度合作,赋能并支持整个生态系统的创新。另外,参与问卷调查的合格提交者均有机会获得高通官方提供的“骁龙Spaces XR”专属T恤等礼品。