用途:OpenXR 是面向 AR/VR 应用的开放标准 API,通过抽象底层设备细节,让应用在 Oculus、HTC Vive、Hololens 等不同硬件上运行,无需为每个平台重写代码,也适合需要硬件无关输入处理与渲染的场景。
主要能力:AR/VR 设备硬件抽象,可在运行时选择后端;会话的创建与销毁;通过动作集处理控制器与手势输入;与 Vulkan、OpenGL 等图形 API 集成渲染;头显与控制器的空间追踪与姿态管理。
使用方式:先初始化实例并声明所需扩展,再为目标设备创建会话,配置输入动作映射,然后进入渲染循环。主循环中需轮询事件并处理会话状态变化。跨平台构建时链接 OpenXR loader,并通过环境变量或配置文件指定运行时。关键函数包括 xrCreateInstance、xrCreateSession、xrPollEvents;动作清单使用 JSON 格式,经 xrStringToPath 加载。图形绑定方面,Vulkan 需启用 "XR_KHR_vulkan_enable" 并提供 VkInstance,OpenGL 使用 "XR_KHR_openGL_enable"。运行时路径可通过 export XR_RUNTIME_JSON=/path/to/runtime.json 设置。
限制与错误处理:需始终检查 XrResult 返回码,常见错误有 XR_ERROR_INITIALIZATION_FAILED(如缺少扩展)和 XR_ERROR_SESSION_LOST(设备断开),应记录详情并尝试恢复,例如重建会话;可用 xrGetInstanceProcAddr 动态加载函数并检查空指针。资料未提供具体收费、价格或平台支持清单。