OpenXR之monado吐槽

2022年接触VR开发,想到VR的通用接口,首选OpenXR,看了很多文章,下载了很多开源代码

其中最著名的是OpenXR的monado实现,之所以要研究他,因为有开发任务在身

第一个开发任务是需要把usb摄像头,imu接入monado进行6DOF的算法测试

摄像头使用v4l2协议接入,通过看monado的代码,里面搞了很多c语言写的函数指针,想必是想用c的代码来实现c++吧,这么搞实在没有必要,回调函数很多,而且相互之间的逻辑混乱。monado里面有v4l2的驱动,但是仅仅是系统启动的时候用于搜索,搜索得到的结果,如果在实际的驱动中用起来很不方便,最终我写死了v4l2视频的文件地址,完成了这个测试,完成之后其实我自己并不满意,摄像头+imu目的是输出一个6DOF的数据,这个数据在测试例子中是给头显用的,达不到可以灵活部署到手柄的6DOF定位的效果。

第二个开发任务是在写steamvr的驱动时遇到了困难了,一般会想到去看monado的驱动实现,从中提取有用的信息,关于FOV的处理,monado中的实现比较清楚,但也没有完全搞懂,把这部分移植到steamvr的驱动中后,头显的2个view视角差出来了,播放3D视频或者运行steamvr游戏,有了更清晰的体验感。

后来就是自己想研究搞懂monado,然后就精简不必要的驱动,聚焦整个系统框架的理解。

看了他的大部分驱动,基本上使用HID通信来完成数据的设备比较多,也有使用蓝牙的。

对于厂商来说,要支持OpenXR,意味着要将自己的设备驱动写进OpenXR运行时,这个东西虽然是开源,但是厂商不一定愿意将自己设备的源代码开放出去,加上厂商多了以后,代码会越来越复杂。维护成本可能比只维护steamvr的驱动还要高。

还有一个问题,目前还不能把monado编译在windows下运行,也就没法通过steamvr来测试OpenXR

对于这么复杂的东西,现在仅仅限于开发任务解决,熟悉其原理,把对应的流程全部搞懂就好办了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值