Oculus更新后,使用SteamVR开发引发崩溃

Oculus Rift在更新后使用SteamVR开发时遇到频繁崩溃的问题,主要原因是Oculus转向OpenXR标准,而旧API停止更新。OpenXR虽然提供跨平台标准,但不同公司的实现可能引发不兼容。Oculus和SteamVR的更新导致配合出现问题,但在非Oculus设备上未发生崩溃。目前没有理想解决方案,建议使用同平台设备进行开发。Oculus计划逐步淘汰原生API,全面支持OpenXR。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

聊一聊 Oculus Rift 在更新后,使用SteamVR开发引发的频繁崩溃

从下方的新闻3可以看出 旧的API已经逐渐开始停止更新、维护,转而向OpenXR标准进行开发

开发环境:

插件使用SteamVR 2.x Plugins + unity 2019.4.x

开发设备:

Oculus Rift 设备进行开发

Oculus 设备吐个槽 :

1 安装文件巨大【15G】,首次只能装在C盘,另需科学上网
2 电池杀手,一般一周就没电,低点亮 提示烦人的弹窗!

Oculus也有它自身的优点

1 一根USB3.0,一根高清线即可使用,无需定位仪
2 显示效果棒,头戴与手柄轻便,相对Vive设备【旧】

问题分析及解决方案

最近由于Oculus Rift 软件的频繁更新,unity引擎崩溃的频率也愈发频繁, 一次偶尔注意到 更新后出现的 **OpenXR Runtime [运行时] ** 的提示选项

既然Oculus 有了这个选项 那么我想 SteamVR 肯定也会有这个选项
果不其然 在开发者下方看到了这个选项

在这里插入图片描述
在这里插入图片描述

如果其中任意软件 开启了 OpenXR运行时 的选项 , 另一个软件的运行时就会关闭
.
OpenXR 运行时 选项 是 OpenXR 制定的标准
.
但是标准是标准 各家公司的实现手段不尽相同
.
Oculus 与 SteamVR 软件近期更新后,配合使用出现问题 [纯属正常],引发一系列不定时停止运行,程序崩溃
.
在此版本的更新之前 Oculus设备使用虽有点小问题【可能是电量低引发的,但不会频繁崩】,但是与SteamVR的配合相对完美
.
为了证明是软件与设备更新后不兼容问题,更换了vive设备进行测试,完全没有崩溃的情况发生。
.
结论:SteamVR对于自家的设备是完美支持
但是不同平台对于其他设备在 OpenXR 更新【7-26】后,需要继续磨合与 bug修复
.
现在没有太好的解决方案,只能是使用同平台配套设备进行研发相对稳定,也许再更新几个版本,问题会很快解决。

几条新闻链接,了解OpenVR

新闻1 - 旧

开源标准制定组织Khronos Group今天正式发布了OpenXR 1.0规范。
OpenXR是统一的免费授权开源标准,可提供对增强现实和虚拟现实的高性能访问。
新规范请访问Khronos官网或GitHub。

在这里插入图片描述
OpenXR工作组主席、英特尔首席XR架构师Brent Insko表示:“工作组很高兴推出OpenXR规范的1.0版本,对于我们达到的这个重要里程碑,社区对3月发布的临时规范的反馈非常宝贵。我们的工作依然在继续,而我们现在敲定了一个全面的测试套件,集成了关键的游戏引擎支持,并计划了下一组功能,从而为XR平台和设备发展一个真正富有活力的跨平台标准。现在软件开发者是时候将OpenXR投入使用了。”

根据XR社区的反馈,OpenXR工作组对OpenXR输入子系统、游戏引擎编辑器支持和加载器进行了改进。工作组将以1.0版本为基础继续进行拓展,同时保持完全的向后兼容性,从而为软件开发者和硬件供应商提供坚实的基础,帮助其提供令人难以置信的和便携式的用户体验。

