Unity解析VR产业及思考

发表于2015-09-08
评论1 7.9k浏览

 

本文为Unity Technologies 技术支持经理 张鑫与原厂讲师 罗志达共同撰写的文稿,旨在于让更多投身VR领域的开发者在创建一个Unity项目之前,从过去,现在与未来的多重角度来了解UnityVR产业的支持

 

VR的发展历史与现在火爆的原因

在开始了解如何创建一个VR项目之前,首先需要了解VR的一些历史1935小说家Stanley G.Weinbaum在他的小说中描述了一款虚拟现实的眼镜,而该小说被认为是世界上率先提出虚拟现实概念的作品,故事描述的就是以眼镜为基础,包括视觉,嗅觉,触觉等全方位沉浸式体验的虚拟现实概念;1962年,一部名为Sensorama的虚拟现实原形机被Morton Heilig所研发出来,后来被引用到空军,以虚拟现实的方式进行模拟飞行训练。虽然随后从1970年到1994年的二十多年间,VR领域有许多科学家相继投入研究,但从整体上看,还仅限于相关的技术研究,并没有生产出能交付到使用者手上的产品,直到1994开始,日本游戏公司Sega和任天堂分别针对游戏产业而推出Sega VR-1Virtual Boy,在当时的确在业内引起了不小的轰动,但因为设备成本高,普及率并没有很大,但也为VR硬件进军To C市场打开了一扇门。

现今VR产业火爆,起因是因为2012Oculus Rift通过国外知名众筹网站KickStarter募资到160万美元,后来被Facebook20亿的天价收购而当时Unity作为第一个支持Oculus眼镜的引擎,吸引了大批开发者投身VR项目的开发中正式打响了这场VR之战,但经历首轮引爆后2014Google发布Google CardBoard让消费者能以非常低廉的成本通过手机来体验VR世界,导致许多手游开发者纷纷加入这战局,点燃了今日的Mobile VR超级大战


 

纵观当今市场,基于与Unity一直保持良好关系的硬件公司所讨论出的数据,讨论后所得到的数据,以及独立开发市场分析的结果,2017年会有超过1300万的VR硬件产出,2020年更会超出5000万台,总市值将达30亿美元

VR原理与现状深度探讨

在当今已经销售的沉浸式VR设备中,主要有以下两种设备类型:

1.    基于PC的头戴式VR设备,如Oculus Rift。此类设备通过PC来计算,并将计算结果传递给头戴式设备中的显示屏进行显示,进而让用户产生沉浸式VR的体验。就目前而言,该类设备较之其他类型设备,可以提供给用户最好的VR体验,但其缺点是必须要通过USB/HDMI线与PC相连,这也极大地限制了该类设备的灵活性。

2.    基于Mobile的头戴式VR设备,如Gear VRGoogle Cardboard等。此类设备通过将移动设备进行场景的渲染和计算,并直接作为屏幕来进行显示。该类设备的优点是避免了繁琐的电线连接,便于携带,且移动设备普及率高。但缺点同样突出,即计算和渲染能力较PC相比,逊色许多,且随着体验时间的增加,移动设备的发热程度会迅速上升,从而迫使其降低频率来进行计算,进而造成更大的画面卡顿和延迟,大大降低VR体验的舒适感。

除此之外,还有SonyMorpheusHTCVIVE等硬件设备,据悉也将于明年正式面世。

 

就目前的VR体验而言,其最亟需解决的问题就是用户体验时的眩晕等身体不适问题。造成身体不适的原因很多,分辨率、画面重影、画面延迟、深度感知不连续等等。人体全身上下有许多感知器官,每时每刻都在不断感知周围信息并将其传给大脑,大脑则不断对这些信息进行处理判断其是否正常和合理所以,如果出现了大脑无法识别的冲突信息,大脑就会感到困扰进而产生不适感以上所说的重影延迟深度感知不连续等,均会让大脑感到困扰,因为这些现象在人们习以为常的生活中,几乎是不可能出现的。因此,这种情况极大加速了人们大脑的疲劳,甚至出现眩晕恶心等情况,进而大大缩短了VR体验的时间。目前,沉浸式VR的体验时间一般为每次5-10分钟,连续体验不宜超过30分钟。

