FPS再好也怕延迟高,从帧延迟角度再探游戏流畅度

您所在的位置:网站首页 gta5多少帧算正常 FPS再好也怕延迟高,从帧延迟角度再探游戏流畅度

FPS再好也怕延迟高,从帧延迟角度再探游戏流畅度

2023-12-30 19:52| 来源: 网络整理| 查看: 265

拼 命 加 载 中 ...

  电影工业普遍使用24帧(24fps)的工业标准,我们所玩的游戏普遍都能达到30fps以上,但是二者的观感是不一样的,24帧的电影看着非常流畅,30帧的游戏有时却觉得很卡。

  究其根源,电影从拍摄时就是动态模糊的,每一帧的场景都是上下连贯的,这样拍出的影片是符合人眼习惯的。但是PC游戏原理不太一样,每一帧都是显卡即时渲染的,上一帧与下一帧的场景差别有可能非常大,玩家观看这种不连贯的画面很容易产生卡顿的感觉。

  除了电影与PC游戏原理上的不同之外,显示器的刷新率也是影响游戏卡顿与否的一个因素。目前的LCD显示器普遍是60Hz刷新率,这意味着无论显卡自己能渲染多少画面,每秒只会刷新60次,如果其中的某些场景因故刷新的慢了,画面同样会有不连贯而出现卡顿。

  在这样的限制下,虽然目前的中高端显卡都能跑出每秒几十甚至一两百帧的画面,但是这一秒时间对电脑来说太长了,从游戏引擎到图形API、到显卡渲染、帧缓冲器再到显卡输出渲染完成的画面的每一个环节都会对游戏画面产生影响。即使我们能获得较高的游戏帧数,但这并不代表我们就一定能获得同样的流畅度体验,要知道游戏帧数高不等于游戏流畅度好。

  所以,我们平时常用的平均帧的概念只是一个理想值,由于最低帧和最高帧的影响,平均帧只是统计出来的结果,评价游戏流畅度还要综合考虑帧延迟(frame latancy)的影响,后者才对游戏的流畅度体验有决定性影响。

  帧延迟的高低可以通过帧时间(frame time)来判定,我们以桌面显示器最常见的刷新率为例子做个计算,60Hz意味着每秒刷新60次,每次大约16.7ms。游戏中每帧生成时间如果与16.7ms很接近,那么全程游戏的帧数就很稳定,更接近理想的60fps。

  如果每帧生成时间大大高于16.7ms,这就代表着游戏中这一场景中花费的时间比其他帧更多,画面会跟不上,进而带来卡顿现象。

  当然,60fps是一个理想值,对与部分游戏来说30fps的速度也可以接受,这时候平均帧时间就是33ms左右。

HD 7950、HD 7870及GTX 760的帧时间曲线

  对显卡来说,它能够跑出多少的帧数是由其性能决定的,这是这款显卡的架构和性能决定的,但是能够在这样的架构下跑出符合理论规格的帧数却是由厂商的软实力决定的,这涉及到显卡的驱动、内存管理、游戏优化等等,是需要一定技术积累的。

  现在我们就来深入解读一下帧延迟的存在及如何准确捕捉帧延迟,并通过专业的帧延迟测试工具来了解下不同显卡在平均帧参数之外的帧延迟问题。

帧时间?Fraps到底出什么问题了

  有关帧延迟的讨论是个老话题了,fraps作为一款知名的FPS测试软件,不仅能获得游戏中的平均帧、最低帧等参数,还可以记录游戏的帧时间(frametime),这是游戏中每帧画面的生成时间,它用时多少决定了每帧画面渲染用时是快还是慢,也就代表了游戏运行是畅快的还是卡顿的。

  但是fraps测量的帧时间也引发了一场争论,AMD从技术角度指出fraps软件测量帧延迟是有问题的,它过早地介入了3D渲染过程,Fraps可以告诉你进入渲染过程之前发生了什么,但是它无法告诉你渲染完成之后发生了什么,而真正决定游戏卡顿与否的关键就在后一个阶段上。

AMD认为fraps测量帧延迟的方式是有问题的

  即便是在Fraps帧时间测试中占了上风的NVIDIA,他们也没有完全认同fraps的作用,因为基于软件的帧时间测量方式确实是有缺陷的,因为显卡渲染画面是不存在刷新率问题的,它能渲染多少就输出多少,但是目前的显示器存在刷新率问题,LCD普遍是60Hz刷新率,这意味着不论显卡渲染了多少帧画面,在显示器上都要1/60秒(16毫秒)左右才能显示一帧。