OpenXR同时获得了Khronos成员的持续性生态系统支持。来自成员企业的OpenXR实现正在始陆续推出,包括Collabora的“Monado”OpenXR开源实现,微软WMR头显的OpenXR运行时,Rift的Oculus OpenXR实现,以及Oculus Quest的支持等等。另外,Epic Games计划为Unreal引擎提供OpenXR 1.0支持。

值得一提的是,OpenXR成员Epic Games、微软和Varjo将在SIGGRAPH 2019大会演示采用面向一系列VR和AR平台的XR应用程序,而它们都利用了相同的OpenXR API进行开发。

新闻2 - 旧

在Khronos联盟的众多技术中,有的支持增强现实,有的支持虚拟现实。为了完成该组织为新技术制定开放标准的任务,该组织开始创建一个用于AR和VR设备的开放API,最终制定了OpenXR标准。该标准的初始版本于去年夏天发布,现在,技术行业终于有机会为其开发软件,今天早上,Khronos提供了OpenXR最新情况,公开了一些使用其新API的项目。

首先,Khronos宣布第一批符合标准的OpenXR实施推出。从今天开始,Oculus和微软各自的OpenXR运行时都通过了一致性测试,并获得了该组织的批准,作为Khronos的OpenXR采用者计划的一部分,允许这两家公司推广他们对OpenXR的支持和产品。

令人惊讶的是,系留式和独立式头显都在新的合规设备之列。微软和Oculus现在都已经批准了Windows的运行程序,将OpenXR支持与Oculus Rift系列头显一起带到了Windows混合现实设备上。同时Oculus独立的、由Android驱动的头显Oculus Quest也获得了OpenXR支持,微软的独立Hololens 2 AR头显也获得了支持。这意味着在一年的时间里,OpenXR的支持范围已经扩大到了OpenXR设想的全部设备,AR和VR设备现在都支持该API。

这又是OpenXR的一个重要里程碑,因为这意味着该标准终于解决了所有新API所面临的引导问题。有了可用的硬件,软件开发人员终于可以编写软件并针对实际设备进行测试,使整个过程变得更加容易。因此,在很多方面,真正拉开API生命周期序幕的是这一刻,而不是去年的OpenXR 1.0发布,因为Khronos及其成员终于可以就广泛部署问题向开发者伸出援手。同时,受支持的头显队伍也将在未来几个月内不断壮大,因为Valve、Varjo和Collabora目前都有OpenXR产品正在开发中。

Valve表示,它正在努力将自己的VR产品过渡到OpenXR。上个月,该公司在SteamVR内推出了对OpenXR的测试版支持,允许SteamVR游戏使用符合OpenXR的运行时。同时Valve基本上搁置了自己的OpenVR标准的开发,将重点转移到OpenXR上,因为任何新的SteamVR功能都将针对Khronos的API进行开发。

同时微软也计划在自己的一些项目中使用OpenXR,最明显的就是新的VR版Minecraft。今天被宣布,微软将在新的RenderDragon引擎中加入VR支持,该引擎于今年早些时候推出,作为Minecraft支持光线追踪的图形大修的一部分。新的VR实现将取代旧的实现,旧的实现是针对游戏之前的渲染引擎构建的,只支持Oculus和Windows MR设备。

最后,Khronos还提供了关于OpenXR内手部和眼部追踪状态的简要更新。这两个功能都没有进入核心1.0规范,但现在这两个功能都在作为跨厂商扩展开发。这两项功能都已在HoloLens 2上运行,Khronos计划在证明其价值后将这些扩展纳入到核心规范的未来版本中。

新闻3 - 最新 【今天时间: 2021-8-20 】

Oculus将全力投入OpenXR:现有本地和移动API将被停用
2021-07-26 18:09:45 来源:新浪VR
新闻链接

自2016年以来,Oculus推动了OpenXR标准的开发和采用,以简化和加速XR应用的开发。在过去的一年里,整个行业在OpenXR方面取得了惊人的进展。Oculus、微软、SteamVR和HTC都给出了符合要求的OpenXR运行时间,Unity和Epic Games在他们的引擎中增加了支持,一些大的游戏如《微软模拟飞行VR》也正式发布。

