仔细查看帧时间:为什么FPS会误导

2020-06-27 00:25:44

在关于显卡、3D芯片和游戏的评论中,你通常会读到很多关于帧时间的内容。但大多数人仍然可以想象出帧时间的数量,但帧时间到底是什么意思?这些数字是什么意思,这些数字是什么意思,百分位数是多少,你是如何解读这些数据的?

人脑很快就会将连续的图像解读为运动,快速连续显示图像会让我们的大脑产生动画般的错觉,而实际上你看到的仍然是(大的)一系列图像,而如今,显示器、电视和智能手机每秒可以显示60张甚至更多的图像。

这些当然不是第一个为人们快速连续显示图像而创造动画错觉的设备。在19世纪上半叶,动物园和fenakistiscope是很受欢迎的动画设备。但从那时起,技术进步极大地增加了动画选择和每秒的图像数量。然而,对于电影来说,几乎每秒都要使用24帧。

那些在显卡性能或基准测试领域并不完全陌生的人无疑知道术语FPS。每秒帧数是指你的电脑在特定游戏或测试中成功渲染的图像数量。FPS越多,你的电脑就越快,游戏运行得越好-至少这是一般的看法。

因为虽然每秒24帧就足以让大多数人看到一部完整的动画,而不是单帧,但几乎每个人都能分辨出每秒24帧和48帧的动画;而后者在我们的大脑里看起来要流畅得多,这确实要求动画的所有图像都要以相等的间隔跟随,如果突然有一幅图像丢失或者显示的时间比其他图像长,我们的大脑完全能够注意到这种偏差--毕竟,(流畅的)动画的错觉被打破了!

制作电影或系列剧时当然需要流畅的动画,但这也很容易实现。因为观众通过后期处理最终看到的最终产品是有控制权的。但这是一个与游戏不同的故事。在你的PC或游戏机上,每个单独的图像都必须尽快建立起来,这不能像电影那样提前发生,因为作为玩家,你可以影响屏幕上出现的内容。在游戏中建立任何图像都不应该花费太长时间来保持动画的流畅。无论你在游戏中看到的是安静的空旷平原,你都不能提前做到这一点,因为作为玩家,你可以影响屏幕上出现的内容。在游戏中,建立任何图像都不应该花费太长时间来保持动画的流畅。无论你在游戏中看到的是安静的空旷的平原。爆炸和光效;每个图像都必须及时准备好,让动画体验尽可能愉快。当在显示器或电视上玩游戏时,这一点很重要,但当使用VR眼镜时,为了不让人头晕或恶心,这一点更重要。

在视频游戏中,每秒的图像数量(每秒帧数,缩写为fps)通常用作游戏运行流畅程度的指标。但与电影和连续剧不同的是,游戏中的每秒帧数根本不是一个固定不变的数据。当然,这一点必须加以考虑。*正是因为这种不可预测性,所以把动画放在放大镜下很重要:我们要超越每秒总的图像数量。所以FPS可以说是一个总分,也就是每秒的图像数量。因为这并没有说明图像在这一秒内的分布情况,所以FPS的分数无法说明玩家的体验实际上有多流畅。

因此,看看渲染每一帧(图像)所需的时间会更有趣。这些时间也被称为0.001帧时间,以毫秒为单位测量。1毫秒是千分之一秒,通常被缩短为10毫秒。因为在动画中图像彼此紧跟在一起非常快,所以这个单位比记下0.001秒更有意义。

如果您希望每秒60fps且始终没有卡顿,则计算并在屏幕上显示任何帧的时间都不应超过16.67毫秒。对于30fps,您的系统可以放松;但有高达33.3毫秒的时间。如果你想获得100帧/秒的速度,那只需要10毫秒--不到三分之一的时间!

因此,对于帧时间,我们衡量的是每一帧渲染该帧所花费的时间。由于每个基准测试都很快需要几分钟时间,我们谈论的是数千个分数(值)。从所有这些数据计算平均值将非常容易,但然后我们实际上不会比FPS分数更进一步;毕竟,平均值几乎不能说明序列中的一致性和异常值。

