您正在使用IE低版浏览器,为了您的雷峰网账号安全和更好的产品体验,强烈建议使用更快更安全的浏览器
此为临时链接,仅用于文章预览,将在时失效
专栏 正文
发私信给小芹菜
发送

4

VR很爽,可是晕眩问题怎么破?

本文作者:小芹菜 2015-07-13 16:14
导语:就算是最尖端的VR产品,目前依旧有致命的“硬伤”:晕眩感太强。这成为VR发展最大的一个绊脚石,解决晕眩问题成为VR的燃眉之急。

编者注:本文由乐相科技供稿,雷锋网编辑做了不改变原意的调整。

VR很爽,可是晕眩问题怎么破?

随着VR产业渐渐进入人们的视线,VR热潮正处于爆发前期。纵观国内几家VR领域的尖端企业,中国的VR硬件与国际水准相比并不低。如果以“国际标准”Oculus的VR硬件来说,可以说与其基本持平。对于过国内广大普通产品使用者来说无疑是个好消息,国内的VR团队在保持硬件的技术过关的前提下,性价比颇高。

然而,就算是最尖端的VR产品,目前依旧有致命的“硬伤”:晕眩感太强。很多VR体验者表示,在一段时间使用VR产品后,会出现不适,恶心,甚至呕吐。这成为了VR发展最大的一个绊脚石,解决晕眩问题成为VR的燃眉之急。

一、为什么会产生VR晕眩? 

VR晕眩原理其实非常简单,因为眼睛看到的(VR)画面与从耳朵接收到的(真实位置)信息不匹配,导致脑负担加大,从而产生晕眩感。

产生这样的问题主要有两个方面:

一方面和3D晕眩症的道理有点类似,3D特效大片之所以会让观众觉得头晕,是因为3D电影除了大量实焦画面外,还有元素丰富的虚焦布景画面。

画面里的元素过于丰富,像远处景深里虚焦树叶就是众多元素里的一部分。但观看3D电影的时候,观众必须舍弃虚焦画面里的这些元素。因为这些元素会让眼球重新聚焦,且屡屡聚焦失败,就容易产生3D晕眩症,这就类似在雪山上的人眼球长期搜查不到视觉焦点而造成的雪盲。

VR很爽,可是晕眩问题怎么破?

简单来说就是画面太逼真了,让你有身临其境的感觉,身体认为你正在做剧烈的运动,或者处于画面中的状态,但是实际上你是坐在座位上并没有运动。这是一种自我保护的本能,大多数人可以通过锻炼减轻晕眩,但是不可能让人真正去移动一段距离。

另一方面是VR硬件的延迟造成时间上的不同步,当人转动视角或是移动的时候,画面呈现的速度跟不上,在VR这样全视角的屏幕中,这样的延迟是造成晕眩的最大问题,目前降低延迟是当下减弱VR眩晕的主要手段。

二、延迟——VR领域中降低晕眩的方法

选购虚拟现实设备,很重要的一个指标是从转动头部到转动画面的延迟。

而画面延迟在很大程度上又取决于显示屏的刷新率。目前世界上最先进的虚拟现实设备刷新率在75Hz,包括鼎鼎有名的Oculus DK2和上海乐相科技的大朋等。

75Hz意味着渲染完成到显示在屏幕上,至少需要1秒除以75次等于每次13.3毫秒,包括安全保险的时间在内,一般是19.3ms的延迟。所以任何声称自己延迟在19.3ms以下的都是虚假宣传。

那么延迟19.3ms是由什么构成的?

VR很爽,可是晕眩问题怎么破?

(19.3ms延迟的产生过程)

1、首先从头部转动到传感器读到数据大概需要1ms的时间,如果采用世界一流的传感器,那么采样率在1KHz,也就是说每秒钟可以读取到一千个数据,那么每个数据就是1ms,也就得出了这1ms的延迟。