OpenXR进入全面支持

为了继续这一势头,从v31开始,新的功能将通过OpenXR扩展交付,而不是新的Oculus移动和PC API。OpenXR将进入全面支持阶段,并将成为所有新应用程序的首选API,包括那些计划使用Passthrough Experimental API功能的应用程序。

1。 通过Oculus的开发者网站帮助开发者用OpenXR构建新的应用程序

2。 对OpenXR进行QA测试,以确保功能正常运行

3。 解决报告中的错误

4。 通过OpenXR向开发者提供新功能的API访问

Oculus原生移动和PC APIs的兼容性支持

在未来,开发者仍可使用Oculus移动和PC API构建的应用程序将继续工作,但官方提供的支持水平将在未来一年内改变。从2021年8月31日开始,Oculus移动和PC APIs将进入兼容性支持。

1。 Oculus会通过指南为现有的应用程序迁移到OpenXR提供建议,但无法协助使用Oculus Native和PC APIs创建新的应用程序

2。 Oculus继续对Oculus Native Mobile和PC APIs进行有限的QA测试,以确保功能正常运行

3。 官Oculus在收到报告时对错误进行处理,并根据需要修复关键错误。功能性的错误将逐一解决。

4。 Oculus不会向Oculus Native Mobile和PC APIs添加新的功能。

Oculus Native Mobile和PC APIs最终将不被支持

一年后,即2022年8月31日,Oculus Native Mobile和PC APIs的兼容性支持将结束,它们将不被支持。现有的应用程序将继续在Oculus设备上运行,但官方的支持水平将改变。

1。 Oculus将要求新的应用程序使用OpenXR,除非提供豁免权

2。 Oculus将无法提供对Oculus Native Mobile和PC API的访问,但将允许现有应用程序继续使用它们

3。 Oculus可以通过指南为现有应用程序迁移到OpenXR提供建议,但无法协助创建使用Oculus Native和PC API的新应用程序

5。 Oculus将把Oculus Native Mobile和PC APIs的QA测试减少到自动化,以确保核心功能的正常运行

6。 Oculus只修复Oculus Native和PC APIs中的关键安全、隐私或安全错误

Unity引擎中的OpenXR

Oculus正在将OVRPlugin迁移到OpenXR后端,该后端在2020年12月(v23)作为实验性发布。从2021年7月(v31)开始,Oculus将通过Oculus XR Plugin与Unity 2020+完全支持OpenXR。对于使用Unity 2019.4 LTS的开发人员,Oculus将继续通过传统的CAPI/VRAPI后端提供兼容性支持,直到2022年7月。v31之后的新功能,将只能通过OpenXR提供。

Oculus将继续与Unity密切合作,开发他们的OpenXR插件(在Unity 2020 LTS及以后的版本中得到充分验证),该插件目前正在为Oculus设备进行实验。Unity OpenXR插件将在2022年初得到完全支持(Unity 2021 LTS),并将成为Unity开发者的推荐途径。Oculus将继续为Oculus XR插件提供兼容性支持,直到2023年初,预计Unity 2022 LTS将被发布。

虚幻引擎中的OpenXR

Oculus将对OpenXR提供支持,并从2021年7月(v31)开始将Oculus VR插件迁移到OpenXR后端,并与传统的CAPI/VRAPI后端一起交付。开发者可以在插件设置中选择后端,其中传统的后端在v31中是默认的,Oculus希望OpenXR后端在v32中成为默认。Oculus将继续为OVRP插件与传统的CAPI/VRAPI后端提供兼容性支持,直到2022年7月。新的功能将只能通过OpenXR后端提供。

Oculus还与Epic Games合作,通过UE5的OpenXR插件向Oculus设备提供全面支持。当UE5发布时,Oculus VR插件将被废弃,UE5开发者将需要使用OpenXR插件来开发Oculus应用程序。

开始使用OpenXR

如果有开发者要开始使用原生OpenXR开发,请查看Oculus官方的文档(移动、PC),并加入OpenXR开发论坛的讨论。

