我想要做的是:我的智能手机把它的定位(陀螺仪、Accel和磁性的融合)发送给控制器,控制器进一步处理数据,使SteamVr能够访问它,这反过来应该会将我想要发送回智能手机的帧发送回我的智能手机。
到目前为止,我所取得的成就是:我实现了一个基本的android程序,该程序已经捕获了它的方向,将其打包到一个UDP-数据报中,并将其发送到给定的IP地址。
我编写了一个小型Java程序来验证它的功能,而且它已经工作了。
现在我想转到第2步:将这些数据提供给SteamVr。现在,我不想把视频流回android。
假设我想使用像C#或Java这样的高级语言,有人能给我提供一些帮助吗?我能用OpenVr吗?如果是,怎么做?(这并不是很好的记录)。
编辑:
我有个暂时的解决办法。我将使用FreePie通过UDP将方向发送到OpenTrack (我已经修改了FreePie.apk以使结果更加平滑)。OpenTrack通过UDP将其发送到本地主机。
为了接受不存在的HMD,我必须修改SteamVr以使用空驱动程序。
HeadTracking和Stream很好,但是现在还有另外一个问题:当SteamVR启动一个FullScreen HMD显示窗口时,我不能在任何游戏中使用通常的输入。
游戏通常在一个单独的窗口启动,该窗口接受输入,而HMD则显示虚拟现实体验。现在,虚拟现实窗口有一个大问题。当没有焦点时,它既不显示也不接受来自OpenTrack的输入。这意味着没有视频,没有头跟踪。一些游戏开始在虚拟现实模式,所以我可以使用这个窗口获得KeyboardInput和视频,但头部跟踪被禁用,如前面所述。
所以简单地说:- FreePie -> OpenTrack -> SteamVR空驱动程序- Moonlight -> Android适用于所有不需要输入的东西。
这里唯一的解决方案是:第二次显示。以-Set 2显示器为主。-Move一切到第二扩展显示-开始steamVR (这将在第二显示),-开始游戏。现在,当焦点切换到VR窗口时,它突然出现在PC主插入式显示器上(只在笔记本+电视上进行测试)。因此,月光将捕捉视频,而第二(当前的主)屏幕集中在GameWindow,以捕获输入。
我的新问题是:如何解决第二次展示的需要?
发布于 2017-09-26 18:30:03
好的。以下是我的解决方案和指南:
如何使用你的Android智能手机作为SteamVr的VR-HMD
你需要什么:
硬件:
软件:
如何:
现在,确保虚拟现实电话和你的电脑在同一个网络中.在OpenTrack中设置:
跟踪器-> FreePIE UDP接收机与俯仰+180。将端口设置为与FreePIE安卓应用程序相同的端口
协议-> UDP接收端IP: 127.0.0.1端口: 4242
如果您启动了FreePIE应用程序和OpenTrack,您应该会发现它是有效的。
下一步:
该窗口现在应该显示在您的个人电脑显示,而游戏本身仍然在Android显示器。
你已经准备好玩了。当你的个人电脑显示器显示VR窗口时,它将显示内容并接受面向Android的内容。当扩展(主)-Monitor显示游戏窗口时,游戏将接受控制器/键盘/鼠标输入。
是的,这是一个令人毛骨悚然的工作,很明显会给你的(W)局域网带来压力。你也可以通过一个物理的第二监视器,如果你有一个备用,这将减少你的路由器的流量。
尝试了这与WarThunder和项目汽车帕加尼版和它的工作!
https://stackoverflow.com/questions/46410076
复制相似问题