简单来说就是画面太逼真了,让你有身临其境的感觉,身体认为你正在做剧烈的运动,或者处于画面中的状态,但是实际上你是坐在座位上并没有运动。
这是一种自我保护的本能,大多数人可以通过锻炼减轻晕眩,但是不可能让人真正去移动一段距离。
另一方面,VR硬件的延迟造成时间上的不同步,当人转动视角或是移动的时候,画面呈现的速度跟不上,在VR这样全视角的屏幕中,这样的延迟是造成晕眩问题。
目前世界上最先进的虚拟现实设备,画面延迟都在19.3ms以上,而想要真正解决眩晕的问题,至少要将延迟降低到10ms以内。
这里面涉及到的硬件技术问题,即使虚拟现实技术的领跑者,大名鼎鼎的Ocu露s公司(已被Facebook收购)也解决不了。
原理很简单。
比如一台全息显示设备,首先从头部转动到传感器读到数据大概需要1ms的时间。
然后数据需要经由单片机,传输到电脑。
因为它们的接口是不同的,就好像空调的电源插头不能插到小台灯的插座里,需要一些转换工作,单片机就负责了这样的转换。
数据从传感器到单片机大概需要1ms。
因为前面数据的产生需要1ms,于是如果不在1ms内将这些数据传送到单片机,那么后来的数据就会被丢弃。
接下来是单片机经由USB线将数据传输到PC。
USB线具有极高的传输速率,但是完全由Host端(也就是PC端)控制传输的。
也就是说,如果Host端不接收单片机发来的数据,那么数据就会被丢弃。
采用HID方式的情况下,Host端会经常检查是否有数据传输上来,然后将数据存放到内存,所以这个时间在1ms之内。
至此,数据已经到达PC的内存了,走完了全部的硬件过程。由于数据带宽、通信协议等限制,会占用3ms到4ms之间的时间,很难再减少了。
在硬件上传输完成后,就是软件算法处理的过程了。
由于模拟信号本身的噪声和漂移,转换成数字信号后,数据中存在大量的噪声和漂移。
于是需要复杂的数字信号处理方法将这些噪声和漂移过滤掉。
这样,传感器传来的9轴数据就成为了渲染游戏所需的头部旋转的四元数旋转数据。
处理这个数据一般在1ms以内。
渲染时只要将这个旋转的四元数乘以摄像机的坐标,就得出了观察方向,可以用于渲染场景。
通过特殊的算法(例如Time-warp,目前最快的算法),根据先前的数据处理得到的图像,完成真正被显示的画面。
幸亏有了Time-warp算法,我们可以基本忽略渲染场景的延迟。
当场景渲染完之后还需要做反畸变,反色散等处理。这些处理一般需要消耗GPU0.5ms的时间。
为了安全起见,将这个时间设为3ms,来保证准备传输下一帧到显示器,也就是下一个垂直同步信号来之前,GPU必定能把反畸变、反色散做成。
然后就是传输图像到显示器的时间了。
如前所述,按照75Hz计算,那么需要13.3ms。
到此就结束了吗?
不是的,还有显示器将图像显示出来的时间。
由于LCD显示器是晶体由电场控制旋转的物理过程,所以传统的LCD显示器需要15~28ms不等的时间来响应。
而最新的OLED技术则将这个时间减少到了6ms左右。
这样综合加起来,至少需要19.3ms才能完成显示。
矩阵数码在全息显示上的技术储备还不如Ocu露s,自然也没办法从物理层面去解决这个问题。
幸好杨林的大脑中还有一套矩阵系统。
杨林发现,虽然没办法在硬件上做到百分之百地解决延迟问题,但通过对软件的优化,将延迟降低在可接受的范围内还是没有任何问题的。
矩阵数码的工程师们开发在完成《江湖OL》源代码的初步编写后,杨林又将这套源码在自己的大脑中用二进制语言重新优化了一遍。
通过算法优化、在全息眼镜内置小型GPU缓存芯片等办法,《江湖OL》在矩阵眼镜上的延迟成功缩短到了10毫秒以内。
这也是人体出现眩晕反应的一个极限,一旦低于这个阈值,就不会有任何的VR眩晕问题。
当然了,如果把其他未经优化的游戏放在矩阵眼镜上,产生的延迟时间恐怕还在Ocu露s等公司开发的全息显示设备之上。
……
刘艺伟不是专业的技术人员,自然不会明白解决了眩晕问题的矩阵眼镜对VR产业乃至整个互联网产业意味着什么。
但作为一名资深的网络游戏爱好者,他有足够的