如何提供给用户更棒的VR体验,已经成了当今VR领域首要的解决问题。就目前而言,主流的硬件厂商都在以下几个方向进行不懈的努力。

1.    提高帧率、降低延迟度

一般来说,一款PC/移动游戏的帧率只需保持在30/秒以上,即可满足玩家流畅游戏的需求。但对于沉浸式VR体验来说,30/秒是远远不够的。在此,需要先来解释一下延迟度这个概念。

所谓延迟度,是指从头戴式设备的传感器将方位信息传入PC机开始,经过PC/移动设备的计算渲染,最后传回到显示屏进行显示的时间间隔,如图1所示。所以,用户眼睛真正看到的实际上是几十毫米之前的场景。

1:设备延迟度的形成原因。该图取自Nvidia的技术文档《Gameworks VR》。

 

如果延迟度过长,则用户实际看到的渲染场景是一顿一顿进行显示的,进而增加了VR体验的不适感,甚至让人感到眩晕。一般来说,延迟度需要小于20ms且越小越好,这样才能保证较好的VR体验。如果想要延迟度小于20ms,则必须要保证帧率至少达到75/秒,甚至90/秒以上。而这种性能要求,即便是对于目前的主流家用PC机来说,也算的上是苛刻了。

虽然Oculus提出了Async Timewarp技术来尽可能在低帧率的情况下保证延迟度,但该方法目前仅能适用于头部旋转Rotation Timewarp)和小范围慢速度的位置移动(Positional Timewarp)。对于快速移动和动态物体,该方法依然无效,如图2所示。因此,这里需要郑重说明的是,在提高VR体验时,没有任何一种方法比提高帧率更为有效。

2Async Timewarp方法比较适合与静态场景的显示,但对于动态物体,则会出现重影效果,进而造成一定的视觉不适。

 

2.    提升分辨率

目前的硬件需要在距离眼睛很近的位置观看,而屏幕贴近眼睛很容易产生纱窗效应,使眼睛能够看出屏幕中的格点进而产生不适。坦白说,分辨率问题需要依靠硬件方面的提升才能得以解决

 

 

VR与人体的关系与注意事项

实际上人体对于环境的敏锐度是超乎想像的,一个舒适的VR体验远比一个美观的VR体验更为重要,因为不舒服的体验会导致人体产生强烈的排斥反应,进而造成晕眩或是不适,在目前VR项目的开发原则就是不要让帧率低于75或停止更新

 

VR摄像头的结构有如一双眼睛有两个平行绑定的摄像头,且各自拥有独立的校准功能,眼睛往前看的情况下视角(FOV)范围水平角度122°,垂直角度120°,如果是在颈部自由运动的范围下,视角(FOV)能达到水平角度210°,垂直角度160°有趣的是如果以每度60x60像素来算,我们认为当屏幕硬件技术进化到12K x 10K时,VR体验将会非常趋近现实

 

VR体验最重要的环节还有声音,但许多开发者忽略了声音的重要性,试想把耳朵塞住看电影,整个体验将完全没有沉浸感,因为人的耳朵掌管许多事情,比如平衡感和声音传递,它们就像是两个心型麦克风,人脑通过声音传递到两只耳朵的强度和时间差计算出声音的方向,分析出这段声音是否需要被注意,进而决定你会选择转头往音源方向看去还是会选择忽略这段声音也因为人脑有这样的过滤机制,使得即使在很吵杂的环境里,如果有人叫你的名字,你也会特别容易感知到,这就是有名的鸡尾酒效应

 

值得一提的是,人的耳朵接受到高频音(3000Hz以上)时会下意识地往上看,而接受到低频音(750Hz以下)时会往下看,因此在制作VR项目时,这都是有利于引导使用者视线走向的好方法

 

我们常常提到自己感觉到了速度,,其实那指的是加速度,人体对于加速度是有感的因此无论是飞机起飞或汽车加速时,你就能感觉到速度快速增加,但人体对于速度本身是感觉不到的,当飞机飞行到稳定速度时,你能在机舱内安稳地用餐而不会觉得飞机正在快速移动,而你现在也无法感觉到地球正在定速转动

 

