当前位置:首页 > 装机升级 > 显卡 > 技巧
“微观”世界里的评测——NVIDIA FCAT帧率测试方案解析
  • 2013-12-10 15:06:42
  • 类型:原创
  • 来源:电脑报
  • 报纸编辑:陈扬轶
  • 作者:
【电脑报在线】在前几期报纸上,我们曾详细研究过“帧时间”(或者说帧延迟)对游戏是否流畅造成的影响。基本上整个硬件以及游戏业界还是很认同每帧生成时间的确和游戏的流畅度有关,游戏游戏每帧的延迟起伏较大,延迟时间较高,即使帧速表现优异,依然会让玩家在游戏中感到卡顿。通常很多媒体和测试是用FRAPS来测试游戏一段时间内的帧延迟,不过Fraps的测试机制使得它的帧延迟测试不那么科学,而NVIDIA则自行开发了一套名为FCAT的测试工具来测试游戏的帧延迟。


  在前几期报纸上,我们曾详细研究过“帧时间”(或者说帧延迟)对游戏是否流畅造成的影响。基本上整个硬件以及游戏业界还是很认同每帧生成时间的确和游戏的流畅度有关,游戏游戏每帧的延迟起伏较大,延迟时间较高,即使帧速表现优异,依然会让玩家在游戏中感到卡顿。通常很多媒体和测试是用FRAPS来测试游戏一段时间内的帧延迟,不过Fraps的测试机制使得它的帧延迟测试不那么科学,而NVIDIA则自行开发了一套名为FCAT的测试工具来测试游戏的帧延迟,而近日我们已经从NVIDIA那里获得整套FCAT工具,下面就让我们一起来了解FCAT的具体测试方式。



FRAPS为啥不可靠?
  如果按照目前最常规的手段而言,测试帧时间的简单的办法就是使用Fraps,不过不管是AMD还是NVIDIA都认为Fraps用于测试帧速没有问题,但是用于测试帧时间就不可靠了。AMD认为Fraps过早地介入了3D渲染过程,Fraps可以告诉你进入渲染过程之前发生了什么,但是它无法告诉你渲染完成之后发生了什么,而真正决定游戏卡顿与否的关键就在后一个阶段,即画面输出阶段上。而NVIDIA也认为基于软件的帧时间测量方式确实是有缺陷的,因为显卡渲染画面是不存在刷新率问题的,而显示器是有刷新率的,Fraps显然没有考虑到这个问题,所以它的数据也是不准确的。
  
  Fraps可以选择帧延迟的测试,但并不准确
  之前我们曾经说过,Fraps测试的只是帧从游戏引擎到微软DX渲染进程的时间段,比显卡发送命令和数据让GPU开始渲染的时间要早,所以Fraps真正看到的只是显示器正在发生的,而真正的帧缓冲器内发生了什么是它看不到的,这是它的先天缺陷。此外,在GPU渲染过程中经常还有丢帧(drop frame)和不完全帧(runt frame)等现象存在,这种现象也会直接体现在画面上(肉眼可能无法察觉,)而Fraps也无法检测这种现象。所以如果从每帧的微观角度去看待显卡之间的差异,那么Fraps至少不是那么令人信服。


基于硬件捕捉的FCAT
  在今年3月,NVIDIA提出了一种全新的侦测帧延迟以及其他相关每帧画面输出参数的测试方案——FCAT(Frame Capture Analysis Tool,帧采集分析工具)。它的原理就是执行一个Overlay(覆盖层)挂件,在每帧输出的画面左面部分加上一种颜色,这个颜色就类似于一种时间节点,然后NVIDIA再使用高清视频采集卡将游戏渲染输出的信号录制成视频文件,通过分析这个视频文件每帧的色带变化来获得游戏帧数相关的信息,并将最终获得的帧时间转换成可见的成绩表格。由此,FCAT除了能测试到游戏的具体帧速,同时也能测试到具体的每帧延迟、丢帧以及微帧等现象。
  
  NVIDIA假设内核驱动和 GPU 最多只能扔掉16帧连续画面,因此一共有16种不同的色彩序列。由于每一帧的颜色都不一样,这样采集出来的画面就非常便于进行帧率分析了,因为只要分析画面中不同颜色的垂直距离(显卡的输出垂直刷新率是固定的,把颜色区域的垂直距离除以屏幕高度再乘以垂直刷新时间即可计算出帧时间)和对应的色彩序号即可判断出对应的帧时间和各帧之间是否存在丢帧。


连续16帧画面上都有不同的色彩区域
  按照NVIDIA FCAT的定义,FCAT一共有以下16种颜色:白色、亮绿色、蓝色、红色、青色、海军蓝、绿色、浅绿色、栗色、银色、紫色、橄榄绿、灰色、紫红色、黄色及橙色。在垂直同步状态下,每种颜色的长度实际上和每帧画面分辨率的高度是等同的。而在非垂直同步状态下,每帧画面中的颜色区域在大多数情况下都不再是单一的是,一帧画面经常出现两种颜色,而一种颜色也经常横跨两帧扫描输出的画面。如果渲染速度高于垂直同步的话,你会看到同一个扫描输出画面中,会有多个颜色区域的存在。

本文出自2013-12-09出版的《电脑报》2013年第48期 E.硬件DIY
(网站编辑:pcw2013)


我来说两句(0人参与讨论)
发表给力评论!看新闻,说两句。
匿名 ctrl+enter快捷提交