游戏帧数暴涨&无需读图?谈谈PS5和RTX3000的黑科技

软件 Aimo 2020-09-26 12:33
1现今游戏的大问题:数据I/O瓶颈回顶部

  [PConline 杂谈]对于游戏玩家来说,最近可谓是重磅消息连连。新一代游戏主机无论是PS5还是Xbox SX,都公布了售价,即将在年底开售;而在PC领域老黄也祭出了新核弹RTX3000系列,性价比高得吓人。这些全新的游戏硬件,除了在性能和价格方面带来惊喜,它们所带来的全新技术,也会彻底改变未来游戏的体验。

Xbox SX和PS5均已亮相,今年注定是个游戏大
Xbox SX和PS5均已亮相,但你可知它们会如何改变游戏?

  关于新硬件带来的游戏技术,大家提及最多的可能就是光线追踪,它可以带来更加逼真的画面。不过对于游戏整体的体验,可能却是另一方面的技术,会产生更加翻天覆地的影响。而这方面技术,却被很多玩家所忽视。今天,就来谈谈新一代游戏硬件,在游戏数据传输I/O机制上的革新,会为游戏带来怎样惊人的变化吧。

现今游戏的大问题:数据I/O瓶颈

  如果你是一名有一定阅历的游戏玩家,应该都不难发现,多年来游戏始终存在一个尾大不掉的问题——需要读图。在以往,这可能不是什么大问题,但在近十年来越来越多游戏拥抱开放世界,地图做得越来越大,读图的时间愈发夸张。某些游戏即在SSD的环境下,读图时间仍然足够你去泡杯茶,体验相当抓狂。

就算换上了SSD,读图仍需要等待好一段时间
就算换上了SSD,读图仍需要等待好一段时间

  这其实就体现出了游戏在I/O方面的瓶颈。在传统的流程中,数据存储在硬盘上,玩游戏数据得先从硬盘读取到内存,然后经由CPU分配,再传输到显存中,最后由GPU来进行处理。可见,游戏数据是需要经由硬盘-内存-显存这个冗长的传输环节的,而且在这些环节当中还需要依赖CPU的调度,这并不高效。

游戏数据的传输流程
游戏数据的传输流程,先从硬盘经由CPU读取到内存,然后CPU再将数据载入显存,交给GPU渲染

  随着游戏的地图越来越大、画面越来越精细,游戏数据I/O方面的瓶颈愈发凸显。这主要制约了游戏在以下方面的表现。

  ·读图。首先影响的自然是前面提到过的读图。只要地图足够大,就算用上了SSD,仍会有明显的等待时间,这点就不多赘述了。

《血源诅咒》
像《血源诅咒》这样的游戏,复活、过关、换地图都需要经由冗长的读图

  作为一个古老的游戏机制,读图伴随玩家已久。但为何游戏必须要读图?甚至游戏为什么要做成不同的关卡?在游戏数据I/O瓶颈愈发突出的今天,越来越多人开始思考这个问题。

  ·场景制作。游戏数据的I/O效率不高,导致游戏制作者没办法一次性调用太多的数据,去制作理想中的庞大场景。

  游戏运行时,GPU所处理的数据来自于显存,显存乃至内存的容量和硬盘不可同日而语。游戏制作者必须在螺蛳壳里做道场,用几个G的数据,来构建当前画面所有的游戏场景;否则,数据就需要重新从硬盘读取,替换当前显存和内存的数据。

  如此一来,游戏场景要么牺牲精细度,要么缩减规模,不然就会频频读图——实际上很多游戏也的确需要频频读图。为了掩饰读图、避免游戏体验中断,游戏制作者采用了很多巧妙的方法,例如《神秘海域》中,当玩家爬山爬了一段后,背后会发生悬崖崩落之类的情节,紧张刺激的同时,随着崩落,旧的地图也被删掉了,显存中的数据得到了清空,开始读取下一个场景的数据,而读图过程则被CG动画播片等手段掩饰。

《神秘海域》系列游戏
《神秘海域》系列游戏会用崩塌、爆炸等方式,删掉旧地图,腾出显存容量

  但无论如何,这也只是权宜之策。受限于容量有限的显存、低下的I/O效率,游戏场景始终难以随心所欲地扩张。在画面越来越精细、高精度贴图纹理占据越来越多容量的现今,游戏场景制作受到游戏数据I/O瓶颈的掣肘,愈发明显。很多游戏都做了大量钻山洞之类的场景,就是不得已而为之——钻山洞不需要太多数据堆砌场景,还可以藉此时机加载下一个大场景的数据。想要像超人一样数秒内连续飞越几个城市?对不起,现在的游戏做不到。

  ·帧数上限。近几年,市面上出现了很多高刷新率显示器,佼佼者甚至把刷新率堆到了240Hz。然而大家不难发现,就算降低游戏画质,很多游戏的帧数也依然没法达到这个水平,而此时的GPU占用率其实并不高,这其实也是游戏数据I/O瓶颈导致的。