重力感是唯一我们无法欺骗身体的感觉,比如在某个VR项目中过山车翻转了180度,但实际上你的身体清楚地意识到其实你重力还是朝下,这时沉浸感就会降低,除非该项目真的配备了能转180度的座椅在体验时搭配使用

 

人体比想像中更容易感到疲倦,因此如果长时间佩带VR设备不管是眼睛还是手部都很容易产生疲劳感在项目中如果你过于频繁地引导玩家改变聚焦距离也很容易使人感到疲倦,因此我们建议最佳的距离是2M-5M而以目前的硬件设备的性能来看最佳的内容体验时间大约是5分钟-10分钟,时间过长人体就会产生疲劳感其他比如突然晃动镜头,突然停止画面或是帧率过低都会让人体产生不舒服的感觉

其实人类并非像我们所想的那样希望从VR体验中得到真实感,或者说对真实感的追求是有限度的,这是因为人的情感系统天生带有移情反应,会把所有虚拟现实世界里的物体和真实世界划上等号如果在虚拟现实世界里看到一只朝着你摇尾巴的小狗,你会主观地认定它对你没有伤害而降低警觉性而当你的项目是恐怖游戏时,这种移情反应将会是一个非常好的切入点给各位举一个有趣的例子,当你去商场买衣服的时候,你会发现假人永远都是没有头或是没有五官的几何图形,如果假人有张人脸反而会令客人产生恐惧感,这是1970年日本机器人专家森政弘根据Ernst Jentsch1906年发表恐怖谷心理学所提出的理论当人类看到与自己形体相当的假人时会产生正面情感,但是随着假人越接近真实的人类外表与行为时,人们则会突然产生剧烈的排斥与恐惧感,直到假人与正常人类外表与行为完全一致时才会消除这份恐惧感,这样的曲线呈现看起来像是一个山谷,因此称为恐怖谷理论

 

正因为移情反应,开发恐怖游戏更适合使用真实世界的纹理而非卡通纹理,沉浸在虚拟现实内的玩家看到锋利的刀会不由自主的想要避开,看到熊熊烈火会想要绕开,因为有这样的反应所以虚拟现实也非常适合用在军事训练上让士兵习惯在危险的环境中生活

 

 

VR的目前市场分析与硬件介绍


 

针对当前VR开发的问题,我们可以从几个切入点进行讨论

虽然VR硬件百家争鸣,但目前市场上大概有三种类型的VR硬件设备

1.必须接上电脑的沉浸头戴式设备(HMD),这种设备的代表就是Oculus Rift,其优点在于沉浸体验很好,但由于是有线设备,其有限的移动范围是个障碍因此特别合适于双脚不需移动的应用设备本身价格比较昂贵,因此大多都是应用于to B的领域,现在该设备上的应用大多都是短时间体验,因此非常适合展览或是商业活动展示,但这类活动体验的人数较多,因此如何保持设备的卫生将是个大问题

 

2.需要自带手机的VR(Mobile VR),现在人手一部手机,因此该类设备只要简单地将纸版折成的可容纳手机的盒子就能体验,代表性的设备有Google CardboardGear VR或是国内的暴风魔镜,虽然体验没有PC头戴设备好,但由于成本低廉易于携带,开发应用的流程也是手游开发者所熟悉的,因此今年有大量的开发者投入Mobile VR的开发行列,进而带动了整个VR市场的发展

 

3.整合AR技术的新型态体验,进入CR(Cinematic Reality)新领域,要知道市场上总是有往前冲的领头羊,谷歌所推出的Google Glass就是一个案例,虽然现已成为绝响,但也造就后面的Microsoft Hololens, Magic Leap等新型态眼镜的快速进化未来眼镜的轻量化,极强的电池续航力将是次世代VR设备的重点,但为了达到眼镜轻量化的效果,代价就是身上必须背着一个用来运算的硬件,如果运行效果能达到预期,我们将踏入次世代VR领域

 

除了上述大类之外,也有许多不同的VR装置,比如投影VR或是全息VR

 

如何从Unity来开发VR项目

