打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
帧与时间 论FPS游戏相关的性能参数

现在大多数人对一台电脑的性能参数,局限于帧率,刷新率。这两个参数是以“帧/秒”作为单位的,而以一秒作为一个时间段来研究性能是远远不够的,我们应该精细到一个刷新周期来研究。刷新周期指的是没有G-sync和Freesync的显示器,显示两个画面之间的时间,也是垂直同步脉冲信号发送的周期。

这些性能参数包括帧率,刷新率,帧生成时间(平均),帧生成时间(最大),帧生成时间曲线稳定度(也可以用方差或标准差表示),帧时间稳定度,操作延迟,是否撕裂等等。FPS游戏对这些参数非常敏感。

举个极端的例子,你看到的帧率有300,然而是0-16ms渲染了299帧,17-1000ms渲染了1帧,你将会感受到明显的卡顿。

在讲性能参数之前,先说说帧生成流程。

帧生成流程

键盘鼠标的操作代表你的操作(也叫输入),它们的刷新率极高,可以认为是连续的。键盘鼠标发出的数据通过南桥(South Bridge,SB)进入CPU。CPU做逻辑运算,将“帧的雏形”(command)通过PCIE x16总线输出给显卡,这个过程包括CPU与北桥(内存控制器)与内存的数据交互。也就是说CPU全核性能,CPU部分核心性能,CPU内部总线性能,内存控制器性能,内存性能,都会影响到CPU做出“帧的雏形”的时间长短。

显卡接收到来自CPU的数据,会渲染这一帧,然后输出给“后缓冲区”,前后帧缓冲区交换之后,前缓冲区将渲染好的帧输出给显示器,显示器刷新出这一幅画面,帧生成完成。

完整的操作延迟指的是,从你键盘鼠标的操作时间点起,到显示器输出这一帧为止的时间。

当然,实际的帧生成流程不是这么简单的,因为上面说的流程中,GPU会等CPU,CPU会等GPU,这样反复互相等待,会造成CPU和GPU都不会满载,性能无法被完美利用。所以CPU会预渲染帧,这个后面会讲。

然后开始讲性能参数。

1.帧率

很多人觉得60hz显示器,帧率达到60fps以上是没有意义的。这是很明显错误的观点。高帧率的意义是更短的操作延迟。

帧率

以60hz显示器为例,其中实心点表示显卡渲染好的一帧。仅考虑显卡渲染的时候,下面提到的帧发生的时间(事件时间,操作时间),都是CPU发送过来的指令的时间,而不是真实的操作时间,因为CPU有预渲染,这个后面会讲。

先看60fps,A帧渲染完成之后,显卡开始渲染C帧。C帧的帧生成时间就是A-C的时间。A帧会在B画面显示,C帧会在D画面显示。也就是说,A时刻的事件,最终会在D画面上显示。A-D的时间段是操作延迟的一部分,即显卡产生的操作延迟。

再看300fps,A帧代表的事件是G,在B画面上显示。帧生成时间为G-A。显卡造成的操作延迟为G-B。同理下一个刷新周期,C帧代表的事件是H,在D画面上显示。帧生成时间是H-C。显卡造成的操作延迟为H-D。

很明显,300fps的操作延迟远低于60fps。更低的操作延迟意味着你看到画面的时间距离你操作的时间越短。我们看到的画面一定是有延迟的,也就是我们一直在通过过去的画面去预判未来的操作,当然,这个“过去”离“现在”越近,你做出的判断就越准确。

也可以看到,帧生成时间是不稳定的,从而造成你看到的每一个画面所代表的事件发生的时间是不均匀的。具体表现就是你以恒定的速度横拉鼠标,而你的准心在屏幕上滑过的轨迹不是匀速的。

你看到的画面所代表的事件所发生的时间,我称之为帧时间。帧时间均匀程度,或者说是稳定度,对拉枪和跟枪有很大影响。

FPS游戏对操作延迟,帧生成时间稳定度,帧时间稳定度要求极高。如果你有反对意见,在CSGO里把垂直同步和三重缓冲同时打开,感受一下超长的操作延迟,就知道这感觉有多么吃屎了。

最后看40fps。40fps意味着有些刷新周期里,显卡可以渲染出一帧,有些不能。不能的那些周期,显示器就只能重复上一个画面。这种时而重复,时而不重复(即60fps和30fps随机出现)的现象,可以被称为卡顿。如果说FPS游戏最忌讳什么,那一定就是卡顿,没有之一。其实任何游戏,频繁出现卡顿,都是对游戏体验的毁灭性打击。

2.刷新率

很多人觉得人眼看24hz或60hz就够用了,这也是很明显错误的观点。高刷新率的意义是提高流畅度,获取更多的信息。

刷新率


以300fps为例,分别是60hz,144hz,240hz的显示器。ABCDEF分别是显卡渲染好的帧。