2、然后数据需要经由单片机,传输到电脑。因为它们的接口是不同的,就好像空调的电源插头不能插到小台灯的插座里,需要一些转换工作,单片机就负责了这样的转换。数据从传感器到单片机大概需要1ms。因为前面数据的产生需要1ms,于是如果不在1ms内将这些数据传送到单片机,那么后来的数据就会被丢弃。

3、接下来是单片机经由USB线将数据传输到PC。USB线具有极高的传输速率,但是完全由Host端(也就是PC端)控制传输的。也就是说,如果Host端不接收单片机发来的数据,那么数据就会被丢弃。采用HID方式的情况下,Host端会经常检查是否有数据传输上来,然后将数据存放到内存,所以这个时间在1ms之内。至此,数据已经到达PC的内存了,走完了全部的硬件过程。由于数据带宽、通信协议等限制,会占用3ms~4ms之间的时间,很难再减少了。

4、在硬件上传输完成后,就是软件算法处理的过程了。

由于模拟信号本身的噪声和漂移,转换成数字信号后,数据中存在大量的噪声和漂移。于是需要复杂的数字信号处理方法将这些噪声和漂移过滤掉。这样,传感器传来的9轴数据就成为了渲染游戏所需的头部旋转的四元数旋转数据。处理这个数据一般在1ms以内。渲染时只要将这个旋转的四元数乘以摄像机的坐标,就得出了观察方向,可以用于渲染场景。通过特殊的算法(例如Time-warp,目前最快的算法),根据先前的数据处理得到的图像,完成真正被显示的画面。幸亏有了Time-warp算法,我们可以基本忽略渲染场景的延迟。

5、当场景渲染完之后还需要做反畸变,反色散等处理。这些处理一般需要消耗GPU 0.5ms的时间。为了安全起见,将这个时间设为3ms,来保证准备传输下一帧到显示器,也就是下一个垂直同步信号来之前,GPU必定能把反畸变、反色散做成。

6、然后就是传输图像到显示器的时间了。如前所述,按照75Hz计算,那么需要13.3ms。到此就结束了吗?不是的,还有显示器将图像显示出来的时间。由于LCD显示器是晶体由电场控制旋转的物理过程,所以传统的LCD显示器需要15~28ms不等的时间来响应。而最新的OLED技术则将这个时间减少到了微秒级。

好了,让我们将这些时间累加起来,3ms + 3ms + 13.3ms = 19.3ms。当然这是最理想的情况,还有可能CPU的性能、USB丢包等问题可能导致达不到这样低的延迟。

国内大朋和“国际标准”Oculus的产品都是采用此种算法,最低延迟是完全一致的,在全世界范围内,19.3ms的延迟是当下最科学,最可信的延迟推算时间。

当然Oculus展望未来可以将延迟降得更低也不是吹嘘的。从上面的算式可以看出,主要瓶颈在13.3ms这个延迟过程上。通过一些特殊的方法可以减少一半,甚至更少。但这需要硬件厂家、操作系统、游戏开发者共同的努力。

目前看来,VR硬件改善延迟是改善眩晕最好的解决方法,所有需要的时间不断压缩能够来降低画面的延迟,从硬件上先解决造成晕眩的问题。其次就像之前的3D眩晕一样,使用者通过一段时间的适应,才能使VR成为真正意义上的虚拟现实产物。

雷峰网原创文章,未经授权禁止转载。详情见转载须知

VR很爽,可是晕眩问题怎么破?

分享:

编辑

雷锋网编辑,AI慕课学院负责人。关注智能驾驶与金融科技,欢迎来撩:www.mooc.ai。
当月热门文章
最新文章
请填写申请人资料
姓名
电话
邮箱
微信号
作品链接
个人简介
为了您的账户安全,请验证邮箱
您的邮箱还未验证,完成可获20积分哟!
请验证您的邮箱
立即验证
完善账号信息
您的账号已经绑定,现在您可以设置密码以方便用邮箱登录
立即设置 以后再说