NV40是如何在Doom3中获胜的

互联网 | 编辑: 2004-10-12 00:00:00 返回原文

在几乎所有的显卡评测中,Nvidia在DOOM3中的优势已是不争的事实。这些测试结果很快被掺入了商业广告的成分,它们正逐渐改变人们选择显卡的倾向。GeForce 6800系列在DOOM3中保持着20-25%的优势,测试资料显示,NV40在DOOM3中处理能力比R420高出50%!

前言

本文作者:迈克尔 家缘硬件网

在几乎所有的显卡评测中,Nvidia在DOOM3中的优势已是不争的事实。这些测试结果很快被掺入了商业广告的成分,它们正逐渐改变人们选择显卡的倾向。GeForce 6800系列在DOOM3中保持着20-25%的优势,测试资料显示,NV40在DOOM3中处理能力比R420高出50%!

但GeForce 6800系列在其他游戏中的表现并非同样抢眼。在Radeon 9800 /Pro/XT完败GeForceFX 5900/5950之后,Nvidia和ATI新一代显卡芯片的较量几乎打了个平手。GeForce 6800在多数应用中和X800平分秋色,像DOOM3这样的大胜真是非常罕见的。在Nvidia的大获全胜的背后,究竟隐藏了什么鲜为人知的秘密呢?

John Carmack在DOOM3中为Geforce显卡做了特殊的优化?

首先,最容易想到的一个解释是,John Carmack在DOOM3中为Geforce显卡做了特殊的优化,同时限制了Radeon显卡的能力。但这种说法明显是牵强附会的,我们看到,John Carmack表示id同样在为提高Radeon的表现做着不懈的努力。

第二种解释认为N卡独有的特性起了作用,例如NV35独有的Ultra Shadow技术。因此有人断言NV40强大的shader处理能力是它取胜的关键,但是这也会造成显卡的频率难以提升。更何况,从DOOM3对shader能力的要求来讲,目前的DX9.0显卡都可以很好的满足,甚至像Radeon 8500这样的DirectX 8.1显卡也可以在单重渲染下完成光影计算,更不用说任何一款DirectX9级别的显卡了。

多重渲染会降低画面质量(即降低每帧的缓冲精度),同时在显存中进行附加的读写循环,这也对性能有所影响。只有GeForce1到GeForce4 Ti系列的显卡能强制用多重渲染进行单光源计算。DOOM3对阴影的计算需要用到更多的渲染通道,这对CPU和系统带宽也提出了更高的要求。我们知道,GeForce 6800系列在pixel shader上算法更为强大,这让它可以处理更长的shader指令,但在DOOM3中,我们很难找到这样的指令。因此在DOOM3中,Radeon X800凭借这高频率同样可以有出色的表现,而GeForce 6800则在处理效率上占据优势。

GeForce 6800在处理效率上占据优势

由于没有细节的测试资料,今天我们只能在宏观上进行分析。有一个观点非常肯定:尽管GeForce 6800在DOOM3中能很好发挥其强大的shader能力,但其独有的Shader Model 3.0却丝毫没有用武之地。

Z-buffer在Doom3同样非常重要,通过事先确定Z座标,然后再上色渲染,这样可以避免渲染“不可视”的无效像素,大大节省显卡的资源。

从GeForce3开始,Nvidia的显卡以二维矩阵(包括2×2个像素)为单位,在进入流水线渲染时,首先对它们的可视性进行判断。GeForce3和GeForceFX能在每个时钟频率处理4个二维矩阵,也就是16个像素。Geforce 6800每个时钟频率能处理16个二维矩阵,达到了64个像素,虽然看上去提升很大,但ATI早在Radeon 9700身上就做到了这一点。Radeon显卡采用了分等级的预判机制,首先先处理8x8个像素,如果有可视像素存在,那再分成4x4个像素进行判断,最后才以二维矩阵为单位进行计算。R420/423 GPU每个时钟频率最多能处理256像素,这也是目前的最高水准。

总的来讲,Radeon显卡在Z-buffer算法上更为强大,但这并不是万无一失的,DOOM3便对这种算法免疫。在DOOM3中,像素只能以二维矩阵为单位进行预判,在4倍AA下,Radeon显卡的性能下降就会更大,而eForce FX/6系列所受影响就相对较小。

Z-buffer预判机制起决定作用

几乎在每一款游戏中,显卡都会对那些“不可视”的像素进行处理。在渲染过程中,一些像素将被重复渲染,在DOOM3中,重复渲染的像素数量是你最终看到的两倍。因此,DOOM3中内建了Z-buffer机制,那些能最快剔除无效像素的显卡将占据优势。尽管Radeon的预判算法更好,但英雄无用武之地,GeForce 6800的算法更为稳定和实用。

ATI的预判算法更好,但DOOM3中英雄无用武之地

Z-buffer预判机制起决定作用

下面再进行仔细的分析,在渲染过程中,显卡对无效像素进行剔除时,Radeon的2×2像素流水线每次能剔除一个二维矩阵,而16线管的R420/423能分出四条2×2像素流水线,也就是每个时钟频率能剔除4个二维矩阵,也就是16个像素。相反,GeForce 6800每个时钟频率能处理16个二维矩阵,也就是64个像素,比起X800,NV40在DOOM3下在Z-buffer预判上快了四倍。由于这种机制仅仅在渲染过程中存在,其他时候,R420在开启HyperZ功能时,最大处理像素单元会上升到8×8矩阵,每个时钟频率处理256个像素。

Radeon X800 Pro只有三条2×2像素流水线,在HyperZ不能起作用的渲染过程中,每个时钟频率只能剔除12个像素。

