系统:window 10
记录一下实现第一个openVR带界面程序的过程。刚装好系统,啥都没有。这也算真正的从零开始了把。
openVR的界面项目是指openVR源码中的helloworld overlay工程,这个工程能在沉浸式环境下显示一个Qt的窗口。
一、硬件资源准备
既然做openVR,那么至少需要一台VR设备,我这里使用的是oculus Rift。
二、软件资源准备
1.visual studio
首先我需要安一个vs 2017,相信大家都有,这里就不赘述了。
2.CMake
在CMake官网(https://cmake.org/download/)下载一个CMake,用于编译openVR源码。下载msi后缀名文件,直接安装即可。我下载的版本是3.14.7。
3.openVR源码
在github上下载openVR源码(https://github.com/ValveSoftware/openvr)。下载好了后应该是一个openvr-master.zip的文件。
4.Qt
openVR的sample使用的界面需要Qt的支持。我这里安装的版本是Qt 5.11.0。
5.oculus社区
内含oculus驱动,注意社区和显卡驱动都要保持最新版。oculus社区(https://www.oculus.com/rift/setup/)下载需要翻墙(不会的自行解决供)。此外,不是oculus的VR设备自行寻找驱动吧。
6.steamVR(非必需)
在steam社区搜索steamVR,点击下载即可。似乎不是必须安装。具体我也不知道没安装的情况是哪样,我一直是安装着用的,大家测试了可以告诉我。
三、开发过程
1.使用CMake编译openVR源码
打开CMake,主界面如下图:
where is the source code选择解压好的openvr-master下的samples路径,
where to build the binaries选择一个空目录即可,用于保存生成的文件。我这里选择了samples目录下新建的一个build文件夹。
选择好之后点击Configure,弹出如下对话框
第一个选项选择你的vs版本,我的是2017。
第二个选择x64,点击Finish。
然后等待其编译。第一次会报如下错误:
大意是说Qt路径没有选择。
于是点击选择Qt5_Dir的路径,选择Qt安装目录下的Qt5.11.0\5.11.0\msvc2017_64\lib\cmake\Qt5目录
再次点击Configure,显示Configuring done则表示编译完成。
(ps:这里有个警告不知道什么意思,如果dalao有知道的可以给我说下)
Configure完成后点击Generate生成,生成完成如下:
至此编译完成。接下来请务必连上你的沉浸式设备运行。
2.运行OpenVR界面程序
点击Open Project打开项目,也可以从项目目录打开。打开目录如下:
接着右键项目,生成解决方案:
等待输出面板完成。显示如下:
(ps:我这里失败了一个,这个我也不知道原因,同求dalao解答)
接着右键hellowrold overlay工程,将其设置为启动项目
Ctrl + F5运行程序。显示如下:
接着在网上下载 msvcp120d.dll 和 msvcr120d.dll 两个文件。我这里也提供一份。链接:https://pan.baidu.com/s/1_75ePSKYfTr-EjpaUWJ2Ug 提取码:rkor
下载好了之后,将其放在openvr-master\samples\bin\win64这个目录下,再次运行vs的helloworld overlay程序。
显示如下:
那个0x000007b的错误就是因为openvr sample环境目录下面,他自带的一些环境和你自己的环境冲突了。需要删除openvr-master\samples\bin\win64这个目录下冲突的dll。
解决步骤如下:
1. 首先删除openvr-master\samples\bin\win64目录下Qt开头的dll文件
2. VS菜单上选择 项目-属性,打开属性页
3. 选择 配置属性-调试
4. 在右侧环境中加上这句话:PATH=%PATH%;D:\Qt\Qt5.11.0\5.11.0\msvc2017_64\bin。分号后面这个是QT装dll的路径,自行修改。
修改好了之后再次运行,,控制台只有个光标在闪烁。
稍等最多十几秒,steamVR会被激活(如果安装了的话),弹出一个小窗:
运行后就可以进入VR环境进行体验了。
oculus需要按一下左手菜单键(三横那个键)才可以弹出helloworld overlay界面。
如果想不戴VR设备就在桌面查看,需要在SteamVR右键勾选显示器映射。这样可以弹出一个映射窗口,显示头戴式设备里面的画面。
弹出画面映射到桌面如下:
至此大功告成。