游戏跑分新视角:细看一秒内的帧数变化
  • Scott Wasson
  • 2011年09月21日 21:20
  • 0
为什么FPS是失败的?

毋庸置疑,几乎所有的游戏硬件测试都采用同一种评估方法,那就是大家公认的FPS(Frames per Second,每秒帧数)。毫无疑问的是,FPS是一个出色的即时性能汇总,表达准确而且简单易懂。不只是游戏,FPS的概念还常见于我们所熟知电影及电视,比如电影/电视分别以每秒24/30张画面的速度播放,也就是一秒钟内在屏幕上连续投射出24/30张静止画面,所以播放速率就是24/30FPS,游戏画面也与之同理。(通常每秒播放24张画面以上,根据“视觉惰性”,即视觉暂留现象,人眼就认为是连续的。)

当然,关于利用FPS进行测试的争论一直存在,尤其是我们常见的平均FPS更是受到很多质疑,因为其衡量的太广泛了。事实上我们也从这些讨论中汲取了一些有用的东西并付诸实施,比如在游戏测试的时候同时获取平均FPS和最低FPS,甚至可能的时候还提供了单位时间内的FPS变化图表。相比干巴巴的平均FPS,我相信这些信息更能够帮助读者更好的理解游戏性能表现。

即便如此,这种方法仍旧有一些明显的缺点。因为经历多次的测试之后,我们发现有些时候这些结果和我们的直觉体验并不完全一致。最根本的问题在于,无论对于电脑时间还是人类视觉感知来说,一秒都太长了。一秒内的平均结果可能会掩盖一些系统性能突发变化,而这对于游戏体验来说非常重要。

为了说明,我们先来看两个例子。虽然经过加工,但这些结果却是基于我们多年来的游戏测试真实数据。下面的图表纵轴以毫秒(ms)为单位表示所需要的时间,而横轴则表示一秒内两款不同显卡所提供的一系列帧数。

游戏跑分新视角:细看一秒内的帧数变化

游戏跑分新视角:细看一秒内的帧数变化

显而易见,GPU1在大多数情况下跑得更快,每帧所用的时间较短(绝大多数都在25ms以下),而CPU2要慢一些,因为每帧时间一直稳定在30ms左右。

但是,我们可以看到GPU1在运行这个游戏的时候有一个明显的问题(假定说是由于驱动里糟糕的显存管理引起的纹理载入毛病造成的,也可能是硬件方面的原因),那就是其中一帧所耗费的时间出奇的长,几乎达到了将近500ms,像是被卡在那儿了。如果你是这个游戏的玩家而碰巧遇到这个问题,一瞬间肯定会卡的要死。而如果这个问题经常出现,游戏也就基本不能玩了。

而这方面GPU2就要好了不少,虽然平均FPS可能要比GPU1少,每帧耗费的时间都差不多,并且能够提供一个持续稳定的游戏画面输出。那两款显卡的平均FPS到底是多少呢?

游戏跑分新视角:细看一秒内的帧数变化

可以看到,在我们统计的时间内,两款GPU的平均FPS几乎相同。如果就此而言,那么两款显卡的性能表现本质上没有区别。而正是我们使用了平均FPS,才使得GPU1中的一个致命缺陷被掩盖了起来。

以上只是一小段时间内的反映,如果说GPU1在整个测试中的其它场景也时不时遇到类似的延迟,但耗费时间可能没有这么大,那整体帧数可能会达到50FPS的样子,最低帧数也有35FPS。而根据我们传统的思维,这是一个看起来相当不错的成绩,但是实际游戏体验的糟糕程度就可想而知了。

回归到主题,FPS对于性能评估的意义虽然重大,但短板也是明显的。而解决以上问题最简单有效的方法就是将单位时间放大细化,就像我们刚才做的那样,把每帧所耗费的时间独立呈现。事实上这么做并没有什么难度,想必那些游戏开发商们已经研习多年。

所以,对于我们自己来说,也是时候转化一下认知理念了。下面表格里的数据可能会有一些帮助,详细列举了部分以毫秒为单位的帧时间(越低越好)所对应的FPS速率,这里的条件是假定完整的统计时间为1秒。这个表已经包含了许多阈值,比如其中16.7ms相当于稳定的60FPS。打个比方来说,目前大多数LCD的的刷新率就是每秒60次(60Hz),所以每次刷新的时间高于16.7ms的阈值就不能提供稳定的画面输出。

Frame time in milliseconds

FPS rate

8.3

120

10

100

16.7

60

20

50

25

40

33

30

42

24

50

20

60

17

70

14

经过以上几点介绍,下面我们就来看一下实际游戏测试中的一些数据,看看我们能够从中获得什么。


文章纠错

  • 好文点赞
  • 水文反对
观点发布 网站评论、账号管理说明
热门评论
查看全部0条评论
相关报道

最热文章排行查看排行详情

邮件订阅

评论0 | 点赞0| 分享0 | 收藏0