XR开发的各种SDK以及相关概念

简要记录一下几个常用的概念以及sdk的选择

OpenXR


OpenXR是一套由Khronos Group发起的跨平台的,通用的标准。简单来说就是定义了一套接口(不仅仅是接口),硬件厂商如steamvr、pico等实现这一套接口。unity或者虚幻等等引擎再适配这套接口,大家就可以用同一套标准去开发,省去了为不同平台适配的麻烦。
仅PC上绝大多数VR都为OpenXR提供了运行环境,如steamVRWindows Mixed Reality等,安卓端的Pico以及oculus也都适配了OpenXR
但缺点是无法调用某些特定平台的特定的接口,比如steamVR可以在加载时预先传输个天空盒当作loading,steamVR还有自己的手部骨骼动画,pico也有自己的比如VR合成层等功能是无法通过openxr来调用的。
如果采用OpenXR开发安卓端VR还有个很大优势就是可是用PC端的VR来调试功能,大大提高开发效率。

Unity XR Plugin Architecture

Unity 2019.3 之后,官方提供了一个叫做XR插件框架的东东,通过包管理器安装,大大简化了XR开发的流程,在此基础之上,各大硬件厂商开发自己的适配Unity的XR开发SDK,如Steam的OpenVR,pico的picoVR,Oculus的Oculus XR Plugin、微软的Windows Mixed Reality等等,当然还有官方自己为了openxr开发的OpenXR Plugin

OpenXR Plugin

由Unity官方开发的,适配了openxr以及unity XR Plugin Architecture的插件,Unity还为这个插件开发了XR Interaction Toolkit作为最基础的XR交互。

XR Interaction Toolkit

适配了OpenXR,实现了基础的XR交互的官方插件,包含了常用的射线、抓取、UI交互(仅限UGUI,不支持UIToolkit)、传送等等基础功能,同时留下了丰富的接口方便开发者自己实现想要的功能。

OpenVR

OpenXR很像,但完全不是一码事,这个是V社开发的为了各个硬件厂商适配SteamVR的标准,同时提供了OpenVR Loader来适配Unity的Unity XR Plugin Architecture。包含在SteamVR Plugin中。

SteamVR Plugin

V社开发的一套SDK,包含了OpenVR插件来适配unity XR Plugin,同时还有一系列的其他与SteamVR交互的接口,如输入绑定、手部骨骼、loading天空盒子、Vive Trakcer等等。
但是已经快两年没有更新了。

Pico

pico提供了两套SDK,一套是纯粹的PICO Unity OpenXR Plugin,即实现了OpenXR的SDK,同时还有一套叫做PICO Unity Integration SDK,这里就包含了其他特定与Pico平台的功能,如平台用户相关的、注视点渲染、VR 合成层等等。但二者都兼容了XR Interaction Toolkit,对于开发还是很友好的。

总结

所以在开发前要想清楚,到底是要适配多平台,还是想要某个平台特定的功能,二者不可很难兼得。


XR开发的各种SDK以及相关概念
https://www.kuanmi.top/2022/12/29/openxr/
作者
KuanMi
发布于
2022年12月30日
许可协议