显卡的渲染时间和显示器上显示出的渲染时间是有脱节的

显卡每秒可渲染多少帧是由GPU性能决定的,而显示器的刷新率是固定的

Fraps测帧延迟其实不是那么“聪明的”

  再回到Fraps上来,一帧画面从开始进入渲染管线到最终输出到显示器上有很多阶段的,fraps测量的只是帧从游戏引擎到微软DX渲染进程的时间段,比显卡发送命令和数据让GPU开始渲染的时间要早,所以fraps真正看到的只是显示器正在发生的,而真正的帧缓冲器内发生了什么是它看不到的,这是它的先天缺陷。

  此外,除了测量理论上的不足,GPU渲染中经常还有丢帧(drop frame)和不完全帧(runt frame)等现象存在,fraps对这些问题也是无能为力的。

FACT:基于硬件的帧延迟捕捉系统

  正是因为这些问题的存在,NVIDIA提出了一种新的基于硬件的帧延迟测试系统——FCAT(Frame Capture Analysis Tools,帧捕捉分析系统),它使用高清视频采集卡将游戏渲染输出的信号录制成视频文件,通过分析这个视频文件来获得游戏帧数相关的信息,并将最终获得的帧时间转换成可见的成绩表格。

  基本原理就是这样,不过其中的一个问题在于如何在录制视频的时候分辨其中包含的帧率信息。NVIDIA的解决方式是通过在每个测试项目中注入dll文件,将游戏画面以不同的颜色标记,总计有白色、绿黄色、蓝色、红色、青色、海军蓝、绿色、浅绿色、栗色、银色、紫色、橄榄绿、灰色、紫红色、黄色及橙色16种不同的颜色,如果某个画面中缺失了某种颜色,这就意味着有丢帧现象发生,如果色带过短,这说明有不完全帧出现,而这是fraps软件所测试不到的。

16中不同颜色的色彩代表了游戏中真实发生的情况

  从理论上来说,FCAT硬件系统比fraps这样的软件更加无懈可击,下面就来见识下这套系统吧。

◆ FCAT系统的硬件组成

  软件捕捉帧延迟在理论上是有问题的,最彻底的解决方法就是从视频输出那头入手,直接分析显卡输出的信号中有关帧速的部分,这样就避免了软件捕捉的不真实问题,这就是NVIDIA的FCAT系统的理论基础。

  FCAT系统在硬件组成上很简单,一个DVI视频采集卡+DVI分流器即可,测试者需要组装两套平台,一套是测试平台,DVI分流器的输入端就连接在测试平台的显卡上;第二套是录制平台,需要安装视频采集卡,DVI分流器的一端需要连接在视频采集卡上,另一端则需要连接在测试平台的输出显示器上,具体的组成如下。

FCAT平台的硬件组成

Datapath vision dvi-dl双链DVI视频采集卡

  整套硬件系统中,视频采集卡是核心。目前测试游戏的视频输出普遍在1920x1080,高的还有2560x1600,如此高的分辨率需要一款性能相当强劲的视频采集卡才能跟得上。

  Datapath vision dvi-dl双链DVI视频采集卡最高可支持4Kx4K分辨率采集,接口为PCI-E 2.0 x4。目前该卡在英国的售价是1375英镑,折合人民币大约12880元,价值不菲。

1:2 DVIDL视频分流器

  FCAT需要将测试平台的视频分别输出到视频采集卡和测试平台显示器上,这就需要视频分流器了,配套的是GeFen 1:2 DVIDL双路分流器,价格要比上面的视频采集卡便宜多,淘宝上最便宜的是300多,英国本土上的报价是261英镑,价格悬殊很大。

FCAT平台实战

由于需要安装很多的线,平台比较乱。

运行过程中可以看到图像左侧不变变化的彩带

不同的帧数,彩带颜色也会不同

  视频采集平台需要比较高的配置,特别是CPU要一点,而且关键的是磁盘速度要跟上,自己测试的情况是:1920x1080分辨率下录制视频下,大约一分钟就需要13GB的容量,磁盘写入速度在240-300MB/s左右,如果是2560x1600分辨率,那么磁盘要求就会更高。

  NVIDIA的建议使用大容量SSD组成RAID 0模式,不过实际测试中因为条件限制只能跑1920x1080分辨率的,300MB/s的写入速度对高端SSD来说不算高,所以视频录制平台使用的是Core i7-2600K处理器,SSD是三星840 Pro 128GB。