CPU频率已经提到最高,GPU却远没有满载
CPU频率已最大,GPU却远没有满载,帧数还是没法跑到240以上,一部分原因是CPU成了I/O调度瓶颈

  前面提到,游戏数据从硬盘传输到内存最后到显存,这些过程当中,需要CPU参与调度。在高频调度数据时,CPU成为了瓶颈,游戏帧数无法进一步提高。

  次时代的游戏硬件,往往肩负着引领游戏改革的使命,这次PS5和RTX3000“安培”GPU,正是如此。

2PS5:独有的架构打破I/O瓶颈回顶部

PS5:独有的架构打破I/O瓶颈

  先来说说PS5。无论是Xbox SX还是PS5,都是用了SSD作为存储介质。但是,双方又有所不同,PS5的架构更多地为打破游戏I/O的瓶颈而设计。

  根据当前信息,PS5的SSD传输速率达到了5.5 GB/s,但这不是关键。关键在于,PS5的游戏数据读取,和传统流程是不同的。在PS5的架构中,在一定程度上,GPU可以直接向SSD索取所需要的游戏数据,这减少了数据中转的环节,效率大为提升。

PS5的SSD
PS5的SSD速度非常快,但真正的革新在于架构

  PS5是如何做到这一点的呢?这需要从当前游戏的数据存储架构说起。

  当前游戏的数据,是以打包的形式存放在硬盘中的。一张张贴图、各种纹理的文件,往往会集中打包,当游戏需要相应数据时,才会解包输送到显存当中,随后再交给GPU渲染。

某PC游戏中的纹理文件
某PC游戏中的纹理文件,其实是一个纹理包,要输送到显存解压

  如此一来,显存就不得不存放大量未必用得到的贴图纹理数据,每次切换新场景都必须历经一次读包-解包的过程,这在游玩过程中,就体现为读图。

  为什么游戏数据要打包放置?在传统HDD硬盘中,将零散文件统一打包,有助于减少磁头寻道,HDD硬盘的性能瓶颈就在于此。将游戏数据打包为大文件,可以让HDD持续传输数据,提升性能。

PS4等机器仍使用HDD
PS4等机器仍使用HDD,如果纹理不打包分散存储,那么HDD冗长的寻道时间,会占据更多读图时长

  现在已经进入了SSD时代,SSD没有寻道这一概念,对零散文件的读取速度是HDD的百倍不止,更合理的机制是GPU需要什么贴图纹理,就直接读取什么贴图纹理。但由于当前的游戏主机PS4、Xbox One依然采用HDD,游戏也只能随主流适配HDD,因此游戏的做法还是将数据打包在一起,这令SSD需要读取额外的大量数据,并没有发挥出应有特长。大家从HDD换用SSD,感觉到的变化也就是读图更快了,但读图始终是一道迈不过去的槛。

  在PS5中,情况终于得以改变。根据目前透露的消息,针对PS5开发的游戏,其贴图等数据不再集中打包,而是分布放置(或是打成更小的包),游戏可以仅仅读取所需数据到显存,效率大为提升。

PS5的存储架构
PS5的存储架构,GPU能更直接读取到SSD的数据,SSD的主控也提供了解压纹理包的功能

  PS5的独到设计,有两个好处。

  ·消灭读图的过程。游戏数据不再需要统一打包、读取,可以按需实时读取,更加灵活,没有了统一载入也就是读图的过程;

  ·解除场景规模限制。前面提到,游戏场景规模受限,是由于显存难以承载大场景所需的海量数据。在PS5的新存储架构中,场景所需要的数据分散存储在SSD中,实际需要的时候才会实时读取,这些数据再无必要一次性载入显存,大大减轻了显存负担,也令更大场景的制作成为了可能。

在PS5中,SSD的作用在某种意义上,更像是显存
在PS5中,SSD的作用在某种意义上,更像是显存

  理论上如此,实际也是如此。索尼早前演示了运行中PS5中的《蜘蛛侠》新作,演示中蜘蛛侠在地图上自由飞荡过一座座高楼,尽管地图非常广阔,但PS5基本不需要读图。