<think>好的,我现在需要帮助用户了解如何在PICO设备上实现串流手势捕获功能。首先,我得明确用户的需求,他们可能是在开发VR应用时希望不用有线连接,通过无线串流来捕获手势,这样调试起来更方便,提升效率。 根据用户提供的引用资料,特别是引用[3]中提到PICO串流到SteamVR后适配的是Oculus Quest2的手柄,这可能导致手势显示问题。这说明在实现手势捕获时,需要注意手柄的适配和可能的冲突,可能需要关闭某些协程来避免崩溃。 接下来,我应该考虑PICO设备的手势捕获通常需要哪些技术。一般来说,PICO设备可能使用内置的手势识别SDK,或者通过SteamVR插件来实现。但根据引用[3],使用SteamVR时可能会有适配问题,所以可能需要结合PICO自己的SDK和串流技术。 然后,无线串流的设置步骤也很重要。引用[4]提到需要安装串流助手,并确保设备和PC在同一WiFi下。这可能涉及到网络配置和串流软件的设置,确保数据能够实时传输。 另外,引用[2]提到启用PICO Live Preview时需要禁用其他提供项,这可能意味着在开发过程中需要调整项目设置,避免冲突。同时,引用[1]的用户提到使用PICO互联进行无线串流,可能需要参考最新的官方文档,因为旧的教程可能已经过时。 综合这些信息,实现手势捕获的步骤可能包括:配置开发环境,集成手势识别SDK,处理串流中的适配问题,优化网络延迟,以及进行测试和调试。需要特别注意引用[3]中提到的协程问题,避免手势显示异常和编辑器崩溃。 可能还需要查阅PICO的官方开发文档,确认是否有专门的手势捕获API,或者是否支持通过Unity的XR插件来实现。同时,无线串流的稳定性对手势识别的实时性很重要,可能需要优化网络设置,比如使用5GHz频段减少延迟。 最后,用户可能需要示例代码或具体步骤来配置Unity项目,添加手势识别组件,并处理串流中的数据传输。测试时要注意手势的延迟和准确性,确保用户体验良好。此外,引用[3]中的解决方案提到修改Teleport脚本,关闭特定协程,这可能也是实现过程中的一个关键步骤。</think>### PICO设备串流手势捕获实现方案 #### 一、技术实现路径 1. **手势识别基础** PICO设备通过内置摄像头或传感器实现手势识别,需在Unity中集成$PICO\ SDK$的手势识别模块[^1]。建议使用$PICO\ Interaction\ SDK$的`HandTracking`组件,需在项目设置中启用`Hand Tracking Support`选项。 2. **串流环境配置** - 安装`PICO Streaming Assistant`和`PICO Live Preview`插件,确保设备与PC在同一局域网[^4]。 - 在Unity的`XR Plug-in Management`中禁用`Oculus`和`OpenXR`等冲突插件(参考引用[2][^2])。 3. **代码实现示例** ```csharp using PICO.Platform; using PICO.HandTracking; public class GestureStreamer : MonoBehaviour { void Update() { var leftHand = HandTracking.GetHand(HandType.Left); if (leftHand.IsValid) { Vector3[] jointPositions = leftHand.GetJointPositions(); // 通过UDP/WebSocket发送数据到PC端 } } } ``` #### 二、关键问题处理 1. **手柄适配冲突** 若同时使用SteamVR,需修改`Teleport`脚本中的协程逻辑(引用[3][^3]): ```csharp // 注释掉引发Quest2手柄冲突的代码 // StartCoroutine(TeleportHintCoroutine()); ``` 2. **延迟优化** - 使用5GHz Wi-Fi网络,确保带宽>80Mbps - 在`PICO Streaming Assistant`中设置编码分辨率为$1920\times1920$,码率$30Mbps$ #### 三、开发文档指引 1. 官方资源: - [PICO手势开发文档](https://developer.pico-interactive.com/docs/hand-tracking) - [Unity串流配置指南](https://developer.pico-interactive.com/docs/unity-streaming)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值