游戏玩家的图形显示设置指南(9)(The Gamer's Graphics & Display Settings Guide)

游戏玩家的图形显示设置指南(9)

作者:Koroush Ghazi 
翻译:芈希有 


第九关 图形设置--垂直同步 


垂直同步

垂直同步(Vertical Synchronization, Vertical Sync,简写为VSync),主要是由于显像管的物理限制而产生的,这一点在讨论刷新率章节中已经指出了。CRT显示器必须通过不断照亮屏幕上的荧光粉来显示图像,这是基于显示器电子枪移动速度的。每次CRT显示器重画整个屏幕的时候,内部的电子枪将从屏幕底部移动到指向屏幕的左上角的点,准备'重画'所有从屏幕左上角到右下角的扫描线,等画完后,再从头准备下一次刷新。我们把为了刷新屏幕,电子枪从屏幕底部移动到顶部的时间叫做垂直空白间隔(Vertical Blanking Interval,VBI)。

在显卡上启用VSync将告诉您的显卡会与您的显示器进行同步。这意味着显卡只有当显示器说它已经准备好重画整个屏幕的时候--例如在VBI期间,显卡才被允许交换其帧缓存并将一个新的帧送往显卡。然而,您的显卡和显示器之间却不一定非要同步不可;在VSync被禁用的时候,他们仍然可以正常运行,但是当垂直扫描被禁用,您就可以体验一种被称为撕裂(Tearing)的现象,这正是因为您的显卡和显示器的行为是没有进行相互之间的限制的。

虽然概念上的VSync起源自CRT屏幕,但它适用于液晶显示器,下面我们将来解释为什么这么说的原因。

 

撕裂(Tearing)

如果禁用的VSync,您的显卡和显示器将会不同步,这是一个不幸的事实。每当你的FPS的超过屏幕的刷新率时(如在60Hz的屏幕上FPS为120),或在你的显卡的工作速度超过显示器的任何时候,显卡将在帧缓存区中产生比显示器实际可以显示的帧数更多的帧,所以最终的结果是,当显示器在VBI期间从显卡的主缓冲区获取一帧新图像的时候,这一帧可能实际上是由两个或者更多不同的帧相互重叠在一起而产生的。在屏幕上可能表现为每当有任何运动画面出现的时候,都会略为不对齐或'部分撕裂'--因此它被称为撕裂。下面的例子就是在模拟这种情况。仔细看看小便器和水槽--其中部分由于撕裂而产生了不对齐:

 

撕裂给视觉上带来的影响主要取决于您的显卡和显示器之间的不同步到底有多严重,但通常来说,较高的FPS或更快的动作游戏中,如迅速扭转的时候,这种影响将的更明显。这是因为在这些情形下,新老帧重叠部分的内容的区别会更加明显。

撕裂并不会对您的显卡或显示器有任何损害。它只是说明了当显卡和显示器之间不同步的时候,显示器在物理上为了跟上显卡的运行速度的极限。以在60Hz的显示器上运行120FPS为例,你的显示器任何一秒种内最多只能刷新60个完整的帧,所以其他60帧几乎是被浪费了,解决办法就是许多帧相互重叠而因此产生了撕裂。因此,即使您不想要启用的VSync,您也应该在游戏图形设置中进行相关的设置,以减少您的FPS,而使之接近你的刷新率。这将帮助您得到更多的帧数并同时减少撕裂。这看起来很酷,因为您将会有很高的帧率,但是当VSync被禁用的时候,你仍然可以看到有帧数上的浪费并且会引起图像故障。

不管是CRT或LCD显示器,都会出现撕裂现象,因为两者都是为了同一兼容性目的而工作的--请参看“响应时间”这章中关于解释液晶显示器为什么会表现为CRT显示器一样。

FPS和垂直同步

当垂直同步被禁用,你的FPS和刷新率之间就没有任何关系了。这使您的显卡可以按照它想的速度那样快速的工作,将帧尽快地发送到显示器上进行显示。当然显示器是否能真正正确地显示所有这些帧则是另一回事了,事实上我们已经讨论过这个问题了。显然,如果停用VSync可能导致图形故障(graphical glitches),但这些故障可能很轻微,不能因为产生了一些撕裂而浪费显卡的性能,所以总是将VSync打开?再次强调一下,事情往往并不那么简单。

当垂直同步被启用,发生的事情就是你的显卡被告知要等待您的显示器发出已经能够显示新的一帧图像的信号后,再提供一帧新的图像。显卡不能再领先了,在它准备好后,它不能将新的帧叠加在旧的帧上了--它必须在显示器说它已经在VBI期间准白好刷新它自己后,才提供一个单一的帧。这样做首先最明显的影响是,在您的FPS将被限制在目前的刷新速率上限下。因此,如果你设置的刷新率是60赫兹,你的帧率现在最高只能达到每秒60帧。这本身是不是一个真正的问题,因为每台显示器至少可以达到在任何分辨率下60Hz的刷新率,这一点在“每秒帧数”这章已经讨论过,如果你的系统可以在一个游戏中产生持续的60FPS,那么在任何游戏中你都会得到平滑自然的动作了。

然而,有一个启用VSynci会遇到的最根本的问题,就是它会大大减少您的整体帧率,往往使得你的FPS降到刷新率50%。这是一个很难解释的概念,但还是要花时间讲解一下。我们知道,当VSync被启用的时候,你的显卡几乎就成为你的显示器的奴隶了。如果在任何时候你的FPS,略低于刷新速率的话,你的显卡绘制一帧的时间将会比您的显示器刷新本身时间要长。因此,每当第二次刷新的时候,您的显卡就错过了生产新帧的时间。这意味着,无论它的主缓冲和后备缓冲区都被填满了,新的图像信息将无处可放,因此它必须被闲置,等待下一次更新时它可以将它最近产生的帧上传到缓冲区中,并且开始将后备缓冲区清除的工作。这就造成了当你的FPS低于刷新率的时候会将近损失一半的帧率。

只要你的显卡提供帧的速度比你的显示器自动刷新的速度快,启用VSYNC就不会降低你的平均帧率。所有这一切会发生,只是由于你的FPS的最高上限被限定在屏幕的刷新率。但是,由于现代的显示器刷新率都是60Hz以上,而在大多数游戏在你需要的分辨率和设置下是很难实现稳定的60fps的,所以启用VSYNC通常最终减少您的FPS。幸运的是,因为这个问题是由于没有缓冲区可以用来填补过多的帧而产生的,所以有一个解决方案,就是使用三缓冲。然而这不是一个简单的解决办法,更详细的解释请参看“三重缓冲”部分。

所以哪个更好一些?打开还是关闭垂直同步?

VSync的存在对许多人来说确实是一个难题:垂直同步关闭时,当你的显卡和显示器不同步的时候就会产生撕裂,对一些人来说这是非常讨厌的,特别是在快速运动的游戏中。然而当VSync打开的时候,您的FPS往往会下降高达50%。使用三重缓冲系统可以解决这个问题,但也带来了潜在的问题。因此,您该如何选择呢?

很明显地,我不能给你一个尺寸适合所有人的答案,但我可以提供一些建议。首先,我强烈建议你设置VSync为应用程序'偏好'(或类似的图形卡的控制面板)。这是因为你应该根据游戏的不同来设置VSync,即最好使用游戏中的设置,不同类型的游戏将导致选择的不同。例如,较新的游戏往往拥有复杂的图形,这和你的机器上可以轻松运行的旧游戏不一样。记住,在游戏中,如果你的FPS是一直高于你设置的刷新率,那么启用VSYNC是很好,并且并不会降低FPS。

总的来说,我建议你在任何游戏中都关闭VSync,因为这是获得最快性能的最直接的方法。在你的显示器的刷新率较低或者游戏的帧率并不高的情况下,这是最简单的解决方案。您可能会注意到一些撕裂,但当你的FPS小于刷新率的时候这种现象是很小的。请记住,即使你的FPS精确匹配您的刷新率,甚至更低一些,那么一旦VSync被禁用,即显卡和显示器并非严格同步,那么撕裂(虽然并不明显)就可能发生在任何时间。

在游戏中,如果您发现撕裂很讨厌的话,你就应该启用VSync。如果您发现您的FPS减少了一半,你应该接着具体尝试启用三重缓冲,因为这可以帮助修复由于启用VSync而造成的FPS下降,但它引入了新的问题,特别是在显卡的显存较少的情况下容易引起对显卡显示故障,以及控制系统的延迟。详细情况请参考“三重缓冲”部分。

没有一个可以适用每个人的关于垂直同步的选项,这就是为什么选择启用或禁用的VSync的选项存在于显卡控制面板和游戏中。只要你了解它,您就可以在选择一个合理设置。

 

上一篇

下一篇

posted @ 2009-11-30 15:21  芈希有  阅读(581)  评论(0编辑  收藏  举报