xfxff 发表于 2004-4-10 12:57:43

《反恐精英CS》关于垂直同步相关问题

事先声明这篇文章是我前一段时间从网上摘录的,感觉不错就拿来和朋友们一起分享,至于作者是谁我也记不清了。
―――――――――――――――――――――――――――――――――――――――

垂直同步, 到底什么是垂直同步?
几乎所有试图研究cs的fps的朋友 都将不可避免的 面对这样一个名词----垂直同步

到所有的cs专业论坛去问如何提高fps 得到的绝大多数回答也基本都是----关闭垂直同步
当大家关闭了垂直同步 得到了较高一些的fps后 你知道为什么么?
今天 飞扬和大家一起探讨这个看似简单的名词 垂直同步

本文 与 cs关系不是非常紧密 请朋友们选择阅读

1。要知道什么是垂直同步 必须要先明白显示器的工作原理
显示器上的所有图像都是一线一线的扫描上去的,无论是隔行扫描还是逐行扫描,显示器 都有2种同步参数 -----水平同步 和垂直同步

2。啥叫水平同步?啥叫垂直同步?
垂直和水平是CRT中两个基本的同步信号,水平同步信号决定了CRT画出一条横越屏幕线的时间,垂直同步信号决定了CRT从屏幕顶部画到底部,再返回原始位置的时间
,而恰恰是垂直同步代表着CRT显示器的刷新率水平!

3。关键部分
为什么是否关闭垂直同步信号会影响我们cs中的fps数值?
道理一点都不复杂,首先我们平时运行**作系统一般屏幕刷新率是多少?大概一般都是在85上下吧,那么显卡就会每按照85的频率时间来发送一个垂直同步信号,信号和信号的时间间隔是85的分辨率所写一屏图像时间。

如果我们选择 等待垂直同步信号(也就是我们平时所说的 垂直同步打开)
那么在游戏中 或许 强劲的显卡迅速的绘制完一屏的图像,但是没有垂直同步信号的到达,显卡无法绘制下一屏,只有等85单位的信号到达 才可以绘制。这样 fps自然要受到**作系统刷新率运行值的制约。

而如果我们选择 不等待垂直同步信号(也就是我们平时所说 关闭垂直同步)
那么游戏中 作完一屏画面 显卡和显示器 无需等待垂直同步信号 就可以开始下一屏图像的绘制 自然可以完全发挥显卡的实力。

但是 但是 但是 不要忘记 正是因为垂直同步的存在 才能使得游戏进程和显示器刷新率同步 使得画面平滑 使得画面稳定。 取消了垂直同步信号 固然可以换来更快的速度 但是在图像的连续性上 性能势必打折扣。
这也正是很多朋友 抱怨 关闭垂直后 发现画面不连续的 理论原因!
在Window 2000或XP下,打开垂直同步并使FPS超过60的方法
  以前,对于在Windows 2000或Windows XP上玩CS的人来说,是否开显卡的垂直同步是个两难的选择。不开垂直同步可以得到更高的FPS,但画面老是抖动,打时间长了眼睛很累;开了垂直同步,FPS就肯定超不过60。我自己为这事苦恼过很长时间,一直没找到好的解决办法。后来苦心钻研了一些资料后才找到问题所在。可能有人已经知道怎么解决了,但我相信还有很多朋友不知道该怎么办,因此把解决办法公布,希望能对大家有所帮助。

  在Window 2000或XP下,开垂直同步后FPS超不过60的原因是:Window 2000或XP在这种情况下会把游戏中的FPS设定为Windows的缺省值60,再好的配置也没用。

  解决这个问题的办法很多,可以用第三方程序如PowerStrip等,但这种办法需要外挂程序,可能不安全。最近,我终于找到最根本的解决办法,就是在直接在注册表里把Windows的缺省值改成100(或更高,只要你的显示器支持就可以)。请千万注意:在修改注册表前,一定要确认你的显示器在不同的分辨率下所支持的最高刷新频率。比如,我的电脑在1024*768的分辨率下能达到100Hz的刷新频率,我玩CS也是在这个分辨率下玩,所以,我才敢把Windows的缺省值设为100。另外也请注意,这样修改完注册表后,你电脑桌面的分辨率和刷新频率也会被限定为这个数值。

