虚拟现实头盔上的明珠,已经被摘下了吗?
2016年11月11日,最让热衷虚拟现实的科技男们兴奋的,不是得到了女神晚餐的邀请,而是HTC无线虚拟现实头盔发布的消息。是的,这一天应该被记住,就好像电话在一夜间进化为手机。
自从Oculus DK1引爆本次虚拟现实革命后,人们对VR体验的空间要求不断被刷新:桌面级三自由度、桌面级六自由度、站立式交互、房间级交互、仓库级多人交互,每一次升级都会带来更多的玩法和更好的沉浸式体验。随着空间要求不断变大,VR输入设备日新月异,但VR头显却发展缓慢,Palmer Luckey曾在CES上明确表示,制约站立式以上体验的最大障碍是电线。
剪掉VR头盔上的电线,真的那么难吗?
是的,因为VR头盔对技术指标要求极为苛刻。首先是延时,合格的VR体验对Motion to Photon的延时要求在20ms内,超过这个时间就容易造成眩晕;其次是分辨率,目前VR头显的主流分辨率是2.5k(2560*1440),在符合视角要求下低于这个分辨率会有明显纱门效应,破坏沉浸感;再次是渲染能力,VR的双目渲染会比单目渲染多消耗70%左右的GPU,降低渲染能力几乎会成倍减少画面质量。
尽管无线虚拟现实头盔的研发障碍重重,但在追求无线的道路上,我们仍然看到了诸多已提出或未来会提出的解决方案,笔者将对这些方案从概念到技术一 一梳理,以勾画出无线虚拟现实头盔的昨天、今天和明天。
昨天篇
无线虚拟现实头盔的昨天之一,手机头盔。
没错,手机头盔是我们最早接触的无线虚拟现实头盔。手机头盔从Cardboard开始到体验最佳的Gear VR,再到水货遍地的一体机,其借助于手机芯片的移动化天生做到了无线。手机头盔的技术无需多述,优势是成本低廉,劣势是缺乏原生空间定位支持和GPU性能过低,无法进行复杂场景和高质量渲染。手机头盔在当前移动GPU性能的束缚下,最佳使用场景是全景视频,很难提供站立式以上的高质量沉浸式交互体验。
国内最早一批生产手机头盔的是暴风魔镜,在那个VR严重匮乏的年代暴风魔镜成为中国无线虚拟现实头盔的启蒙。
无线虚拟现实头盔的昨天之二,串流式手机头盔。
串流式手机头盔可以将PC上运行的虚拟现实应用程序视频输出结果逐帧捕获(Capture),将捕获结果经过编码压缩后通过wifi传输到手机头盔或一体机上,由手机头盔或一体机进行解码后输出到屏幕。串流式手机头盔的优点是可以使用PC上的强悍显卡资源进行复杂场景的高质量渲染,缺点是视频编码解码相当费时间,叠加wifi传输会带来很长的Motion to Photon延时,造成严重眩晕感;并且高质量渲染后的图片经过视频编码压缩会显著降低画质。
串流式手机头盔最早的产品是Trinus VR
Trinus VR使用CPU进行视频捕获和编码压缩,传输延时高达100ms以上,但其开启了一个真正的无线时代。
感谢Nvidia的Nvidia Video Codec SDK,我们可以直接调用GPU的nvenc直接对应用程序的视频输出进行捕获和硬编码,结合手机或Tegra平台的硬解码,视频编码压缩和解码的时间可大幅降低到20ms以内。Nvidia最早将此技术应用到Shield掌机的跨屏游戏中,但该技术随后被用到串流式手机头盔上,使得串流式手机头盔的Motion to Photon延时降低至40ms以内,最早提出该方案的是Visus VR。
尽管延时缩短到40ms,但依然会带来强烈的眩晕感。
无线虚拟现实头盔的昨天之三,背包 有线头盔。
尽管无线虚拟现实头盔的研发大大滞后,但随着人们对大范围交互的渴求,诞生了一个折中方案,背包 有线头盔。
第一次系统化提出背包 有线头盔商业解决方案的是澳洲的Zero Latency。
Zero Latency的目标是提供一个仓库级的多人VR交互方案,让多个玩家同时进入到一个游戏场景中游戏。想做到这点必须连过几道关卡:
首先是无线,由于场地大小设置为400平米,所以玩家必须以无线方式进入场景,有线很难支持如此大范围行走;
其次是延时,由于玩家需要相对长时间进行游戏,所以在游戏时间内不能给玩家造成明显眩晕感,延时控制必须在主流头显水品,即20ms内;
第三是画面,为营造更好的游戏氛围,必须使用主机级GPU进行渲染;
第四是位姿计算,由于玩家以无线方式行走,故需要进行六自由度计算,其中位置计算无法依靠惯性传感器而使用了廉价光学方案(60fps刷新率),造成位置计算延时至少为16.6ms,加上无线传输延时将大于18ms,所以对眩晕影响更大的姿态计算必须通过高采样率(1000Hz)的IMU在本地进行。
Zero Latency使用了Alienware Alpha主机和移动电源设计的背包系统,背包和服务器通过wifi做数据连接,显卡达到970m水平,使用DK2作为头显有线连接到Alpha,达到了上述四个目标。这一背包系统虽不能严格称之为无线头盔但做到了无线头盔所能达到的结果,缺点是背包不易穿戴、电池寿命不长。
Zero Latency的方案对随后的虚拟现实主题公园影响深远,最著名的就是盐湖城的the Void。
The Void将背包系统和有线头盔设计的更有外星范,加入力反馈功能,并结合Optitrack的光学动捕系统提供了更精确的定位计算、更多样化的虚拟物体交互等,使得大范围多人交互系统变得更为有趣。
至此背包 有线头盔 wifi的所谓“无线虚拟现实”解决方案落定,成为仓库级虚拟现实交互和VR主题公园的首选方案,国内也有许多公司推出了无线背包系统。
微星(MSI)的背包系统
同方的背包系统
索泰(Zotac)的背包系统
今天篇
2016年不是老调长谈的又一个虚拟现实元年,却是无线虚拟现实头盔元年。实现理想的无线虚拟现实头盔无外乎两种办法,一种是将渲染后的视频信号无线传输,另一种是在头盔中进行高性能渲染。
开启今天的钥匙,60Ghz通讯。
将渲染后的视频信号无线传输是实现无线虚拟现实头盔最直接的办法。早在串流式手机头盔时代,人们就使用了这种借助远程PC进行高性能渲染,并将视频结果通过wifi输出到头盔上的方法。这种方法的最大缺陷就是必须对视频信号进行压缩,因为符合质量的原始视频数据至少为1920*1080@60fps,如果不经压缩数据消耗带宽约为3Gbps,而最快的802.11ac通讯带宽为1.3Gbps,所以不对数据进行编码压缩将无法通过wifi传输。如前文所述,即便使用nvenc硬编码和硬解码,附加延时也会达到接近20ms,这对VR体验而言是灾难。
幸运的是60Ghz毫米波通讯在2015年下半年取得了长足进展,目前的WiGig 60Ghz通讯最大可以支持7Gbps通讯,这也使得将PC端渲染的视频图像不经压缩以raw data方式无线传输成为可能。Lattice是全球60Ghz模组最大供应商,其提供的模组可以对1920*1080@60fps的数据进行近距离(约20米)的无线传输。
第一家使用60Ghz进行无线虚拟现实头盔设计的公司是Serious Simulations,其生产的无线虚拟现实头显主要用于军事训练。
Serious Simulations的无线虚拟现实头显采用了两块1920*1080的显示屏进行输出,以获得更大视角,但受限于单个模块,左右眼为复制模式。
既然Lattice已经生产了60Ghz相关模组,那么为什么只有少数团队有能力设计无线虚拟现实头盔?原因众多:
1、 屏幕。Lattice的模组使用了1920*1080@60fps的输入输出规范,所以需要视频以1920*1080的格式输出图像到模组,经过60Ghz无线传输后再以1920*1080的格式输出到屏幕,这就意味着屏幕必须能够接受1920*1080或以下的横屏(Landscape)模式。通过Panelook网站可以轻易查到,支持横屏模式的屏幕最小为7寸,且无法达到1080p,但7寸屏相对头显用屏显然太大了。理想的头显用屏是5.5寸,且分辨率必须达到1080p,这种屏幕多用在手机上,是竖屏(Portrait)模式,因此需要对数据进行横竖转换以适应竖屏或双屏模式。
2、 线速转换。如前文所述,为实现屏幕转换且不增加延时,就必须要对输出的视频数据进行线速转换,这需要头盔设计团队具有优秀的高速视频信号处理技能。
3、 依然是延时。以横竖屏转换为例,当进行视频数据90度旋转时,会产生以下情况:
横屏模式下第一行最后一个像素翻转后刚好会成为竖屏模式下最后一行的最后一个像素,使得转换必须在缓存一帧图像后完成,这使得延时会增加近一帧,优秀的团队会采用更好的算法完成转换而避免缓存造成的延时。
4、 对惯性传感器等输入数据的处理。目前的有线虚拟现实头盔通过USB将头盔中的惯性传感器信息传输到PC上进行数据融合(Fusion),以最短延时获取头盔姿态,进而计算摄像机姿态并渲染画面。当头盔的视频输出变为无线时,惯性传感器输入也必须是无线的,这在一定程度上需要设计团队具有超低延时无线通讯技能和扎实的传感器融合技能。
ZVR在2016年初推出了一款自主研发的无线虚拟现实头盔。
1920*1080OLED屏幕,在头盔后部集成电池组件。由于头盔中集成有60Ghz模块并只进行图像转换和输出,所以电池消耗时间恒定,官方数据是可支持3.5小时。
相比较ZVR的从基础干起的设计方案,TPcast采用了与HTC VIVE合作的方式,用一个外挂模块解决了有线虚拟现实头盔的无线化问题,并起了一个容易记住的名字:剪刀计划。
由于VIVE使用了自己的封包格式对USB数据进行传输,所以TPCast所做的第一步就是要得到USB的数据结构,并且在连接PC的发送端上将自己的VendorId伪装成VIVE以实现Direct Mode和支持steam应用程序的loading。
此外VIVE的分辨率是2160*1200@90fps,超过1920*1080@60fps的模块通讯数据,因此推断TPCast可能将yuv444格式变为yuv420格式以支持更高分辨率,并且实际刷新率降为60fps,这与汪总在发布会上提到的没有降低图像质量的说法有出入,&当然这是推断,具体要等待发货后验证,但无疑TPCast为无线虚拟现实头盔迈出了坚实一步。
高性能嵌入式计算平台,不仅是一体机
早在HTC发布无线虚拟现实头盔之前,Oculus就在其发布会上透露了O记无线虚拟现实头盔的只言片语。
根据有限的信息来看,Oculus的无线虚拟现实头盔不使用高性能PC,计算直接在头盔内完成,并且内置了Inside Out定位系统,这更像是有线头盔和一体机的结合体。当然具体实现方案和使用效果需要更多信息来调研。
无论使用有线一体机方案、外挂方案还是从基础干起方案,无线虚拟现实头盔的大幕已经拉开,加油Oculus,加油TPCast,加油ZVR!
明天篇
是否有一种方案是无线虚拟现实头盔的终极方案?当然,只要嵌入式GPU足够强大,功耗足够低,MINI主机 头盔或一体机将是终极方案,但这一天可能会很久。那么明天的方案呢?如何使用PC的强悍渲染能力、如何能做到几乎0附加延时(至少看起来是)、如何突破60Ghz的分辨率刷新率上限?
可能是这个方案:
图形渲染仍在PC的GPU上,只不过输出的数据是比正常图像视角更大的图像,类似全景视频。
图像按照类似Facebook的全景视频压缩方法进行压缩并由GPU进行编码,压缩后的图像通过wifi点对点传输到具有图像硬解码能力的专用一体机上,一体机解码后以准全景视频的方式输出到屏幕,头盔根据惯性传感器计算当前视角输出当前视角的全景图像,结合ATW用户可以看到稳定无延时的视口图像,就好像图像在头盔本地生成。此时后台的编码视频流以<20ms的延时通过wifi不断填充到头盔,以完成相对高延时的位置计算。
根据推断,VIVE之前合作的Quark VR很可能采用的就是这个方案。
让我们拭目以待。
正如某人所说,虚拟现实中的追踪技术不是由单一传感器构成,而是通过结合不同传感器以达到在不同环境下的有效工作。无线虚拟现实头盔亦如此,需要结合不同技术以达到高性能、高分辨率、低延时、大范围、多用户的要求。