简介 与目前同样被广泛关注的 Google Glass 不同,Rift 是一款虚拟现实 (VR) 的头戴式显示器。在带上它之后,使用者将看到的是另一个虚拟的世界,并且通过双眼视差,使用者会有很强的立体感。此外,由于 Rift 眼镜当中配有陀螺仪、加速计等惯性传感器,可以实时的感知使用者头部的位置,并对应调整显示画面的视角。这样一来用户就仿佛完全融入在到了这个虚拟世界当中。
Rift 将电脑中的虚拟场景展现给用户
Rift 配备的惯性传感器感知用户头部的姿态信息,来源:Oculus Rift SDK 文档插图 自然不难想象,Rift 的最佳应用之一就是电子游戏。虽然目前各类游戏已经可以渲染出以假乱真的 3D 场景,但是由于玩家仍旧是盯着一个有限大小的显示器看。相比如果使用这类虚拟现实眼镜,相信可以极大增强玩家的现场感,多少可以体验到像电影 Matrix 中那样后脑插上电缆,就可以进入另一个世界的感觉吧! 从技术上来说,虚拟现实眼镜并不是什么新鲜玩意。相关的研究领域十几年前就开始使用这类设备开展研究了。不过在 Rift 问世之前,这类设备往往不是售价昂贵就是性能不足,难以带来逼真的虚拟现实。
美国军方使用虚拟现实眼镜对士兵进行训练 而 Rift 相比他们来说显得非常“亲民”。当时在 Kickstarter 上赞助一套完整的 Rift 眼镜开发者套件是 $300,而对于身在中国的我,需要额外 Pledge $30 作为快递费用。因此当时“订购”一台 Rift 眼镜的价格就是 $330,约合¥2032。 这个价格相比其他动辄上万的专业级别 VR 眼镜来说便宜了不少。但如果单从价格本身来看,可能还是会觉得这个定价偏贵,更何况 Kickstarter 项目并非是购物的过程。赞助者需要承担项目今后夭折而颗粒无收的风险。
Oculus Rift 宣传视频中宣称的 110 度视角 连接与供电: Rift 本质上说是一个接受 HDMI 和 DVI 输入的显示器,同时也是一个可以检测空间姿态信息的 USB 设备。所有与电脑连接的接口都设计在了 Rift 驱动器盒子上:
Rift 驱动器盒,与 Rift 眼镜采用固定的电缆连
驱动盒的接口,依次为:HDMI、DVI、Mini USB 和 5V 直流电输入 在使用时,用户必须将电脑的 HDMI 或者 DVI 之一的信号连接到 Rift,同时还需要连接 USB 线缆,以及一个用于供电的直流电适配器:
Rift 需要 5V 1500mA Max 的额外供电 将 HDMI 和 USB 线与电脑连接后,通过控制盒上的电源按钮可以开启眼镜:
在开启电源之后,即使没有打开 Rift 专用的程序,也可以看到 Rift 眼镜中已经有画面显示了。
如果将 Rift 眼镜上的透镜拆掉,就可以看到藏在眼镜底部的 LCD 显示器。它只是简单的复制了电脑显示器的画面而已。
这里先使用 Oculus 官方提供的一个实例程序来体验 Rift 的实际感受。启动后电脑显示器将出现下图那样的左右看似重复的画面,并且边缘还带有扭曲:
很容易猜到这两幅画面其实分别对应了 Rift 中左右眼应该看到的部分。而之所以扭曲,这便是 Rift 能实现 110 度视角的奥秘所在:采用凸透镜将画面放大。
利用凸透镜将原先长度为 x 的画面放大至 x’。来源:Oculus SDK 文档
Rift 在 LCD 屏幕前安装了凸透镜,用于扩大视角 由于凸透镜在放大画面的同时会产生扭曲,因此就需要先将 PC 的原始输出画面做扭曲的处理,就可以抵消扩大视角范围造成的画面扭曲。 对于近视人群,使用 Rift 时无法佩戴眼镜,那么是否会看不清画面呢?这点 Rift 团队的确也想到了,为了照顾不同视力的人群,目前开发套件中包含了 3 种规格的凸透镜,规格分别叫做 A Cup, B Cup 和 C Cup。按照焦距分别对应于远视、正常视力和近视。
每种类型的凸透镜均有两片,可以左右眼位置安装不同规格的透镜 此外,由于不同人视力差异,Rift 眼镜还带有焦距微调机构,可以分别调节左右眼的焦距:
Rift 两侧都带有可以微调凸透镜焦距的机构
作为虚拟现实眼镜另一个很重要的指标就是在人扭头,视角切换时候,所看到画面随着切换的响应速度了。如果传感器或者软件处理的较慢,则会感受到所看到的画面有所滞后。从而产生不真实感,更是会令人晕眩。 对此 Oculus Rift 在宣传中申明采用了 1000hz 刷新率的惯性导航定位算法,可以实现很低的滞后率。 佩戴舒适度与晕眩感
由于 Rift 眼镜较轻,因此短期戴在头上不会有什么负重感。但由于需要将双眼长时间封闭,因此在天气较热的时候会觉得不舒服。
而晕眩感则较为明显,由于目前 Rift 仅能感受头部的转动,不能感受身体移动。因此在虚拟场景中的移动一般是需要通过键盘、游戏杆这类传统设备来控制的。而在“移动”的时候,由于虚拟现实带来的融入感,人体本能的会认为自身出现不受控制的漂移。此时就会产生晕眩感,这与晕车晕船的体验一样。并且长期也可能出现恶心呕吐,这一点也在 Rift 的操作手册中重点给出了警告。 要解决这个问题,或许最好的途径就是让现实世界中的使用者真正的动起来。对此,国外的 Virtuix 公司给出了一个比较好的方案。将 Rift 配合他们研制的全方位跑步机来使用。
Virtuix 的全向跑步机配合 Rift 实现带有移动感知的虚拟现实体验
在介绍完了 Rift 的使用感受后,让我们了解下 Rift 的构造和原理问题。由于之前 ifixit 网站已经做过了这方面的拆解,因此这里就直接以他们的图片作为例子。 Rift 可以通过简单的步骤拆开,在其核心的眼镜部分包含了 LCD 面板以及带有三轴陀螺仪、三轴加速计和三轴磁罗盘的 9 自由度传感器 PCB。
将 Rift 眼镜分离,并拆开。来源自 ifixit 的拆解文章
所有核心的部件均安装在眼镜底部的平坦部分 其中画面上半部分据采用了一块由台湾生产的 1280×800 7 寸的 LED 背光 LCD,据 ifixit 描述,这块面板的厂家也将在今后给 apple ipad mini 供应面板。而面板本身则通过画面中那些细线与控制盒连接。通过其中使用的芯片 (HX8851) 可以得知,该信号线为 LVDS,电脑输出的 HDMI/DVI 信号应该已经在控制盒中完成了转换。 而上图下边的黑色 PCB 对于制作无人飞行器的朋友会很熟悉,它其实就是一个标准的航姿参考系统 (AHRS):
Rift 使用的姿态传感器 PCB 对于飞行器来说,带有这类功能的 PCB 显得非常常见。从 ifixit 的照片中可以得知,Rift 采用了 MPU6000 的陀螺仪 / 加速计集成芯片。该芯片内置了 3 轴的陀螺仪和加速计,并且使用 SPI 总线对外输出数据,完全可以实现官方宣称的 1000hz 的采样速率。而画面上放黄色的芯片为 Honeywell 的 HMC5883 3 轴电子罗盘。在工作中,陀螺仪和加速计将用于感知自身的俯仰角和翻滚角信息,并配合电子罗盘得到人的水平朝向角度。
画面中央红色的芯片是一块主频为 72Mhz 的 32 位 ARM 处理器,STM32F103C8。该芯片应该将负责采集各传感器的数据后,进行必要的数据融合和滤波,并将处理好的姿态信息发送给 PC 机。
这样的配置,对于要实现低延迟的视角切换来说应当是绰绰有余的。 相比 Rift 眼镜部分,控制盒的构造就显得更为简单。从 ifixit 的拆解图看出,他内部基本部件就是负责将 HDMI/DVI 信号转化为直接驱动 LCD 的 LVDS 信号。并且负责稳压和对姿态传感器信号的转接传输工作。
控制盒的 PCB,红色最大的芯片为视频信号接口芯片 目前官方提供了可以在 Windows/MacOS 上工作的 SDK,并且是完全开源的。从中可以看到对于底层设备通讯到上层进行画面渲染的所有细节。
Oculus 官方提供的 Rift SDK 下载 对于 Windows 下的开发,SDK 中包含了 Visual Studio 2010 的工程文件,可以很容易的编译出之前文中提到的官方 Demo 以及另外两个例子应用。 检测 Rift 上姿态传感器用的工具程序:
以及一个简单的室内环境场景例子:
Rift 带给人的体验是从前没有过的,即使目前它还存在各种不足,我相信这类虚拟现实技术一旦在日常生活当中普及将极大地改变现在的世界。并且随着今后硬件不断地升级。这些不足将会很快的得到解决。 除了用于游戏娱乐外,我从自身角度认为 Rift 这类虚拟现实眼镜配合机器人技术也将大有用武之地,比如配合立体摄像机以及高速云台系统,戴着 Rift 的用户可以远程操作机器人身临其境的感受另一个地方机器人所感受的世界,这将大幅提高远程作业、远程办公等应用的体验。这也将是一个不错的应用可能。
了解更多有关虚拟现实内容,点击虚拟现实-Matrix来临? |