PS5
PS5中运行《蜘蛛侠》Demo,高速在大地图移动无需读图

PS4
PS4Pro运行同样的Demo,可以看到频频出现读图等待

  索尼自己的演示信不过?再来看看第三方的演示。Epic之前放出了新一代引擎虚幻5的演示,这段Demo全程运行在PS5实机上,从中可以看到场景非常辽阔,而且人物可以在场景中高速移动,一气呵成,毫无读图痕迹,非常爽快。


虚幻5引擎的官方演示,运行于PS5实机上,可以直接跳转到7:50,体会一下无缝大地图的高速移动

3RTX3000“安培”GPU:革命性的RTX IO回顶部

RTX3000“安培”GPU:开创性的RTX IO

  改善游戏数据读取流程这一思路,不仅索尼有想到,老黄也意识到了。在最近发布的RTX3000系列“安培”GPU中,带来了DirectX Storage的特性,它有望打破PC游戏的I/O瓶颈。

  DirectX Storage其实是微软推出新DirectX API,而NV在安培GPU中,对其进行了支持,推出了RTX IO技术。简单来说,RTX IO可以让PC游戏的数据传输绕过CPU,直接传输到显存供GPU使用,这其实和PS5的设计是有相似之处的。

DirectX Storage针对SSD进行优化
DirectX Storage针对SSD进行优化,无论是PC还是新一代的Xbox,都会使用这个API

  毫无疑问,RTX IO可以大大增加PC游戏数据传输的效率,根据NV给出的数据,通过RTX IO,GPU解压游戏数据的性能甚至超过了PCIe Gen4下SSD的传输速度。这一方面可以大大减少读图时间,另一方面可以突破CPU瓶颈,让PC游戏的帧数更加“电竞级”。

  前面提到过,很多PC电竞游戏,帧数上不去,其实不是GPU的问题。通过软件观察到,GPU的占用率其实根本不高,但CPU却已经是满频率运行,帧数的瓶颈在于CPU。CPU调度的数据“喂不饱”GPU?现在RTX IO可以让游戏数据I/O绕开CPU,从根本上解决这问题。如此一来,游戏帧数就有了更高的上限,在高刷新率屏幕逐渐普及的今天,无论对于职业电竞选手还是普通玩家,这项技术都意义重大。

RTX IO
当前PC游戏帧数的一个瓶颈,在于I/O系统,游戏数据传输都需要经过CPU,CPU已经不堪重负

RTX IO示意图,数据可以直接从SSD传输到显存
RTX IO示意图,数据可以直接从SSD传输到显存

  另外,RTX IO也可以带来解除场景规模限制的好处,这和上面PS5文段中所叙述的是类似的,这里就不多作赘述了。

总结

  很多老玩家都感概,近年来游戏画面,已经没有什么质的提升了。现在的大部分游戏的画面对比的《孤岛危机》,有质变的提升么?《孤岛危机》诞生于2007年,用《孤岛危机》对比它五年前也就是2002年的游戏,再用现在的游戏对比距离现在十多年前《孤岛危机》,不能难发现最近十几年游戏画质提升之小,是远慢于之前的。

大部分游戏画面对比2007年的
大部分游戏画面对比2007年的《孤岛危机》,并没有质的提升,光线追踪的普及才能改变这一切

  之所以如此,是因为游戏的图形技术,久久未有根本性的革新。PS4、Xbox One这代游戏主机,将光栅化等图形技术发挥到了一个新高度,然而游戏的渲染流程没有质变。PS3/Xbox360时代开始出现的法线贴图、环境光遮蔽、动态光照、体积光等,当今依然是提升游戏画质的法宝。同样,游戏的渲染流程,也依然停留在从硬盘读取数据包、传输到内存显存解压,再交由GPU渲染的传统。从这个角度来看,其实PS4、Xbox One是设计相当保守、缺乏开创性的一代游戏主机。

  在这个世代,转机终于来了。支持光线追踪的GPU实装在了PS5、Xbox SX等下一代游戏主机以及PC显卡中,SSD也成为了游戏硬件的标配。游戏全方位发生质变,终于有了前提条件。

  光线追踪大大提升了游戏画面的上限,而游戏数据I/O的变革,则可以让游戏流程天翻地覆。相信随着新一代游戏硬件的普及,越来越多的玩家会感叹“原来游戏还可以这么做”,共同期待吧。

打开太平洋知科技,阅读体验更佳
制作海报 分享到微信 分享到微博

网友评论

写评论

聚超值推荐

相关推荐