搜索
查看: 3257|回复: 8

不关闭垂直同步fps也能过60的办法

[复制链接]
发表于 2006-12-23 19:48:29 | 显示全部楼层 |阅读模式 来自 中国–山东–济南
几乎所有试图研究CS的FPS的朋友都将不可避免的面对这样一个名词——垂直同步,到所有的CS专业论坛去问如何提高FPS,得到的绝大多数回答也基本都是——关闭垂直同步,当大家关闭了垂直同步,得到了较高一FPS后,你知道是为什么么?今天,飞扬就和大家一起来探讨这个看似简单的名词——垂直同步。
(本文与cs关系不是非常紧密,请朋友们选择阅读)1、要知道什么是垂直同步,必须要先明白显示器的工作原理,显示器上的所有图像都是一线一线的扫描上去的,无论是隔行扫描还是逐行扫描,显示器都有两种同步参数——水平同步和垂直同步。
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。另外也请注意,这样修改完注册表后,你电脑桌面的分辨率和刷新频率也会被限定为这个数值。
修改注册表的方法如下:
  运行regedit命令进入注册表修改界面;
进入[HKEY_LOCAL_MACHINE\system\CurentControlSet\Control\Class],打开"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"。修改缺省值得操作完毕。(备注:设为100时必须你的显示器本身在1024*768的分辨率下能达到100的刷新率,如果你的显示器在1024*768下只能支持到85,那么不要把这个值改为100,否则容易引起显示器故障)
      “检查缺省值是否修改”的方法:
  进入"Display properties -> Setting",看分辨率是否为你设定的值,如果不是那么说明你修改的那个类似于"0000"的键不是现在控制你显示器的键,如果分辨率是你设定的值(如1024*768),那么再进"Advanced -> Monitor"里面看显示器的刷新频率是不是也是你设定的值,如果是,选中"Hide all unsupported modes"后你的刷新频率应该只有一个值可以选择,就是你设定的值(如100Hz),这说明你修改得正确。

总结:
  修改后,你进入游戏后无论游戏是用Direct3D还是OpenGL,你的FPS都可以超过60了。这个修改方法对Windows 2000和Windows XP都有效。
发表于 2006-12-25 16:28:16 | 显示全部楼层 来自 中国–河北–秦皇岛

回复: 不关闭垂直同步fps也能过60的办法

-freq 100 直接解决    你的太麻烦了 -_-!
回复

使用道具 举报

发表于 2006-12-25 17:15:52 | 显示全部楼层 来自 中国–广东–广州

回复: 不关闭垂直同步fps也能过60的办法

二楼说的是什么方法啊?能说清楚点吗?
回复

使用道具 举报

发表于 2006-12-25 17:39:25 | 显示全部楼层 来自 中国–陕西–西安

回复: 不关闭垂直同步fps也能过60的办法

2楼说的是加参数。。。。。。。。。。cstrike.exe 后面的参数
回复

使用道具 举报

发表于 2006-12-26 12:38:43 | 显示全部楼层 来自 中国–广西–贵港

回复: 不关闭垂直同步fps也能过60的办法

就算CS不关垂直同步也可以,但是很多别的fps游戏都要关效果才好的
回复

使用道具 举报

发表于 2006-12-26 13:29:14 | 显示全部楼层 来自 中国–黑龙江–绥化–肇东市

回复: 不关闭垂直同步fps也能过60的办法

-freq 100 支持!改来改去太麻烦。直接加参数多好
回复

使用道具 举报

发表于 2007-1-3 19:27:18 | 显示全部楼层 来自 中国–河北–秦皇岛

回复: 不关闭垂直同步fps也能过60的办法

大哥,你火星来的吧!
回复

使用道具 举报

发表于 2007-1-4 14:58:08 | 显示全部楼层 来自 中国–辽宁–锦州

回复: 不关闭垂直同步fps也能过60的办法

收藏。。。。。。。。。。。。。。。。。。。。。
回复

使用道具 举报

发表于 2007-1-5 16:45:17 | 显示全部楼层 来自 中国–广东–广州

回复: 不关闭垂直同步fps也能过60的办法

可以吗?我现在才60了...晚上试试看了.谢谢了.
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表