从4XAA的角度来看,Z-Cull(Z轴精简)和Stencil-Cull(模板精简)机制也让NV40占了上风。Stencil-Cull可以节省光源计算,这从NV40,甚至是NV35就开始存在,在Geforce显卡中,Stencil-Cull在进入像素流水线前就计算完成,因此它和AA模式是独立无关的。

对于配备12线管的GeForce 6800,ROP单元并没有像NV40设计的那样和像素流水线绑定在一起,它仍然可以用16个ROP单元进行计算。尽管开启了4倍全屏抗锯齿,但GeForce 6800每个时钟频率仍然可以处理8个像素,而同样12线管的Radeon X800 Pro只能处理6个像素。

在Z/Stencil计算中,NV40还是占到了上风

总而言之,R420在Z/Stencil计算中,剔除像素的速度比NV40更慢,这影响到了最终的渲染速度。尽管NV40的峰值性能不及R420,但ATI强大的HierarchicalZ算法无用武之地,从整体来讲,NV40还是占到了上风。

NV40在DOOM3中ROP的使用率

NV40: 在DOOM3中ROP使用效率更高

在阴影渲染过程中,上面的论述是非常适用的,也就是说,ATI强大Z-buffer预判机制在光源计算中无法发挥威力。但在颜色渲染过程中,ATI的Z-buffer预判算法就不受约束了,可惜的是,这时预判速度的快慢已经并不重要了,对像素着色的时间占据了主导。打个比方,如果对一个像素进行着色需要花费16个频率周期,如果Nvidia的显卡在预判速度上落后四倍甚至更多,那最多也就多花1-4个频率周期,这种差别是很小的。不要忘了NV40在每个时钟频率的处理效率比R420/R423更高,这弥补了NV40在预判算法上的不足。

高处理效率弥补了NV40在预判算法上的不足

在阴影渲染中的Z/Stencil过程则正好相反,这些过程本身很快,但剔除无效像素是瓶颈所在,如果对算法进行优化,Z/Stencil单元的处理能力将会有较大的提升。

顺便一提的是,Nvidia曾传出消息,由于NV30/NV35的Z/Stencil能力不足,它们只能在每个时钟频率渲染4个像素。为了在开启全屏抗锯齿时不至于导致性能大幅下降,Nvidia为这些芯片每条流水线配备了两个ROP单元,在8个ROP单元的帮助下,NV30/35每个时钟频率能实现8组Z/Stencil计算。

但这些在Radeon 9700身上同样实现了,它内建了8条流水线管,每条线管也配备了2个ROP单元,但第二个ROP单元只有在全屏抗锯齿下才被起用。理论上,这会让R3XX系列的全屏抗锯齿性能更强,但实际上,Radeon在DOOM3中AA性能不佳。可能在着色渲染上,Radeon花费了更多的时间,这抵消了ROP的优势。

NV40拥有16个ROP单元,以每条2×2像素流水线为单位分为4组。在需要的情况下,NV40的ROP单元还能实现alpha混合和附加的Z/Stencil功能,这让它可以每个时钟频率处理32个Z/Stencil运算。而R420/R423只有在开启全屏抗锯齿下才能达到这个水准。尽管在DOOM3中,Z/Stencil可能会让ROP有较长时间的闲置,但高效的ROP让NV40速度优势更加明显。

总结

总结:

我们可以看到,理论上拥有很高算法优势的Radeon显卡在DOOM3中收到了诸多限制。

Radeon的Z-buffer从更大的像素矩阵开始计算,但在DOOM3中一次性剔除8x8像素矩阵的几率很小,这反而将大了Radeon显卡的计算量,让实际处理速度大大低于理论值。

DOOM3在渲染过程中,由于要不断改变Z-test值,这限制了ATI的Z-buffer预判算法的发挥。在DOOM3中,ATI擅长的HierZ算法在某些渲染中完全失效。这也导致了在4x/6x AA下,Radeon显卡的性能下降较大。

所有这些因素都会Radeon显卡不利,而且DOOM3偏执的仅仅采用了bumpmapping技术。无效像素的剔除对性能影响是很大的,越早将无效像素剔除,显卡便能获得更多的时间对有效像素进行渲染。Geforce显卡很早就开始在这方面下功夫,GeForce4 Ti在全屏抗锯齿下采用了Early-Z算法,这可以降低性能衰减。因此,GeForce4 Ti在DOOM3下的表现并不太差。

从NV35开始,Nvidia因为那些“DOOM3特性”而得益,但较低的频率限制了它们的发挥。如果DOOM3允许对具体的硬件特性进行改变,我们可以看到显卡特性对DOOM3更细节的影响。另外值得注意的是,DOOM3中的阴影渲染对CPU有着超高的要求,为了流畅运行DOOM3,升级CPU是非常必要的。

Nvidia强大的驱动性能也起到了关键的作用,从Q3A开始,Nvidia显卡就表现很强的OpenGL性能,Nvidia看起来拥有一套独特的替换shader的方法,这让画质不受影响的情况下,游戏速度得到很大提升。

从技术角度来看,Radeon显然不适合DOOM3,这个结论是令人吃惊的,John Carmack和id似乎应该给个说法。在实际应用中,一块Radeon 9700还是可以让人较为尽兴的享受DOOM3的。

从技术角度来看,Radeon显然不适合DOOM3

从高端系统角度出发,GeForce 6800系列才是DOOM3的最佳搭配。尽管ATI在不断优化驱动,但我们对X800在DOOM3中的前途表示怀疑。NV40在DOOM3中仍保留着很多潜力,就像Quake III那样,Nvidia优化的功力是非常强大的。

我们今天的分析更加肯定了Nvidia在Doom3中的领先优势,也许在那些采用DOOM3引擎的游戏中,情况会依旧如此,但也不排除新状况的发生。

返回原文

本文导航

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