如何评价2018年8月大朋vr新出的VR一体机?
VR娱乐:游戏向左,影视向右
今年以来,VR界的焦点从PCVR转到了一体机VR,业界领先的Oculus推出了Oculus Go,HTC
Vive也推出了Vive Focus高端一体机,而两者自从2016年推出Rift和Vive之后并没有推出真正意义上的第二代PCVR(HTC高达1万多售价的VivePro曲高和寡,并没有什么革命性的参数升级或者突破,也没有什么销量,并不能称为第二代的PCVR)。Oculus转向VR一体机的原因在去年和今年的Facebook8甚至Google I/O大会上都有提到:不管Oculus平台还是DayDream平台,用户把几乎80%的时间用在了观影上
图一 来自2018 Facebook8基于上述背景,VR界老兵大朋VR携新品 “全景声巨幕影院”而来。大朋VR不管是最高端的支持360°Room-Scale范围的基于红外激光定位的Polaris,还是2年前就销往国内外的一体机M2,都基于大朋的自有技术:从算法理论,硬件制造,头盔固件,FPGA,到Mobile VR SDK,再到开发工具,都是大朋攻城狮们一行行代码垒出来的。
现有市场上VR一体机多基于美国高通或韩国三星的芯片,大朋最早的一体机M2就是用的三星芯片。在今天国产芯的大背景下,大朋非常大胆的提前几年选定了国内全志的VR9。 据说多年前大朋曾向全志建议把ATW等VR算法操作从GPU中释放出来,打造专有硬件模块提高效率。4年磨一剑,现在全志终于为全球VR市场发布了第一款专用芯片VR9,定位非常犀利,就是给用户提供极致的VR影音体验。尺有所短寸有所长,VR9的影音解码是强项,但以此就牺牲了游戏GPU能力。鱼与熊掌不可兼得,谁说不是呢?
图二 VR9框架图在VR9国产的芯片设计的基础上,大朋进行了全方位的优化:
VR流水线
要想真正了解VR技术的优劣,得先从VR世界中一个物体如何被渲染并最终进入人眼的过程讲起。
图三 VR物体进入用户眼中的历程(流水线)VR系统本质上是一个异构计算系统,内部的CPU, GPU,Display等硬件模块一直协同并行工作。VR世界中的每一个物体从第一个模块开始,在整个流水线上一步步推进,最终进入用户眼中,如何提高流水线的每一步的效率和并行度是VR系统高效运转的关键。
渲染算法
设计时受到功耗和芯片面积的限制,移动端GPU性能参数,不管是FLOP还是内存带宽都大大低于同级别的PC GPU,比如Nvidia的PC端GPU GTX 650和移动端GPU Tegra K1,虽然都来自于Kepler架构,出现的时间几乎相同,但前者的内存带宽是80G/s,后者的只有18G/s。对于用户来说,这个差别意味着移动端的VR应用和实现不可能采用和PC系统一样的方法,而对于VR SDK的提供商来说,只能发挥“螺丝肚里做道场”的精神,想办法提升移动平台上GPU的利用率。在这个背景下,能够挤掉CPU和GPU之间泡沫,提高两者运行并行度的Adaptive Queue Ahead技术应运而生。
以前的VR世界中,CPU总是在VSync(垂直同步)到来才开始下达渲染命令给GPU(如下图),对于较重的GPU任务,很可能无法在当前VSync剩余时间中完成,后果就是应用的FPS(Frame
Per Second,帧率)下降,最终用户体验到应用或者游戏卡顿,显示“鬼影”以及眩晕。 图四 不带Queue Ahead的渲染Oculus最早在PC端的Rift上提出所谓的Adaptive Queue Ahead技术,CPU不用傻傻的等待Vsync的到来,而是通过预测,在VSync到来之前几毫秒内开始下达渲染指令给GPU,让GPU有更多的时间执行任务,有效提高VR应用的FPS,产生更好的用户体验。
图五 带Queue Ahead之后的渲染大朋第一次把来自PC VR端的技术引入到VR一体机的世界,让以前运行卡顿的应用流畅起来,还给用户一个平滑,沉浸和画面精致的VR世界。不过,考虑到PC平台和一体机平台之间的计算能力差异,但这一个优化还远远不够,于是大朋又通过叫“Hidden Mesh”的技术进一步提高GPU的渲染效率。
在VR头盔的光学视场中,由于镜杯结构和人眼特点,图像中某些区域人眼是无法看到的,在VR图像渲染中被称为Hidden Area(如下图中红色三角覆盖的地方,人眼其实无法看到)。
图六 Hidden Mesh大朋巨幕影院的图形渲染中巧妙的利用了这点,通过利用特殊绘制的Hidden Mesh(隐藏网格),能有效降低GPU的渲染工作量。CPU,GPU并行度提高了,GPU渲染效率也提高了,又进了了一步。怀着好奇心,笔者进一步分析了Oculus Go的系统,也许出于其他的考虑,发现它并没有采用Hidden Mesh。下图红框是Oculus Go Home中用户能够看到的部分,红框之外圆圈之内的内容用户通过透镜和镜杯并不能看到。
图七 Oculus Go Home接下来要做的,还需要有效减少用户佩戴时的眩晕感。人类的身体并非是天生为适应VR而设计的。通过VR设备对感官进行人工刺激,我们正在破坏生物机制的运作,这些机制经历了数亿年时间在自然环境中演变而来。我们也向大脑提供与现实体验不完全一致的信息。在某些情况下,我们的身体可能会适应新的刺激。但在一些情况下,我们的身体会产生眩晕和恶心等症状,部分原因是大脑比平常更高速地运转,以理解这类刺激。已知的产生眩晕的原因除了显示分辨率/刷新率不足,前庭和视觉系统冲突,虚拟世界中比例失真等,Motion-To-Photons延时过大也是其中的元凶。
Motion-To-Photons延时指的是在运行VR场景的情况下,从用户的头部移动开始,一直到这一信号通过VR头盔输出的光学信号映射到人眼所需的时间。一般认为,这一延时大于20毫秒会导致用户体验到较为明显的眩晕。
图八 Motion-To-Phontons而现有市面上的VR一体机无一例外都是基于Android系统。为了提高手机和平板电脑上显示的平滑性,传统的Android系统都是采用了双显示缓冲或者三显示缓冲。但是,这个机制让VR应用无法知道指定的图像什么时候能够显示在头盔屏幕上,加大了VR一体机的Motion-To-Phonton延时,让用户体验到更多的眩晕。大朋独有的硬件结构和算法优化,让Front Buffer Rendering(前屏渲染)成为可能:流水线中只采用了一个显示缓冲,最大程度上减少了Motion-To-Phonton延时,提供给用户更好的视觉体验。
图九 Front Buffer Rendering显示优化
除了渲染性能,显示清晰度一直是判断VR头盔优劣的另外一个重要指标,不过,没有所谓显示优化的“银弹”能一招制敌,清晰度的提升来自于各个模块的综合效果,而大朋在每一个部分都做了不断的迭代和改进,从而带来了出色的效果。
首先,GPU渲染出来的画面得清晰。但是,计算机渲染的场景从三维空间的角度看是连续的,经过光栅化之后最终显示在屏幕上的二维的图像本身却是离散的,这导致非完全垂直或者非完全水平的边上出现锯齿
图十 SSAA/MSAA减轻锯齿
抗锯齿最直接的方法是SSAA(Super Sampling Anti Alias)和MSAA。具体的思想都是先把物体渲染到比屏幕分辨率大(比如4倍)的缓冲区中,然后再降采样到和屏幕分辨率一样的显示缓冲区中最后输出显示,这样更多的信息被保留,而图像物体边缘的颜色也因为混合了不同颜色采样点而消除或者减轻了锯齿。在大朋巨幕影院的图形渲染实现中,采用了SSAA和MSAA来抗锯齿。
不过,事情好像还没有完,VR用户常常会抱怨图片或者文字闪烁。为什么我们在PC或者手机上看不到闪烁而在VR头盔中容易看到?这主要是用户改变了VR世界中离物体的距离,图像或者文字本身缩放造成的,再加上透镜本身的放大作用,用户就会观察到闪烁。
大朋采用了MipMap技术来防止文字和图片的闪烁。MipMap是指根据距观看者远近距离的不同,以不同的分辨率将单一的材质贴图以多重图像的形式表现出来:尺寸最大的图像放在前面显著的位置,而相对较小的图像则后退到背景区域。每一个不同的尺寸等级定义成一个Mipmap水平。
图十一 Mipmap防止闪烁这样,每次渲染的时候系统会找出相对当前场景最适合的图像,做最小的缩放操作或者根本无需缩放,让图像信息最大程度的保真。
70HZ显示刷新率
和Oculus Go一样,大朋采用了快速响应fast-LCD屏幕,区别在于,Oculus Go缺省的刷新率是60HZ(某些特殊情况可以到72HZ),而大朋的刷新率则一直是70HZ。
Fast-LCD屏幕上的像素点在每个Vsync过程中并不是完全点亮,屏幕的余辉(Persistence)大概在1-2ms。假设屏幕的余晖是1ms,对于60HZ来说,就是6.25%的时间屏幕上像素点是亮的,而对于70hz刷新率来说,就有7%的时间是亮的,大朋巨幕影院用户会感觉VR世界更亮。同时,人眼工作在一个更高刷新率的模式,较低刷新率的VR头盔会让用户感到闪烁。
显示芯片中的异步时间扭曲
在一个清晰,高刷新率的平稳世界中,常见的VR眩晕依然还有吗?有可能。带上头盔的用户使用过程中不停的转动,图像渲染时采用的姿态信息和图像上屏显示时的姿态可能完全不一样,用户一样会晕。
怎么办?解决之道是在图像帧扫描到显示器之前进行再一次的调整:根据最新的预测姿态更新图像,这被称为Time Warping(时间扭曲)或者Reprojection(再投影)。如果在实现中渲染的线程和做扭曲的线程是不同线程的话,又被称为Asynchronous Time Warping(异步时间扭曲)。
一般而言,VR计算过程中重要的环节,异步时间扭曲(包括畸变矫正和色散矫正)在GPU中完成。
图十二 传统的ATW但是,由于VR游戏或者应用会在渲染环节占用大量的GPU资源和计算能力,会造成GPU不能及时完成以上任务,带来较差的用户体验,这在移动平台上尤甚。大朋巨幕影院中第一次创造性的把时间扭曲/畸变矫正/色散等处理放在了独立的显示芯片中完成,减少了GPU负载,释放了GPU资源,有效提高了系统性能,也降低了系统功耗。别小看这一步优化,凭借这个,大朋能够在系统功耗上一下子拉开和同类产品的差距,这将在后面进行进一步解释。
图十三 显示芯片中的ATW图像后处理机制
在手机的世界中,同样拍摄的照片,加上不同的滤镜,马上凤姐变凤凰,老太变少女,在VR的世界中更是如此。而所谓的滤镜,说白了就是图像后处理。大朋巨幕影院系统中的图像后处理系统被称为SmartColor,能够带来更鲜艳的色彩和更好的色温控制,包括如下的功能:
(1) 自适应的细节和边缘增强;
(2) 自适应的颜色增强;
(3) 自适应的对比度增强和色调矫正。
体验一下Oculus Go上和大朋上实拍同一张图片,大朋的色彩要更加的自然,脸部层次更丰富,头发处的细节显示更加细腻。
Oculus Go大朋VR一体机图十四 图像后处理比较
透镜设计
VR头盔上的透镜本质上是一个放大镜,也是VR中很多光学缺陷比如纱窗效应,杂散光等的“元凶”或者 “ 帮凶 ”。在显示屏幕分辨率大致相同的情况下,VR镜片看点有二:透镜中心到透镜边缘的清晰度下降快慢,菲涅尔杂散光和拖影。
比如,下图被美国军方用来检测镜片各区域的清晰度。把图放入头盔中,你能清晰看到图像中间水平和垂直红线的最大刻度是多少?
图十五 清晰度比较基准图答案揭晓,通过把以上图片导入大朋工程样机和Oculus Go,左右两侧能看到的最大清晰刻度分别是11.2(大朋),11.2(Oculus Go)。从清晰度的下降程度看,通过头显看以上图片, 大朋巨幕影院和Oculus Go达到同样的边缘清晰度。
和Oculus Go一样,大朋巨幕影院采用了菲涅尔镜片。和非球面镜片相比,菲涅尔镜片更轻,视场角也能做的更大,长时间试用更保护用户的眼睛,但是由于其特殊的工艺和形状,齿间的光漫反射,会造成杂散光和特殊的光晕。
图十六 菲涅尔透镜外观利用菲涅尔镜片的优点,补足其缺点,大朋的光学镜片做了专门的设计优化,有效消除了杂散光和光晕。这种优化效果,在黑暗背景下由亮光形成的图案中,能够有效的观察到。
从Oculus Go头盔中抓取画面并放在大朋巨幕影院头显内显示,仔细观察视野内左下角“未安装应用”、“环境”白色字体的拖影情况,与Oculus Go头盔的显示拖影别无二致。
图十七 拖影测试图另外,在大朋巨幕影院中打开“3D影视”->“三少爷的剑”,在影院场景中选择第7排,然后“关灯”,时间轴定格到00:01:02暂停,画面显示下图内容,仔细观察虚拟银幕以外区域的杂光光晕,几乎难以觉察。
作为对比,Oculus Go也要显示相似的内容。在 SKYBOX,找到宣传视频,时间轴定格到00:00:11暂停,观影场景选择“太空”,同样仔细观察虚拟银幕以外区域的杂光光晕会略微差些。
图十八 光晕测试环绕立体声和定向声场
为强化沉浸感,大朋巨幕影院中加入了独有的杜比7.1声道模拟算法,让用户观看视频时能体验到360度环绕立体声效果。
图十九 VR 7.1声道同时,为了降低周围环境对用户的影响,还实现了定向声场传播,使用者本人和周围的旁观者听到完全不同的效果。
深度功耗优化
根据CPU自身的状态,大朋巨幕影院系统能够进入到3个不同的功耗等级:正常,待机和深度睡眠,实测观影续航能到4小时。
结合相应的用户操作和接近开关,大朋巨幕影院系统能够自动在不同的模式之间切换,达到节电的目的。同时,根据当前CPU、GPU等硬件模块的负载,大朋巨幕影院能动态调节CPU、GPU的频点,以满足不同使用场景的性能需求。比如当CPU使用率大于某一阈值时,会将CPU运行在更高的频点,以满足更大的性能需求;当CPU使用率小于某一阈值时,系统会将CPU运行在更低的频点,以满足更低功耗的需求。
Oculus Go也有类似的电源管理机制,叫做Dynamic Clock Throttling(动态时钟调节中文翻译),不过实测下来观影时间只有大朋的一半,2小时左右。
更多的VR优化技术,欢迎与交流。
本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。
如果侵犯了你的权益请来信告知我们删除。邮箱:dacesmiling@qq.com