• 走进VR游戏开发的世界


    http://geek.csdn.net/news/detail/76504

    我们组在2014年下半年尝试开发了一款Xbox One平台的体感游戏,2015年上半年进行收尾工作的同时,结合之前积累的体感交互经验,开始进行VR游戏的预研工作。在这近一年的时间里,一方面从外界感受到了一股虚拟现实快速发展的潮流,另一方面也体会到身边很多人对VR游戏的了解非常有限。现在,我们自己的VR游戏Demo《Comet》(如图1所示,观看地址:http://v.qq.com/boke/page/i/0/s/i0195r6fc0s.html)已经完结,从技术上验证了在当前的硬件条件下,开发高画质游戏的可行性。当然,优质的VR游戏需要大家共同的努力,我们也希望更多的人参与进来。在此,把我们在开发过程中学习到、体会到以及所期望的进行总结,希望对大家有所帮助。

    图片描述
    图1 《Comet》截图

    VR硬件原理及现状

    狭义上的“VR硬件”,特指具有沉浸感的头戴显示器,它有三个基本特征:

    • 全3D的立体显示:附合人眼观看现实物体的习惯,能够“以假乱真”;
    • 完全虚拟的画面:需要屏蔽外界光线的干扰,用户所看到的都不是现实的东西。有些人可能觉得“增强现实(AR)”更高大上一些,但是对于游戏,我认为还是更倾向于VR。玄幻、魔幻、科幻,一切皆为虚幻;
    • 不受限制的视角方向:视角方向跟随头部转动和移动,不同于之前的头戴式显示器,视野非常广。当然,仅仅是这样的体验,并不能说是完美的“虚拟现实”,这也是很多人说硬件不成熟的理由。但是,在保证体验良好的的情况,目前的硬件已经满足做出高品质游戏的条件。

    下面对当前的硬件做一些技术分析:

    VR显示的基本原理

    首先,我们来分析一下满足上面提到的三个基本条件的最廉价产品——Google的Cardboard(如图2所示):

    图片描述

    图2 Google Cardboard

    • 插入手机作为显示屏幕,通过分屏的方式处理双眼的画面,达成立体画面显示;
    • 借助纸壳屏蔽外界光线干扰,通过透镜就可以观看到手机渲染的虚拟画面;
    • 依赖手机内置的陀螺仪,可以模拟出头部转向时视角的变化。另外,凸透镜在一定程度上增加了FOV(Field Of View,视场角)。

    Cardboad以低廉的价格让很多人提前感受到了VR的魅力,并衍生出了很多塑料壳的版本。不过从体验上来说,Cardboard并不能算是一个合格的VR硬件,很多人在试玩过后,就自然而然地以为“VR就是那么回事儿”、“目前硬件还差得远”、“也就新鲜几分钟”等等,从一定程度上误导了很多人对VR的认知。

    那么,Cardboard存在哪些问题呢?

    • 严重的画面延迟:手机陀螺仪模拟的转向精度和响应速度都不满足VR的要求,造成渲染的画面跟不上转头的速度,加重了晕动症;
    • 糟糕的画面表现:手机性能不足以支撑高画质高帧率的3D画面渲染,只能呈现出一些简单的卡通风格画面,达不到“以假乱真”的程度,影响了沉浸感;
    • 缺乏自然的交互:由于手机的限制,目前没有配套的头部和手部定位方案,从交互上很难做到让人满意的程度,只能依赖蓝牙手柄这样的传统输入设备。

    当然,还有一些其它的小问题,比如手机发热、起雾、过重、画面变形等。这些虽然不是影响体验的主要因素,但在使用上也是挺烦人的。接下来,我们看看Oculus针对这些问题是怎么解决的,或许也能解释两者之间的价格差异为什么这么大。

    不受限制的视野

    如果需要达到逼真的视觉体验,视野必须尽量接近真实。这需要满足两个条件:一是接近人眼的FOV,二是跟随头部运动的视角。

    图3很直观地说明了人眼的FOV特点:双眼的覆盖范围是不同的,两只眼睛加起来可以超过180°。

    图片描述
    图3 人眼FOV视角

    当然,在平面的液晶屏上很难做到这种效果。所以目前主流的VR硬件(不包括Cardboard)大多是用凸透镜做到了100°-110°左右的FOV,虽然没有达到自然视野的程度,但相对于传统FPS游戏(FOV为50°-60°)来说,是个巨大的进步,直接影响到UI设计、交互、性能、场景设计、镜头等方面。为了解决近距离通过透镜观看画面的变形问题,我们需要对画面进行反向的变形校正(如图4所示)。

    图片描述
    图4 对画面进行反向变形校正

    图5、图6所示就是正常双视口渲染的画面,经过Barrel Distortion变形后的效果(在很多Cardboard游戏上,这一步是省略掉了的)。

    图片描述
    图5 正常双视口渲染画面

    图片描述
    图6 Barrel Distortion变形后效果

    但是,FOV越大,光线的折射率也就越大,光线的散射现象也就越明显,给人的感觉就是画面边缘的像素出现了重影(如图7所示)。

    图片描述
    图7 FOV越大,光线的折射率也就越大

    所以,变形后还需要对色散问题进行校正,即Chromatic Aberration。从图8中我们可以看出边缘像素的RGB三基色位置是错开的,这样通过透镜观看时才不会出现色彩分离的奇怪现象。

    图片描述
    图8 边缘像素的RGB三基色位置错开

    空间定位能力

    头部的运动追踪,Oculus增加了一个外置的红外摄像头(如图9所示)用于头显的空间定位,它同时也可以用于双手控制器(Oculus Touch,如图10所示)的定位。

    图片描述
    图9 Oculus外置红外摄像头

    图片描述
    图10 Oculus Touch控制器

    当然,这种定位方式也存在FOV的问题,只适合桌前的小范围运动。对于大范围的移动,HTC Vive的Lighthouse技术更有优势,可以在5x5m的范围内自由移动(如图11所示)。

    图片描述
    图11 HTC Vive的Lighthouse技术支持5x5m内自由移动

    空间定位技术的引入,直接改变了游戏的操作方式,从“指令式”操作逐渐变成类似“体感”操作的自然交互体验,UI也就不再拘泥于2D,开始向3D UI转变。

    主流VR硬件参数

    表1 2016年主流VR硬件的参数 
    图片描述

    表1可以大体上说明2016年主流VR硬件的参数(DK2和Gear VR是很多人都体验过的,作为对比也加进来)。

    从表格中提供的数据,结合一些现场体验可以分析出一些关键信息:

    • 三家VR设备的FPS和FOV差异并不大,这方面在体验上差距很小。PS VR的120FPS是60帧插值出来的,并不是实际的渲染帧数;
    • 三家VR的控制器都趋于一致:双持手柄,有空间定位能力,可以模拟双手操作。这就为我们进行VR游戏的交互设计提供了很好的指引,引擎层面可以进行统一抽象,不用再为每个设备单独设计;
    • 分辨率相对于DK2都有改善,但受限于OLED屏幕技术和硬件性能限制,还达不到视网膜屏的程度,像素点肉眼仍然可见,但已经不会影响游戏画面的观看;
    • PS VR由于受限于PS4的机能限制,无法在分辨率上占有优势,但是可以通过像素排列和镜片技术减少纱门效应(Screen Door Effect),即像素间空隙(Oculus DK2上非常明显);
    • 每家的硬件都会依赖一个内容发行平台,与主机游戏的运作思路很像,这也决定了VR游戏的设计思路。

    另外值得关注的是Gear VR,算是最早商业化的平台硬件,提供了比Cardboard更好的体验,但同样受到机能的限制。预测手机VR方案几年后会推动VR设备的普及,毕竟手机是人人都有,买个配件的成本还是可以被很多人接受的。

    Motion-To-Photon延迟

    有一个参数是表中没有的,那就是延迟。我们先来给出定义:从用户开始运动到看见屏幕上产生相应变化所需的时间。

    从图12可以看到,从传感器采集,经过线缆传输,

    图片描述
    图12 从输入设备到成像

    游戏引擎处理,驱动硬件渲染画面,液晶像素颜色切换,到人眼看到对应的画面,中间经过的每一个步骤都会产生延迟。要想达到理想的状况,需要硬件和软件优化的紧密配合。目前公认的可以被多数人接受的VR延迟是20ms,很多VR硬件只是传感器和液晶屏的时间就已经超出范围了。

    对于VR硬件来说,低延迟才是核心竞争力。但目前延迟缺少一个测试和评估标准,所以很难通过公开的数据评估每个设备的体验效果。如果以20ms为一个临界值,可以说其他品牌的VR设备大部分都不合格。

    VR体验目前的主要问题

    VR游戏在当前的硬件条件下,仍然存在一些问题。我们作为开发者,必须搞清楚每个问题产生的原因,能够解决的解决,不能解决的回避,在此基础上才能做出良好的体验。

    晕动症

    “晕”可能是第一次体验VR的多数人最直接的感受,就像晕车晕船般的感觉。很多人可能只是因为这个原因就会放弃对VR游戏的期待,掉入“VR 
    目前还不成熟”的圈子里。那为什么VR游戏这么容易晕?

    1. 你没动,画面动了:VR游戏体验者通常身体是静止不动的,如果游戏中看到的是各种加速/旋转/震动等,正常人都会受不了,跟晕车晕船的原理是一样的;
    2. 你动了,画面没跟上:这就是上文提到的延迟,很多时候,硬件符合要求了,但游戏却帧数不够,同样也会造成严重的延迟现象;
    3. 体质原因:比如有人患有恐高症,放到一个悬崖边的虚拟场景里,也会触发心理和身体的反应。

      • 原因1可以从游戏设计上进行回避,但是目前来说很多需要跑步和跳跃的游戏受限比较大;
      • 原因2的话,主流硬件在延迟上都是满足要求的,作为开发者更多的是需要做好性能优化;
      • 原因3,从我们组的几个人感受来看,随着体验次数的增加,症状会越来越轻,这表明人的身体是可以适应的。而且,适当地增加一些让身体有所反应的游戏场景,也不失为一种乐趣。

    缺乏好的交互方式

    VR头戴显示器可以看作是一个显示输出设备,而对于游戏来说,还有另外一种重要的硬件——输入设备。在VR游戏中,鼠标键盘的操作方式首先 
    就可以放弃了,因为看不到,只能盲操作。游戏手柄的话算是一种折中方式,但并不能发挥出VR的潜力。理想的输入设备其实是双手,这也是最自然的方式。

    遗憾的是,不管是Kinect或Leap Motion,都无法完美地支持双手交互的精度。所以,目前主流的VR控制器还是以双持手柄为主,预计要到2016下半年才开始上市。在拿到Oculus Touch之前,我们尝试了基于Kinect体感的VR交互方式,虽然并不完美,但已经能够看出未来的交互设计雏形了(如图13所示)。

    图片描述
    图13 基于Kinect体感的VR交互方式尝试,图片来自我们的VR Demo《3D HUD》

    GPU性能不足

    Barrel Distortion变形后带来一个问题:中心区域像素分辨率的损失,也就是说中心区域的像素被放大,而边缘区域的像素被压缩了。但是人眼对于视野中心的像素清晰度非常敏感,为了保证清晰度,需要把原始渲染分辨率提高,以保证变形后的画面能够达到液晶屏的像素密度,如图14所示。

    以Oculus Rift为例,屏幕分辨率为2160x1200,渲染分辨率需要长宽各提高到140%,即3024x1680,再加上90FPS的帧率要求,每秒需要渲染的像素 
    达到了4.5亿个(如图15所示),相当于当代主机(Xbox One、PS4)游戏的7倍,与4k分辨率游戏所需要的硬件差不多。为了保证体验,他们规定了一个最低配置,叫作Oculus Ready的标准——CPU i5 4590、内存8G、显卡GTX970。

    图片描述
    图14 提高原始渲染分辨率

    图片描述
    图15 Oculus Rift每秒需渲染的像素达到了4.5亿个

    虽然PS4的渲染性能远远达不到GTX970的程度,但是相对于PC来说,它可以提供一致的体验,这对VR来说非常重要。毕竟就算你的游戏画面再好,如果一玩就晕得想吐,那也不会是一个好游戏。不过好在离VR普及还有一段时间,足够让Oculus Ready的PC成为大众配置了。

    佩戴舒适度

    很多近视玩家会担心不能使用,其实主流的显示设备都可以戴眼镜观看。至于戴着舒不舒服,那就需要在工业设计上进行迭代优化。就目前 
    来看,Sony家的头显最舒服,Oculus家的手柄最舒服,HTC家的功能最强。除了平台独占的VR游戏,多数会同时兼容三家的设备,所以从体验上来说,差别不会太大。

    VR游戏与传统3D游戏的开发差异

    VR游戏在开发制作上的差异,远远没有很多人想象的那么大,更多的是设计上的思路转变。所以,想要开发VR游戏,前提是能够开发一个3D游戏,核心还是游戏本身,VR只是体验上的增强。如果要写一个“VR游戏开发教程”,那么其中90%的东西,与VR并没有直接关系。但是,这10%的差异,却是VR的核心竞争力,因为它可以带给你“前所未有”的体验,为我们进行游戏玩法创新提供了非常大的发挥空间。

    玩法

    与主机游戏类似,注重核心体验,即Camera、Control、Character。可能很多人会觉得VR游戏只适合做FPS,其实并不是这样。只要保证沉浸感良好,什么类型的都可以做,RTS、MOBA、AVG、 
    MMOG等等都可以。需要关注的核心点是Camera和Control,这直接关系到玩起来晕不晕,能够玩多长时间。只有保证操作体验和沉浸感过关,游戏的玩法才有意义。

    当然,VR也给我们提供了一些新的特性,可以用于玩法设计中:

    • 由于头部运动追踪的存在,点头和摇头的操作是可以被识别的,这就意味着很多Yes/No的操作可以直接通过头显输入;
    • 头部的朝向可以灵活变化,当你“盯”着某个物体看时,可以针对这个行为做出相应指令,具体可以参考Gear VR上的Land’s End;
    • 由于360°视角方向不受限制,我们可以在背后做一些场景改变,让每次转头看到的场景都不一样,既能做成惊喜,也能做成惊吓;
    • 头部不仅仅能转动,还可配合身体小范围移动,比如“Summer Lesson”中凑近NPC,NPC会害羞,Vive的一个上帝视角Demo可以蹲下看到地底下打地道的小兵等;
    • VR渲染可以调整World Scale,即世界单位缩放,相当于动态调整自身相对于场景的比例,既可以做成巨人的视角,也能做成蚁人的视角;
    • 因为VR世界中的单位可以与现实不一样,那么一些类似“缩地术”的功能也变成现实,通过身体小范围的移动,达到虚拟世界中的大范围移动效果;
    • 双手控制器的存在可以模拟一些抓、扔、摸、打等操作,捡起一个道具上下左右仔细看也是很有意思的一件事,可以把迷题设计在道具的隐藏角落里;
    • VR中有了双手的存在,很多解迷机关就不再是简单的按一个键,各种零件组合、机械、绘画等对于双手控制器来说都是很棒的操作体验;
    • 控制器的握持感,非常接近于游戏中的手持武器,比如枪械、刀剑,这比握着一个鼠标或手柄的感觉强多了。得益于高精度的传感器,做出具有竞技性的操作玩法也不是不可能;
    • 双手具有天然的空间感,一些建造类的玩法也非常适合,比如Minecraft、Besiege等,UE4甚至尝试了在VR中进行场景编辑;
    • 由于3D音效的加强(下面会提到),“听音辨位”就可以做得更真实,各种潜入类玩法非常适合;
    • 另外,由于沉浸感的增强,恐怖游戏和XX游戏带给人的感官刺激会放大,这就不用展开了,试过就知道。

    图形

    如果以Oculus Ready的硬件标准,基本上可以预期的画面表现力差不多相当于上代主机的画面,即Xbox 360和PS3后期的水平。我们试做的VR游戏Demo,在项目启动时的规格比较高,GTX970+Oculus DK2的硬件下,经过优化可以流畅运行(如图16所示)。

    下面是最终版的技术选型,给大家做参考:

    • Physically Based Material:物理光照材质算是主流技术了,但是相应的性能开销也会大一些;
    • Sphere Reflection Capture:反射效果和各种高光材质就靠Cubemap了;
    • Baked Static Lighting + Baked AmbientOcclusion:即能用静态光照就用静态的;
    • Global Dynamic Shadow Maps:仅仅是主角和大件遮挡物;
    • Instanced Static Mesh:对于性能的提升非常明显,大量的优化是基于Instanced技术;
    • Bloom+Color Grading:多数的后期镜头效果在VR中并不适用,因为是通过双眼直接观看,并不像传统游戏那样通过“摄像机镜头”观看。而且,为了性能,能关的都关了;
    • FXAA:理论上来说TemporalAA更适合消除远处的Specular Aliasing,但是会导致近处HUD的文字和纹路受到影响,解决之前先用FXAA代替。

    当然,如果具有足够的优化功力和场景设计技巧,也不排除GTX970+Oculus Rift流畅运行的可能,但这并不适合多数的团队。

    图片描述
    图16 在VR Demo《Comet》中的尝试

    美术制作方面,有些资料会说Normal Mapping和Billboard Particle不再适合VR渲染,其实并不是这样的。这些效果只是在近距离观看时才会发现很假,远处随便用,不用担心在制作上与传统3D游戏的差异。近距离的话,只能使用Parallax Mapping和Mesh Particle之类保证不穿帮,但是极少数情况需要这样,跟场景和特效设计有关系。 
    总体上来说,美术的制作与传统3D游戏差异并不大,除了UI,参考图17。

    图片描述
    图17 Epic Games的Showdown Demo

    交互

    由于目前主流的VR操作设备已经趋于统一(参见图18),大家都有这么几个特征:

    图片描述
    图18 四大主流VR操作设备体验

    • 可以模拟双手的空间位置和旋转;
    • 通过手柄上的按钮触发指令型操作,如抓住、发射等;
    • 仍然保留传统的“摇杆”,但比较少用到。

    从Oculus的Toybox Demo演示视频可以更为直观地了解VR下的人机交互是什么样子的(如图19所示)。可以预见,基于双手的物理交互会越来越多,也就意味着物理模拟在VR游戏中的应用会更普遍一些。

    图片描述
    图19 Oculus Toybox Demo

    同样地,UI的设计已经不再推荐2D平面化,更加倾向于3D的效果,如科幻风格的全息投影,或者使用实体模型。或许,以后VR游戏中的“UI”会改由3D美术来制作。

    音效

    传统的3D游戏音效一般是通过音量变化判断距离远近,并通过频率变化判断相对移动。以空间定位为例:

    • 左右:通过左右声道的音量差异区分;
    • 前后:通过多声道的卫星音箱或多声道耳机区分(不适大多数人);
    • 距离:通过音量的衰减判断;
    • 高低:貌似没什么好办法…

    图片描述
    图20 立体声耳机可随头部转动

    图片描述
    图21 通过两个声道配合转头判定上下左右前后

    在VR中立体声耳机是可以随着头部转动的,这就意味着,我们可以通过两个声道配合转头来判定上下左右前后(如图20、图21所示,图片来 
    自OculusConnect_Introduction_to_Audio_in_VR.pdf)。

    同样,头部除了转动之外,还可以小范围移动,不用通过走动就能判定声音的远近。以前相当于背景音的环境音效,现在也能分辨出大概的方位,如图22所示。

    图片描述
    图22 分辨大概方位

    因此,在VR游戏中,3D音效会被越来越多的人重视起来,甚至发展出新的玩法,比如Pastoral这个游戏。有兴趣的同学建议读一下这篇文章——《VR中的声音听起来体验如何?和传统音频有什么区别?》,地址:https://www.zhihu.com/question/40294035。想听一下效果的,可以观看:Spatialized audio demos in VR,地址:https://www.youtube.com/watch?v=dV3Qog44z6E(需科学上网)。

    VR游戏后续发展期望

    主机平台现在有一类游戏,以高画质剧情体验为主,操作非常简单,俗称“游戏电影化”。目前VR圈也有很大一部分人在尝试VR电影的制作,但是基于360°视频的拍摄手法在VR的沉浸感并不是很好,而且传统的电影拍摄手法也不适合VR视频制作。所以,电脑制作的3D动画类电影在VR化方面具有先天优势,再结合VR头显的一些输入特性,甚至会产生“电影游戏化”的产品。另一方面,以UE4为代表的游戏引擎,实时渲染的画面效果已经达到了CG级别,在技术上具备了制作实时渲染电影的能力。可以预见到,未来的VR互动电影与VR游戏,它们之间的边界会变得十分模糊。

    另外,推荐观看国外的VR主题公园THE VOID视频,地址:http://v.qq.com/page/q/e/a/q0194f24rea.html,相信不久的将来,这种体验可以像电影院一样普及。

    随着技术的进步和成本的下降,VR和AR会跟智能手机一样进入我们生活的方方面面。对于VR游戏来说,很多人也跟我有一样的梦想,希望在有生之年,可以把它变成现实。

  • 相关阅读:
    yii中设置提示成功信息,错误提示信息,警告信息
    关于京东评价数目,淘宝评价数目延迟加载
    关于yii的relations
    关于yii验证和yii错误处理
    jquery资源网站
    Facybox弹出层效果
    YII适合做后台的一个扩展
    Yii: 参数检查和错误的集中处理技巧
    Asp.net 备份、还原Ms SQLServer及压缩Access数据库
    天诺网
  • 原文地址:https://www.cnblogs.com/nafio/p/9137341.html
Copyright © 2020-2023  润新知