修改注册表的方法如下:

Open regedit and find this key:
  运行regedit命令进入注册表修改界面;
进入,打开"Class"键,你将看到一大排的键,类似于

{4D36E96E-E325-11CE....}

  如果你选中其中一个键你将可以看到一些键值,如"Default"、"Class"等,并指明设备的种类,如"Modem", "Keyboards"等,逐个打开这些{4D36E96E-E325-11CE....}键,直到看到"Class"的键值是"Monitor"。好的,我们已经找到控制显示器的注册信息了,接下来就是在这里面该缺省值了。

  打开你刚找到的那个键,里面至少应该有1个键,叫做"0000",这里也可能有其他的键,如"0001"、"0002"等。如果里面只有个"0000",那就简单了,你直接在"0000"里按下面的方法修改就可以了。如果有多个键,你就必须逐个找出来哪个键是控制你的显示器的,方法是逐个键地按照下面说的“修改缺省值的**作”进行修改,修改后立即用下面说的“检查缺省值是否修改”的方法检查,如果相符就说明这个键是控制你显示器的,否则就不是。

“修改缺省值的**作”方法:

  打开"0000"或你找到的其他的键,你可以看到里面有个"MODES"键,打开它你将看到一个键显示的是你的显示器的最大分辨率,如"1600,1200",现在假设你要在1024*768的分辨率下达到100Hz的刷新率,那么**作如下:在"MODES"下增加一个键叫做"1024,768",在"1024,768"键里增加一个键叫做"Mode1",键值设为"100-100,100-100"。修改缺省值得**作完毕。

“检查缺省值是否修改”的方法:

  进入"Display properties -> Setting",看分辨率是否为你设定的值,如果不是那么说明你修改的那个类似于"0000"的键不是现在控制你显示器的键,,如果分辨率是你设定的值(如1024*768),那么再进"Advanced -> Monitor"里面看显示器的刷新频率是不是也是你设定的值,如果是,选中"Hide all unsupported modes"后你的刷新频率应该只有一个值可以选择,就是你设定的值(如100Hz)。这说明你修改得正确。

总结:

  修改后,你进入游戏后无论游戏是用Direct3D还是OpenGL,你的FPS都可以超过60了。这个修改方法对Windows 2000和Windows XP都有效。

homework 发表于 2004-4-10 13:00:27

第一个

没时间看

但是也要顶一下


顶顶顶

w@ter 发表于 2004-4-10 15:10:12

顶一下再看 ^_^

musicman 发表于 2004-4-12 21:14:46

好文章顶!!!

DreamZSW 发表于 2004-4-12 21:45:24

在别的版子里问过同样的问题的人请进来看看!

天使禁猎区 发表于 2004-4-13 08:45:16

呵呵,我修改过,成功了,觉得1024.768不舒服,索性用800.600

DreamZSW 发表于 2004-4-13 17:15:42

Post by 天使禁猎区
呵呵,我修改过,成功了,觉得1024.768不舒服,索性用800.600

呵呵,我用的是1600*1200!我的显卡顶的住,G3Ti500....
用这个分辨率打头巨爽!!! :2:

firescript 发表于 2004-4-15 00:19:17

我的800*600支持 100HZ
在"MODES"下增加一个键叫做"800,600",在"800,600"键里增加一个键叫做"Mode1",键值设为"100-100,100-100"。修改缺省值得**作完毕。

这样做对吧?

我重点是想问一下 这样做对电脑有伤害么?
:faint::faint::faint::faint::faint:

xfxff 发表于 2004-4-15 18:20:55

如果你的显卡或显示器不支持800×600,100Hz那是肯定有伤害的。我想你的设备不至于那么古老吧

coolcooljeff 发表于 2004-4-17 14:16:39

好像讲过不少遍这个问题了
页: [1]
查看完整版本: 《反恐精英CS》关于垂直同步相关问题