教程参考自 https://kheresy.wordpress.com/2020/07/16/openxr-env-init/

# OpenXR API 介绍

OpenXR Loader 是中间部分,如果不牵扯到 绘制 的条件下,直接使用官方已经预建好的 OpenXR Loader 就可以了
https://github.com/KhronosGroup/OpenXR-SDK/releases 而 OpenXR 的 API 主要是参考 在开发整个 OpenXR 的程序的时候,在外部主要的流程大致上会是:
- 建立 XrInstance 的物件 - 取得 XrSystemId 确认可存取的 XR 系统 - 建立 XrSession 准备开始 XR 系统的操作 - 进入主循环 - 处理事件 - 绘图,显示 - 程序结束,释放 XrInstance 资源


# XrInstance

OpenXR 的 Instance 是对应系统当下的 OpenXR Runtime
应用程序
可以和
OpenXR runtime
进行沟通 而后面呼叫几乎所有的 OpenXR 函数的时候,也都需要给一个有效的 Instabce 才可以. instance 负责管理 OpenXR 的各种状态。在撰写 OpenXR程序 的时候,一定要先建立一个 XrInstance 的物件.
要建立一个 XrInstance 的时候,是要使用 xrCreateInstance() 这个函数,要先决定使用的 API LayerExtension

# XrSystemId

OpenXR 的 System 在概念上,是对应到系统中的 整套硬件系统 ,如果以一般的 VR 环境来说,就是包含了 头戴显示器控制器 了.
由于 OpenXR 提供的是跨 AR/VR 的架构,所以系统被分为了两个 Form Factor
- XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY:頭戴式顯示器 - XR_FORM_FACTOR_HANDHELD_DISPLAY:手持式裝置(例如手機) 在要取透过既有的 OpenXR Instance 取得可用的 System 的时候,必须要指定使用哪一个类型。 之后则是要通过 XrSystemId 来做进一步的获取信息、并建立 XrSession 来进行绘制和主循环的控制.

# 程序编写

编写程序前,一定要先建立一个 XrInstance 的物件出来,而需要使用的函数,则是 XrCreateInstance()

更新于

请我喝[茶]~( ̄▽ ̄)~*

Solvarg 微信支付

微信支付

Solvarg 支付宝

支付宝

Solvarg 贝宝

贝宝