60hz,只能在16ms看到F帧,其事件时间是E(显卡渲染好一帧,才能开始渲染下一帧,所以前帧(E)的完成时间,就是后帧(F)事件发生时间。特此解释一下,怕有人不懂)。

144hz,可以在7ms看到C,可以在14ms看到E。240hz,可以在4.167ms看到B,在8.334ms看到C,在12.5ms看到E,在16ms看到F。

结果很明显,更高的刷新率,往往可以看到更多的画面,流畅度也就更高,获取的信息也更多。而且,我们甚至可以提前看到对方的动作。例如A时刻敌人从掩体后面拉出来了,60hz显示器要等16ms才能看到,240hz显示器只需要等4ms左右。看起来240hz很厉害对吧。我前面没提这个优势的原因是,人类的反应速度一般在200ms左右,16变4这种差别,只有天选之子才能感受到。

3.垂直同步与增强同步

现在很多人觉得FPS游戏不能开垂直同步,这样操作延迟才低。其实FPS游戏可以开增强同步(A卡),或快速同步(N卡)。

同步

对比不开垂直同步,开启垂直同步后,只要显卡渲染好了一帧,就会立即停止渲染,等待显示器的垂直同步脉冲信号,收到之后,前后缓冲区交换,把A帧输出给显示器。这个技术是为了解决撕裂的,但造成了极高的操作延迟,FPS游戏一定不能开垂直同步。

但是不开垂直同步的话,如果某一帧在刷新时刻后一点点的时间渲染完,显卡会立即交换前后帧缓冲区。例如C帧处于前缓冲区,正在输出给显示器,还未完成,此时D帧渲染完毕,显卡突然交换帧缓冲区,把D帧输出给显示器,这样显示器显示的这个画面,包含了一部分C,一部分D,中间间隔的地方就是撕裂。

撕裂的位置一般出现在屏幕中线附近,非常影响对枪,尤其是准心位置撕裂。

增强同步的原理是显卡始终为后缓冲区写入帧,只有收到显示器垂直同步脉冲信号时,前后帧缓冲区交换,前缓冲区最后一个完整帧会输出给显示器。这样以极低操作延迟的代价,解决了撕裂。

FPS游戏始终建议打开增强同步。

20200310修改:增强同步和快速同步的原理是存在3个缓冲区,后缓冲区被填充完整的一帧后,与中缓冲区交换。显示器发送垂直同步信号后,中与前交换。这样不管显示器什么时候发出垂直同步信号,后和中都可以一直交换,即显卡可以一直渲染帧,不会有锁帧效果。中与前交换之后,交换后的前(原来的中)把帧输出给显示器,显示器呈现画面。这样就可以保证显示器显示的帧是完整的一帧,不会撕裂。如果把后和中都当成后,那么我之前的说法其实没问题。我后来看了一篇NVIDIA的技术文档,才知道这个细节。AMD增强同步大概也是这个原理,如果不是也是近似的,效果是一样的。

4.Freesync

没有Freesync和Gsync的电竞显示器就是搞笑的。你想不搞笑,以240hz显示器为例,你要保持所以帧的帧生成时间都小于1/240s,换句话说就是帧率必须恒大于240fps,而且帧生成时间不能出现过大波动。这不仅仅要求你的CPU,内存,显卡性能要非常高,系统本身也要优化的相当好。你有钱买高配,技术强,会优化系统,只玩csgo,是你赢了,是我搞笑了。

但是你除了csgo,别的都不玩了吗?有几个高画质游戏的帧率能稳定240以上?不能稳,就会时而重复,时而不重复,上面说了这叫卡顿。对于240hz显示器来说,这种卡顿感觉明显小于60hz的,但依然能感觉到。解决方法就是手动锁60帧或120帧,但你这个240的钱算是白花了,至少在非csgo的游戏上是白花了。

下面说说freesync有什么用。Gsync原理差不多,由于多了芯片,功能会更全一些,例如低帧率补偿等等,想了解的话去NV官网和reddit上查资料吧。

freesync

对比144hz和144hz带freesync。其中B帧和D帧可以在7ms和14ms显示,两者是一样的。但14-21这个刷新周期里,由于cpu或内存原因,导致掉帧,显卡没能渲染出一帧,而是在22ms时候渲染出一帧。没有freesync的144,这一帧会在28ms时候显示,而有freesync的,会在22ms时候显示。提前了6ms,卡顿感降低了6/(28-14)=43%。

如果E之后又生成了其他帧,则没有freesync的显示器,E帧直接丢失,有freesync的会显示出E帧。

freesync一般会有一个范围,不同显示器范围不一样。如果主玩fps游戏,右端点一定要达到显示器最大刷新率,否则意义不大。左端点不是很重要,除非你电脑经常白给,掉帧那么厉害。

5.Flip queue

翻转队列,在N卡控制面板里叫最大预渲染帧数。这个就是前面提到的,CPU预渲染多少帧。

