Oculus VR学习之路(1)

作者: zhangzhongke 分类: Tools,Windows 发布时间: 2017-05-12 10:57

背景介绍

Oculus是Facebook旗下的一家VR头显技术提供商,其生产的Oculus Rift已经交付全球130多个国家和地区的开发者手里。此外,Oculus还联合三星一起推出了Gear VR头显,充分利用周边设施构建更为健全、丰富的VR内容生态。VR技术近年来大为火热,获得了许多风险资本的追逐,科技圈也掀起了一股VR潮。出于公司项目需要,本人也开始着手学习在Oculus Rift平台上进行开发。开发的第一步,显然就是搭建开发者环境。由于Oculus的服务都托管在Facebook的服务器上,在注册Oculus账号、下载Oculus SDK、登陆Oculus Rift设备都需要科学上网。

Oculus SDK的编译

Oculus的SDK目前已经更新到了1.14,而且只提供了Windows版本的SDK。根据SDK的说明文档来看,其中提供了DirectX11, DirectX12, OpenGL三个版本的API。因此,可以根据需要选择不同的图形API版本。Oculus SDK中包含了许多使用例子,其中一个名为OculusRoomTiny的工程演示了使用Oculus SDK开发应用的基本框架流程。但是,要编译这个工程,需要用到Windows10 SDK。因此,要是机器上没有安装Win10 SDK,那么还得先去下载Win10 SDK。本人机器上安装的是Win10 SDK 10.0.14393.0,这里用到的是VS2013编译,因此需要修改到Windows10SDKPaths.props文件中去:

修改保存后即可开始编译。如果要正常运行的话,会报错:

初始化libOVR失败了?为什么呢?单步调试一下看看到底是什么原因,从main函数中的ovr_Initialize()看起:

跟踪跳转到另外一个函数OVR_LoadSharedLibrary():

显然,这是在加载一个共享动态库。继续追踪下去,看看到底是什么引起了libOVR的初始化失败:

追踪到这里基本可以发现,原来是加载一个名为LibOVRRT64_1.dll的动态库时失败了。很显然,我的机器上是没有这样一个动态库的。根据网络上的一些说法,我需要安装Oculus Runtime。而这个Runtime现在已经放到Oculus Client里面去了。因此,我还得去安装一个Client。

Oculus Client的安装

Oculus Client的安装也是一件考验人的事情。首先,从官网上下载的程序是一个下载安装器,这个程序会连接到Oculus官网下载真正的Oculus Client安装包,大概有1.4G。因此,这里需要保障翻墙网络的稳定性。

下载完成了需要登陆Oculus账号:

这个过程多半是折磨的,一般会出现网络错误:

要解决问题,首先要确认下本机的防火墙是否关掉了。有可能系统防火墙的原因,把Oculus Client进出口流量的端口给封住了。另外,还要确认下打开https://graph.oculus.com时是否返回了一段JSON数据。如果能看到一段JSON数据,那么说明网络是正常的。

成功登陆之后就是一系列的配置了:

至此,Oculus Client的登陆就成功完成了。有的时候运行Oculus SDK中的Demo时可能会蹦出一个错误:

这个可能是因为Oculus Runtime Service被停止了,在Windows服务中启用就可以了:

参考链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注