雷锋网按:本文作者陈幸,专注于光学定位系统研究,曾就职于华为苏州研究所等国内知名IT企业。从事虚拟现实行业两年有余,现就职VR日报内容研发部门总监。
PlayStation VR于2016年7月28日面向中国大陆地区开放预约,短短数小时时间即宣告售罄,让人们不得不承认索尼的巨大号召力。而在短短四天之后,也就是8月2日,PlayStation中国官方微博宣布正在积极筹备第二轮预约活动并将尽快开启。
索尼PlayStation VR是不是真的只是依靠PlayStation游戏主机的号召力来拉动销售呢?
答案显然是否定的。
在官方公布的PlayStation VR详细配置中,有一个参数明显在目前三大主流虚拟现实头显中占据领先地位——刷新率为120Hz,比HTC Vive和Oculus Rift高了30Hz。在虚拟现实头显的参数中,这一数据决定了眩晕感的强弱,因而消费者们纷纷表示“索尼大法好,快点把我的钱拿去吧”。
相信所有体验过VR头盔的读者都会有共同的感受——眩晕。
眩晕被认为是影响虚拟现实发展的几大拦路虎之一,目前市场上主流的几大头显都没有从根本上解决这个问题。
出现眩晕的原因是多方面的,人体的生理机能、头显的刷新率和帧数、VR应用的制作质量等等,都会造成眩晕的出现。目前,人类能够有效实现改观的大概只有屏幕的刷新率这一项了。
刷新率,指显卡将显示信号输出,屏幕刷新的速度,比如60Hz就是每秒钟显卡向显示器输出60次信号,由屏幕决定。
帧数,是指画面改变的速度,60fps就是每秒钟显卡生成60张画面图片,由显卡决定。
这两者是相辅相成的,也就是说,当帧数和刷新率都能做到高数值而且能够同步的时候,就能实现很好的虚拟现实体验。打个简单的比方,就好像显卡能高速翻书,屏幕能很好地跟上翻书的速度,那么读一本书的体验便会极好。
解决了刷新率,就能有效降低画面渲染延迟;降低了延迟,画面才能最大程度地跟随用户的脑部运动而变化,继而缓解眩晕的情况出现。
对于PlayStation VR来说,作为一家游戏主机厂商,即便通过牺牲分辨率来大幅提升刷新率以保证游戏的流畅性的做法有待商榷,但这是由索尼“为玩家提供更好的虚拟现实体验”的理念决定的。相对来讲,HTC Vive和Oculus Rift更多的是承担起了提供更多样的VR解决方案的责任。
在游戏体验上,PlayStation VR没有退路,必须要让自己做到三大头显中的最好,不然会挨骂的。
中国有句古话:假作真来假亦真,用来形容PlayStation VR的120Hz刷新率是最合适不过了。PlayStation VR是通过Asynchronous Reprojection的辅助(注意是辅助)做到120帧游戏显示的。做技术的人,怎么能说是假的呢?
PlayStation VR屏幕其实是支持三种显示模式的:
PlayStation VR确实有真的原生120Hz的显示刷新率,但这种模式要求开发者对应用的优化做得足够好,或者应用本身就对机能的要求不高,而这种情况往往是不太可能出现的。
90Hz的刷新率同HTC Vive和Oculus Rift的刷新率一样,想必就是索尼做出的一个妥协方案,有助于帮助开发者更好更积极的为PlayStation VR生产内容。当开发者发现自己的应用能轻松的超过60fps,但又很难达到120fps,就可以选择折中的90fps为目标,这是为开发者留出的一个漏洞,也是为索尼自己留出的一条退路。
原生60Hz,通过异步重投影技术实现120Hz。噱头非常足,所以最吸引大家的眼球,反而没那么关注另外两个显示模式了。当然,这个方法一定是有其缺陷的,不然索尼也就没必要推出另外两个模式了。
在应用使用过程中,渲染画面所耗费的机能是非常大的,也是比较消耗时间的。虚拟现实头显对于延迟的要求非常高,如果在画面渲染上花费时间过长,画面传回头显内的显示屏上时错过了当前帧的同步,就会直接跳往下一帧,用户会晕的昏天暗地。
PlayStation VR的1000Hz传感器,在每一毫秒里都会提供新的位置信息。Asynchronous Reprojection利用每两帧之间画面几乎非常接近的特点,用尽量小的机能消耗来生成对应当前人眼位置的画面。用户则能够在下一帧画面刷新之前,看到扭曲过的和最新的位置数据最接近的一帧画面,以暂时对应头部数据。
所谓异步,就是将上述线程和图像渲染处理线程分离开,是把这个线程和图像渲染线程分离开来。因为如果这两个线程顺序进行,由于可能出现画面渲染尚未完成的情况,造成Reprojection也被延后,但帧同步是固定时刻进行的,那么Asynchronous Reprojection就失去意义了。也就是说,所谓异步重投影,就是一帧是真实的,而下一帧是根据上一帧画面扭曲生成的。
虽然异步重投影有效的解决了帧率不够的问题,但并不是说完美的,这种方式有其本身的缺陷。
当头部发生位置改变而不仅仅是方向改变的时候,复杂都会有极大上升,这也是异步重投影最容易出现问题的地方。异步重投影生产帧画面时只考虑了方向的改变而忽略了方位的改变,那么原本被挡住的地方的画面就会展现在用户眼前,但上一帧画面却根本没有被挡住的地方的数据。离场景很近近的用户就会看见画面中的物体会有多个图像的抖动。
当画面中有移动动作比较大的物体的时候,在异步重投影条件下,因为当前帧是根据上一帧画面扭曲而来,所以这个物体在画面中还在原来的位置,这个物体虽然相对你的大脑理解位置还是正确的,但当画面继续进入再下一帧的时候,就会出现抖动的现象。
计算镜面反射需根据用户的眼睛或摄像机向量得出结果,进而生成一帧画面。但在眼睛或头部发生运动的时候,镜面反射数据不再正确,画面扭曲却并没有去考虑这个问题,这就会导致镜面反射抖动。基于这个原理,其他依赖于眼睛位置的着色技巧也会遭遇类似问题。
PlayStation VR的120Hz高刷新率是其产品定位的结果,并不能说明另外两家头显在技术上弱于索尼。正好相反,Oculus在异步重投影上的技术积累比索尼更强,HTC也多次强调会加强对异步重投影的运用。
但是必须要承认,PlayStation VR的120Hz高刷新率在游戏体验的效果增强上是非常明显的,毕竟索尼将技术真真实实的运用到了产品上不是?
对于开发者来说,异步重投影是为了在机器性能跟不上和应用画面卡顿时,照顾用户大脑对现实世界理解的一种显示方式。如果开发者能够将优化做得足够好,直接选用原生120Hz才是真正的大法呢。