◆ FCAT系统的软件组成

  前面的视频采集系统只是FCAT的前戏,录制出来的视频要转换成大家看得懂的成绩图表才是目的,而这部分就是FCAT系统的软件部分完成的,这也是NVIDIA自己发力的部分,软件系统才是FCAT的精华。

FACT的三个子目录

  解压缩FCAT文件包之后,我们可以看到目录下有Overlay、Extreactor及Analysis三个子目录,它们的作用分别如下:

Overlay

  该目录下有两个dll文件和一个可执行程序——EnableOverlay.exe,这个文件前面也介绍了,是需要放到测试机运行的,它的作用将dll文件注入到测试机的游戏或者程序里,这些dll文件会产品与游戏fps相对应的颜色,而这些颜色就被视为评估游戏帧数、帧速的关键指标被后面的Analysis脚本解析成图表。

开启Overlay之后,每个测试项目左侧一直都有不同颜色在闪烁

Extractor视频提取器

  Extractor是视频提取器,它可以将录制好的AVI文件转换成excel文件,其实就跟fraps生成的csv文件一致,里面包含了游戏帧数、帧时间等等各种信息。

Analysis分析脚本

  Analysis脚本系统由Perl语言编写,需要安装对应的软件。该目录下有5个脚本和4个pl文件,其中fact.pl脚本负责输出包含帧时间在内的CSV文本,run_doall.bat负责生成一个包含多项处理内容的新脚本,新脚本位于自动建立的NV目录下,而run_fact脚本是最终执行这些命令的脚本,测试中大都只需要先点击run_doall.bat脚本,再点击run_fact.bat脚本就可以了。

  run_doall.bat脚本还支持几个自定义参数,用户可以执行分析哪个GPU或者哪个测试项目的成绩。

◆ 测试平台及说明

  测试平台配置与之前测试GTX 780、GTX 770时相同,Core i7-3770K超频到了4.5GHz以防止CPU成瓶颈,搭配8GB双通道DDR3-1600内存,Windows 7 X64 SP1系统,并安装了AMD和NVIDA最新驱动。

  对比的显卡主要是GTX 760、HD 7870和HD 7950,GTX 760的性能和价格恰好位于HD 7870和HD 7950之间,更接近后者。注意这里的HD 7950指的是800MHz频率的版本,HD 7950 Boost加速版的价格普遍都在2200元或更高,定位依然比GTX 760高一截。

  测试项目并不算多,因为有些游戏的帧数即便在最高画质下也比较高,体现不出帧时间的差距,第二是因为FCAT系统能否得出最后的结果取决于视频录制,而视频录制中不时就会出现录制出的视频偏偏解析不出结果,虽然每个游戏的录制过程和设置都是一样的,所以我们就以这五个测试来看一下FCAT系统的功能。

◆ FCAT测试之Heaven 4.0

Heaven 4.0设置

三款显卡的最低帧曲线(点击放大)

  最低帧中,GTX 760表现要大大好于HD 7870,帧数比HD 7950也要略高一些。

三款显卡的帧时间曲线(点击放大)

  在这个项目中,GTX 760的帧时间与HD 7950表现差不多,不过大部分时段是GTX 760略占上风,而HD 7870的帧时间波动就太大了。

◆ FCAT测试之孤岛危机3

三款显卡的最低帧曲线(点击放大)

  在最低帧中,GTX 760依然有这明显的优势,最低帧从58fps左右开始下降,而HD 7950则是从47fps开始下降,表现不如GTX 760。

三款显卡的帧时间曲线(点击放大)

  Crysis 3中,GTX 760大部分最低帧依然要好于HD 7870和HD 7950,帧时间普遍在15-25ms之间,HD 7950和HD 7870的波动就比较大了。

◆ FCAT测试之蝙蝠侠:阿卡姆城

三款显卡的最低帧曲线(点击放大)

  这款游戏比较老了,单从绝对值上看三款显卡的最低帧都非常流畅,不过相对地看,GTX 760的最低帧曲线依然处于上风,比HD 7950和HD 7870更好。

三款显卡的帧时间曲线(点击放大)

  这个游戏中三者的帧时间曲线非常相似,在12秒、28秒、44秒、55秒左右各自都有一个突出的波峰,GTX 760的表现跟HD 7950同级,好于HD 7870。

◆ FCAT测试之地铁:最后之光

三款显卡的最低帧曲线(点击放大)

  最低帧方面,GTX 760继续表现出优势,大部分最低帧都维持在35fps以上,HD 7950和HD 7870则是30fps左右。