现在哪个系统的表现更好?如果我们看平均数,两个系统都达到了30fps。因此,在这个基础上,我们看不出有什么不同。如果我们看一下图表,马上就会发现,系统B及其两个异常值提供的体验并不像系统A那样流畅。

既然我们知道我们不应该关注平均值(Fps),那么问题就来了:可以使用什么?如果我们在基准测试或测试中测量帧时间,从而收集数以万计的测试分数,如何才能使这些分数变得透明?如果像上面那样为每一秒测试做一个图表是大量的工作,而且你可能在十个片段之后就已经退出了。为了紧凑而高效地做到这一点,我们使用了百分位数。

百分位数是统计数据中的一个术语,计算方法是将所有帧时间从最低到最高排序,然后将其划分为100个大小相等的部分。这样,您将更好地了解所有数据的分布情况。*例如,如果是第60个百分位,则60%的所有帧时间等于或小于此数字,并且比这个数字高40%。如果测试显示第90个百分位为13.3毫秒,则所有测量的帧中有90%在13.3毫秒或更快的时间内准备就绪。/如果测试显示第90个百分位为13.3毫秒,则90%的测量帧在13.3毫秒或更快的时间内准备就绪。

您还记得之前的图表吗?下面是一个类似的图表,两个系统上的测试数据又是一秒钟。

这两个系统的平均值也不是那么有趣,因为它们都达到了33.3ms的平均帧时间,即30fps。如果我们将图表中的所有分数从低到高排序,我们会得到更好的概述,如下所示。

随着这张图中帧时间的增加,图片的混乱程度比上一张图要少一些。因此,按照从低到高的顺序,最好的(最低的)帧时间在左边,最差的(这会导致恼人的卡顿)在右边。这也是百分位数图的工作方式,水平轴只使用百分位数。也使用折线图代替条形图(条形图)。然后,图形将如下所示:

我们知道帧时间最好是尽可能低,但特别是我们希望看到尽可能少的高帧时间。这听起来是一样的,但有区别。在上面的例子中,游戏以每秒30帧的速度运行,监视器每秒显示30张图像,所以每帧有33.3毫秒的准备时间。*在这种情况下,在较短的时间内准备好的帧没有额外的价值,它们之前没有显示。如果你想让你的游戏运行得尽可能快,低帧时间是可取的。但即便如此,一致性对于最佳体验也很重要。图表右侧较高的帧时间是破坏流畅体验的情况。

在讨论帧时间时,第95、99和99.9%是常用的值。*为什么?*因为有了这些数据,我们可以就游戏或基准在大部分时间内运行得有多好做出坚实的声明。我们不仅仅是寻找最糟糕的帧时间,我们想知道整个体验的一致性有多高。偶然的卡顿几乎是不可避免的,而且往往不能完全预测-有时只是一个测量误差。

第99和99.9%的百分位数也经常以帧时间*的1%和0.1%的低位表示,这实际上是相同的(1%和0.1%最差的帧时间)-只是滚动容易一些。此外,一些出版物将帧时间中的百分位数转换回fps,以使信息更容易获取。许多读者通常可以想象在75fps时比在13.3ms时更好。*本身我们理解这种选择,但应该记住&。75fps(每秒75帧)帧的不一致跟踪仍然可能发生。这主要取决于它涉及的百分位数:转换后的75fps作为第99个百分位数比作为第90个百分位数更一致。

对于那些检查帧时间的人来说,一个详细信息的世界打开了。与每秒20帧的衡量相比,衡量动画有多流畅,游戏体验会有多愉快,要准确得多。而且,有多种选项可以进行比较;你不仅可以确定哪种显卡更好,还可以,例如,哪个处理器适合游戏,超频对你的内核或内存造成了多少影响,不同驱动版本之间的差异等等。

本文强调了帧时间的重要性,这并不意味着fps基准可以被丢弃,因为只要帧时间保持一致,相关公式中的比例就会保持不变。

在这篇文章中,我们已经讨论了帧时间的确切含义、它们与fps的关系、如何进行计算、百分位数的含义以及如何读取和解释所有这些测试数据。如果您也想开始并在自己的PC上进行这些测量,诸如OCAT和FRAMEVIEW之类的程序是很好的登录选择,但尤其推荐使用CapFrameX来即时洞察大量数据。