N卡控制面板里可以手动给游戏设置这个参数,A卡不能。DX下(CSGO和OW都是DX渲染API),该值默认是3,最低是1。程序员可以手动改这个值。CSGO在A卡下是1,N卡不知道,不过N卡可以手动调成1。OW说法比较多,有说开启减少缓冲是1,不开是2,也有说开启是2,不开是3。油管上有一篇测试视频,感兴趣的可以去看看。

那么这个参数有何用呢?

0

Flip queue=0。该情况在DX下是不会出现的。可以看到该情况下由Flip queue造成的操作延迟最低,但显卡和CPU反复互相等待,硬件影响无法完美利用,而且一旦CPU或显卡不能及时输出一帧,就会导致掉帧卡顿。

假设CPU处理好一帧的指令需要1ms,显卡渲染这一帧需要4ms。那么5ms时刻CPU开始渲染B事件,6msCPU处理完毕,10msGPU处理完毕,我们看到画面。完整操作延迟为10-5=5ms。

1

Flip queue=1。从0开始先是填充队列,队列填充完毕后才是正常渲染流程。以C帧为例,C事件在5ms开始处理,6msCPU处理完毕,13msGPU处理完毕。完整操作延迟为13-5=8ms。

可以看到CPU在GPU开始渲染的时候,会提前渲染1帧,写入指令缓冲区。正常情况下,显卡一直在渲染滞后的帧,所以会引起操作延迟。

之所以叫最大预渲染帧数,是因为如果因为cpu或内存掉帧,可能在GPU需要帧的时候,CPU指令缓冲区不能被写满,此时GPU会空载,CPU或内存瓶颈的地方会瞬时满载。

3

Flip queue=3。CPU指令缓冲区最多可以有3帧。以D帧为例,D事件发生在5ms时刻,6msCPU处理完毕,17msGPU处理完毕。完整操作延迟为12ms。如果是144hz显示器,α是20.8ms,是144hz显示器的一次刷新时刻,它会显示D帧,但是D帧是滞后12ms的帧,差不多有144hz显示器的两个画面那么多了。

高Flip queue的好处是即时因为CPU或内存疯狂白给而掉帧,也可能不会出现卡顿,因为GPU可以继续渲染指令缓冲区内的帧。

那么Flip queue设置多少比较好呢?

如果你的配置足够高,设置成1不卡顿,那就设置成1。如果始终是GPU满载,设置成1。如果CPU多核或单核频繁满载,或内存带宽瓶颈,设置成2或3。

简单来说,这个值越低,操作延迟越低,帧率会略微下降;这个值越高,操作延迟越高,帧率会略微提升,会很大程度改善卡顿问题。

总结一下。

高帧率意味着更低的操作延迟。

高刷新率意味着更流畅,可以看到更多画面,获得更多信息,也可以提前看到事件,可以提前开枪(虽然很不明显)。

稳定的帧生成时间和均匀的帧时间,意味着操作更平滑,更低的顿挫感。

增强同步的意义是以极低的操作延迟解决撕裂。

Freesync的意义是解决掉帧造成的顿挫感。

回答一个问的比较多的问题。144hz显示器,帧率到不了144fps体验如何?

如果有freesync或gsync并开启,体验完爆60hz显示器。

如果没有,会出现时而重复时而不重复的卡顿,体验较差。如果能稳定72帧以上,可以锁72帧,会解决这种卡顿。

240hz同理,锁60或120帧。

如果主玩CSGO等FPS游戏,可以买1080p,TN面板,1ms响应,120-240hz,带GS或FS(取决于你的显卡)的显示器。

如果主玩高画质3A大作,可以买1080p或2K,IPS面板,60hz,高色域显示器。

如果兼顾以上这些,可以买大金刚(2K 144或165 GS IPS)或小金刚(2K 144或165 FS IPS),价格比较贵,而且两者都不专精。

目前上4K代价极高,如果不是很懂视频技术和游戏渲染技术,很难获得高质量体验,所以说这是一个既需要钱,又需要技术的领域,没两把刷子不要碰4K。

如果你的配置极高,又有技术优化配置,优化系统,可以保证帧率恒大于240hz且不波动严重,可以考虑买卓威240hz。

关于CPU买intel还是amd,显卡买nvidia还是amd,可以参考我前一篇文章。鉴于最近看到几篇说N卡缩画质实现高帧数的贴,我觉得有必要研究一下再做结论。内存的话,玩FPS游戏必须上高频内存,以保证帧生成曲线平稳。

因为每个人对画面的画质,流畅度,帧时间均匀程度的敏感性不一样,所以完全没必要说你觉得怎么怎么样。你怎样感觉你就怎样用。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
超能课堂(205):高刷新率显示器是如何提升用户体验的?
选择合适自己的显示器——显示器选购建议
再说144Hz屏跟60Hz屏没区别的话 你该去看眼科了
显示器哪个牌子好?电脑显示器如何选择?2021年8月显示器推荐
唯快不破:为什么游戏狂魔们需要一台电竞显示器
RTX30显卡时代用什么显示器?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服