三款显卡的帧时间曲线(点击放大)

  Metro:Last Light中,HD 7870的帧时间波动依然是最大的,GTX 760的帧时间普遍低于HD 7870和HD 7950,帧时间波动比HD 7870要好,多数帧时间还是要低于HD 7950。

◆ FCAT测试之古墓丽影9

三款显卡的最低帧曲线(点击放大)

  HD 7950的最低帧在这里终于扳回一局,表现略好于GTX 760。

三款显卡的帧时间曲线(点击放大)

  在这个Gaming Evolved阵营游戏中,GTX 760、HD 7950的帧时间要比HD 7870稳定的多,后者的成绩有点惨不忍睹,帧时间其实不算高,不过波动比较大,GTX 760在前三十秒内的帧时间略高于HD 7950,之后的时间内二者基本相当。

◆ 总结:平均帧已过时,游戏之道在优化

  通过FCAT系统,我们可以更清楚地看到平均帧只能反映出游戏及显卡性能的一部分,而帧延迟高低在衡量游戏卡顿与否方面更准确,它能说出我们平时注意不到的一方面。

  从测试的三款代表性显卡来看,HD 7950显卡虽然在平均帧数跟GTX 760相近,但在最低帧及帧时间上要落后于GTX 760,所测5个项目中只有《古墓丽影9》中最低帧是高于GTX 760的,大部分测试的帧时间表现只能跟GTX 760持平甚至更落后,HD 7870就更不用说了。综合来看,GTX 760在最低帧及游戏流畅性上都要好于HD 7950显卡。

  单卡方面AMD在帧延迟上落后NVIDIA其实还不算最多的,CF交火时帧延迟比NVIDIA的SLI更为明显,AMD双卡的AFR(交替帧渲染)技术要落后NVIDIA很多,游戏帧延迟动辄100ms以上,大大高于理论上的水平。我们不禁要问,AMD为什么落后这么多?

  造成这方面的原因除了双方在驱动管理上的技术差异之外,也跟双方在游戏优化上的巨大差异分不开。NVIDIA是靠游戏显卡起家的,从创立之初就非常重视游戏业的发展,除了硬件GPU之外,NVIDIA的驱动更新一直很给力,新游戏出来后很快就有优化驱动,而且在GeForce官网上NVIDIA也提供了一系列工具帮助玩家分析配置、检测GPU,还会提供宣传视频下载、壁纸下载等额外服务。

  此外,NVIDIA从从2002年就开始提出了名为“游戏之道”(The Way it's meant to be played)的游戏优化策略,其目的就是跟游戏厂商紧密合作,优化NVIDIA显卡在游戏中的表现,提升用户的游戏体验。而AMD与之类似的概念叫做Gaming Evolved,这是2010年才推出的游戏优化策略,比NVIDIA的游戏之道晚了8年,远不如前者的积累这么多。

  最主要的是AMD跟游戏开发商的合作只限于表面,大部分合作就是双方出钱冠名,只有《古墓丽影》中使用了AMD和开发商合作的技术,这跟The Way计划严重不一样,NVIDIA会从技术端与开发商深入合作,就像最近发布的《细胞分裂:黑名单》游戏一样,后者原本只是UE 2.5引擎的,NVIDIA和开发商联合改善图形质量,增加了DX11和曲面细分支持,并使用NVIDIA的TXAA、HBAO+等更高级的3D技术提升游戏画质,优化游戏表现。

  The Way的游戏优化做法显然要比AMD的Game Evolved更有内涵,更有技术含量,即便是在AMD的专属游戏中,NVIDIA显卡依然可以保持领先。

  游戏之道是跟游戏开发商合作的,他们的成果可以被游戏玩家感受到,但在前台却看不到。为此NVIDIA又提出了第二阶段的游戏优化之道,推出了GeForce Experience(简称GEE)云优化应用。

  GEE是一个可以帮助玩家自动优化游戏配置,并且实时更新的软件,很多玩家在面对游戏中繁多的设置项目时无从下手,NVIDIA的GEE软件则可以根据玩家硬件配置给出最合理的游戏设置,在保持游戏流畅性的同时最大化游戏画质。

  如今的显卡市场上,AMD和NVIDIA的GPU架构升级换代间隔比之以往都慢了下来,双方同级别的GPU性能、功耗差距已经不大,GTX 770及HD 7970 GE这样的产品甚至是胶着之态,双方谁都不能说完全胜过对方。不堆硬件的情况下,软实力就更加重要了,谁能为游戏玩家带来更流畅的游戏体验,谁就有更多的筹码,这一点上NVIDIA显然已经走在了前面,AMD在游戏帧延迟上还有一段距离要追。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3