Unity 5.1开始就把VR SDK集成到引擎内,开发者只要下载最新的Runtime Driver之后,在Unity Player设置内将Virtual Reality Supported打勾,并把硬件连接上电脑就能直接把项目转为VR项目,默认的摄像头会自动切换成为VR摄像头,通过这样的设置,VR的开发过程将与开发一般手游无异,只有在按下Play按钮时,Game View的视角才会切为VR双镜头画面

 

 

 

 

 

VR项目的优化基于硬件的差异会有不同的考量,但是与手游相比相对容易,在现今的中端手机装置上,我建议保持下列几点守则,以保证项目运行顺畅

 

1.绝对不能降帧

2.减少物体数量,减少物体曲面

3.多用静态物体,采用烘焙光照

4.Draw Call保持100左右

5.小于100k的三角面

6.可以采用高解析的纹理来弥补

7.使用物理引擎来避免CPU消耗过大

8.采用LOD,遮挡剔除,批次运算

 

Unity 5.1Profiling功能已经支持OculusGear VR的直接报告,这意味着只要装置连接或是在同网段下,开发者就能透过Profiler来监控VR项目的效能并进行有效优化

 

 

目前UnityVR开发技术挑战

传统VR渲染管线是使用两个相机按照视距摆放并对场景进行渲染。一般来说,渲染时需要在每个相机中依次遍历场景中需要渲染的物体,即整个场景被渲染了两次如图3所示这种做法最为直观简单但其本身存在较高的性能浪费——同样的场景,近乎一致的相机设置,却进行了两次视域体裁剪(Culling)操作,两遍的图形管线API以及双倍的Drawcall占用。因此我们在Unity 5.1针对VR的渲染管线进行了深度优化比如场景裁剪Culling仅做一次,场景中的动态阴影也仅渲染一次等等同时 Android多线程渲染功能和GPU蒙皮(OpenGL ES 3.0)技术的大力支持VR方面的渲染性能得到了较大幅度的提升

3:传统的VR渲染管线。

 

接下来的Unity开发计划还会加入更多VR设备相关的API比如眼球追踪API渲染管线也会继续优化,预计5.1之后的渲染管线会有几种走向

 

1. 渲染场景时,只遍历一次场景,每个物体只提交一次,但根据照相机的不同ViewportTransform渲染两遍,如图4所示该方法较易于实现且与传统的VR渲染管线相比该方法对于大量的图形管线API仅调用一次但缺点是渲染时仍需要消耗两倍的Drawcall

4:改进后的VR渲染管线。

 

2. 原理同方法1,不同的是通过Command Buffer(DX11)来提交和渲染场景中的物体所以其优点也方法1一致,缺点同样是两倍的Drawcall消耗,以及需要硬件设备支持Command Buffer功能。

3. 在遍历场景进行渲染时,通过硬件Instancing技术针对每个物体渲染两个instance,一个用于左眼相机,一个用于右眼相机。这样做的好处不仅保证了对图形管线API的一次调用,同时还可以大幅降低Drawcall占用即虽然显示于两个相机中但只需要一倍的Drawcall该方法的缺点是不支持Open GL ES 2.0的设备,同时与标准的Instancing技术也会产生冲突

 

Unity针对VR的未来计划

如前文所提到的,虽然VR硬件厂商如潮水般的涌入市场,但目前仍缺乏一个商业化思维,简单来说就是尚未找到一个能够赚钱的方法,相对于VR,反而AR领域目前还比较能够变现VR前景仍被看好,我们也相信随着更多人投身该行业,相应的商业模式也会迅速确立。

 

在一次与同行的讨论中,大家各抒己见地说出自己内心想做的项目类型,并描述了可能执行的做法,虽然无法涵盖全部领域,但在此提供给各位一个参考

 

成人产业

过山车

旅游导览系统

建筑模拟

飞航类

实时視頻串流VR

 

 

结语

这几年的科技产业变化突飞猛进,我们对于VR产业是相当乐观的,预测短短几年内我们就能在生活中体验到各种VRAR项目,以Unity的角度来看,保持技术领先,永远面向开发者,和所有的硬件公司和开发者保持良好互动,为开发者提供一个良好的开发环境来创建出未来优质的VR产品,是我们不会改变的目标

 

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引