亿万富翁秦军第二季:电脑高手来看下(追加分)

来源:百度文库 编辑:高校问答 时间:2024/05/03 06:14:02
请问三重缓冲和垂直是什么?有什么用?显卡3D平滑处理调成应用程序控制好还是用自己调节好?
请说的尽量详细些
真正的高手来好吗?不要随便复制点来哄我.说的要通俗易懂

V-Sync(垂直同步)这个功能事实由来已久,早于Voodoo2的时代V-Sync就已引入到DirectX和Windows操作系统当中,其作用主要是让显卡的运算和显示器刷新率一致以稳定输出的画面质量,而无论是微软还是游戏开发商均建议用户开启V-Sync功能,不过实际上由于启用V-Sync会大幅影响显卡性能(显示器刷新频率是多少显卡最多也只能有同等的帧数输出,而即使是Quad SLI显卡启用V-Sync后,如其显示器刷新频率只有65Hz,那么它在任何游戏中的速度最多也只有65 FPS),所以启用V-Sync由于很难体现出不同显卡的性能差异所以到目前已基本没有多少显卡测试会开启这个功能。

不过话说回来,启用V-Sync实际也有助提升游戏运行的稳定性,毕竟其启用后会强制令显卡使用Double Buffering(双重或前后置缓存,启用后会降低显卡性能)可令显卡处理数据时先将下一个需要输出的画面存入到缓存(显存)当中然后不断循环,所以其事实是牺牲了部分游戏速度而保证了画面的连贯和稳定性。但是对于现有的显卡产品来说由于其运算性能已是相当强劲在一般3D游戏运行基本也不会出现掉帧或花屏等问题(当然如果以整合图形核心玩F.E.A.R.的话那就很难说了,毕竟那肯定已经是满负荷运作的了),目前启用V-Sync似乎已是一个多余的选择,然而人类肉眼识别事物极限速度最高一般也只有75帧/秒,高于这个速度的话肉眼虽然也能看到但已基本无法作出正常反应,所以V-Sync启用与否那还是要看用户实际的使用环境而定并非单纯的显卡性能高低问题。

那么如果我们现在启用了V-Sync,在同一平台和显卡情况下其性能和未启用V-Sync时是否会有很大的损失呢?答案是相对的,由于V-Sync只限制了显卡输出的帧速而非性能,所以启用V-Sync后用户仍可在游戏中设置高分辨率及不同的AA/AF设定进行游戏,其效果理论上还是和未启用V-Sync时是一样的。不过由于V-Sync使用了Double Buffering技术对显卡的运算性能事实也是有一定程度的影响,而为了解决这个问题,无论是微软,游戏厂商还是NVIDIA和ATi这两大GPU厂商目前均已在DirectX,游戏和相关的驱动中为V-Sync引入了名为Triple Buffering(三重缓冲)的技术支持。

Triple Buffering技术如其命名一样实现原理与Double Buffering相似,具体只是在其基础上增加了一个同步的后置缓存设定,其作用可令显卡运算拥有更多的缓冲空间而令启用V-Sync后的游戏速度更为流畅(但无论如何该技术需以更多显卡缓存作为性能提升的代价),不过无论如何NVIDIA和ATi目前在其驱动中仅为OpenGL游戏开启了对Triple Buffering的支持,而在DirectX游戏下这功能是默认关闭的,我们需要使用第三方的软件才能在DirectX/Windows平台启用Triple Buffering。

下面我们就以一款名为DirectX Tweaker的软件为例子示范如何在DirectX环境下启用Triple Buffering(当然大家也可以使用其它NVIDIA或ATi的驱动调节软件做到),具体我们需要先下载这款软件,然后打开压缩包后即可双击程序使用(需先安装微软.Net Framework),而在打开程序以后我们可以看到如下图那样的软件界面:

具体正如上图,我们现在以F.E.A.R.这游戏作为例子,我们要在游戏启用Triple Buffering功能则需先在DirectX Tweaker里选择好游戏程序文件及执行路径(先按New按钮选择游戏),当确认Active(激活)项已经启动以后我们即可选择软件界面中的Module to Load选项来到一个新的界面当中:

在这个界面里我们需要找到Present Changer这个选项并启用它(打勾),然后在Count窗口里输入数字2以打开Triple Buffering,然后我们按回Projects选项回到之前的界面,按下Start开始按钮即可开始游戏。接下来我们就可以对比一下在V-Sync上使用Double Buffering和Triple Buffering在性能上有何分别,具体我们继续以F.E.A.R.作为例子,采用同一测试平台,1280x1204分辨率,0x AA/8x AF环境下进行测试,具体性能对比如下:

Double Buffering(图左)及Triple Buffering启用性能对比,后者性能无疑较前者高出不少而且平均帧速也要更快,而由于使用了V-Sync,所以最大帧速也局限在了70 FPS。

在V-Sync环境里启用Triple Buffering后对比Double Buffering在游戏性能而言无疑是有所提升的,但使用Triple Buffering技术也并非毫无代价,它需要比Double Buffering多50%的缓冲空间,所以部分性能较低的旧显卡用户在使用Triple Buffering时我们并不建议他们使用过高的AA/AF设定(毕竟这会大幅占用显卡显存令游戏速度大幅下降)。当然或许有些朋友会问现在一般主流的显卡都拥有128M甚至256M的显存容量我们还怕什么呢?那当然我们在1600x1200分辨率,32位色深下显卡事实也只占用了7.32M的显存空间,而在启用Triple Buffering后这数字也仅为21.86M对现在的显卡来说的确不算什么,但如我们启用4x FSAA后该数字会马上提升四倍达87.84M,加上现在3D游戏普遍都需要额外的材质,光影和凹凸贴图缓存空间,目前一般的显卡显存事实也有可能不够用而最终导致了性能(速度)下降,这就无疑有点得不偿失了。总结而言Triple Buffering技术的启用可帮助用户在V-Sync环境里更流畅地进行游戏,但对于不使用V-Sync的用户而言这功能也就并无太多用途了,所以Triple Buffering的使用与否目前看来似乎也是一个相对的问题需视实际使用环境而定,当然如果在使用V-Sync的前提下我们当然建议大家可考虑打开Triple Buffering这个功能。

最好的办法就是用显卡优化工具优化,不必管这么多