Hardware 版 (精华区)
发信人: littlejoe (小乔), 信区: Hardware
标 题: 深入剖析GeForce256
发信站: 紫 丁 香 (Fri Apr 7 14:06:28 2000), 转信
GeForce256问世已近半年,然而很多朋友对其的认识仍然停留在一些表面性能规格上,
因而无法从根本上解决实际使用中遇到的困惑和迷思。为使朋友们对GeForce256这一革
命性的3D加速芯片有更加深入的认识,本文将用鲜为人知的第一手资料揭示GeForce256
的技术精粹。
一、GeForce256芯片独特的内部流水线结构与硬件T&L。GeForce256芯片的3D图形流
水线由以下三大部分组成:1、几何转换与光源处理:将三维空间的三角形顶点位置、摄
影机位置以及光源位置转换成以顶点值表示的二维坐标。2、三角形生成:将以浮点形式
存在的顶点数据转化为能够为渲染引擎所使用的固定数据(当然还包括Z缓冲和模板缓冲
的计算)。3、光栅化,即渲染:将经过三角形生成的数据进行渲染,包括雾化、混和等
一些特殊处理,最终将包含颜色值的每个像素点数据写入帧缓存。GeForce256最具革命
性的突破在于第一次使显示芯片具备了完整的几何转换和光源处理能力,这一点不仅以
前众多民用3D加速芯片没有能够做到,即使专业3D加速卡也不具备这一功能。以前一些
介绍专业3D加速卡的文章中常可以看到“某某加速卡具有独立的几何处理器”、“专业
3D加速卡的三角形处理能力概念与民用卡是不一样的”等等似是而非的说法。其实,专
业3D加速卡高成本、专业性能是由很多复杂因素决定的,但单从硬件T&L的角度来看,专
业3D加速卡并不如GeForce256,早一点的3Dlabs Glint GMX上的Gamma几何处理器实际上
只是独立的三角形生成器而已,根本不具备T&L能力。新一些的诸如AGI的Tornado 3000
、Intense 3D的Wildcat 4110等加速卡也只是具有部分辅助T&L能力。如果专业3D软件能
够充分支持GeForce256的硬件T&L,将会大大缓解CPU运算负担、加快处理速度。
二、GeForce256的三角形引擎。TNT2与Ultra的峰值三角形填充率均为6.5M/s,GeF
orce256与Qudro分别为12.5M/s和16.5M/s。可以看出,在没有提高默认时钟频率的情况
下GeForce256将三角形填充率提高了近一倍,另一个显著改进是,GeForce256的峰值三
角形填充率随时钟频率提高呈线性增长,而TNT2的峰值三角形填充率与时钟频率无关,
因此在CPU与显存带宽不成为瓶颈的情况下,提高GeForce256芯片频率带来的性能提升将
高于TNT2。虽然GeForce256三角形填充率很高,但在实际应用中却大打折扣。以Q3A为例
,GeForce256 DDR在1024×768×32bit特效全开情况下可以达到60FPS左右的速度,而Q
3A的标准场景每一帧使用多边形数量不超过一万个,所以在上述情况中,GeForce256的
实际三角形填充率只有60万每秒,这主要是由于受芯片渲染引擎和纹理缓存的瓶颈制约
,分辨率、图像细节与色深越高,这种制约就越明显。
三、GeForce256硬件T&L的局限性。GeForce256的T&L速度与三角形引擎的速度是相
匹配的。大家知道在支持硬件T&L的3D Marks 2000有一项专门的三角形填充率测试,在
该项测试中,即使在单光源情况下,GeForce256的三角形填充率也只有5M/s不到,随着
光源数量增加填充率进一步下降。这显然不是由于显存带宽或者CPU瓶颈造成的,因为即
使降低分辨率和色深也改变不了三角形填充率。这种情况的产生有两个原因:1、GeFor
ce256硬件T&L的内在局限性。首先,GeForce256的光源处理引擎是整个芯片中速度最慢
的一部分,特别是对多光源的处理能力较弱;其次,实验表明,GeForce256的T&L引擎向
三角形生成器传输处理好的顶点数据速度受一个内部带宽限制,这个带宽为350MB/s,一
旦顶点数据流量超过这一带宽,填充率将大幅下降。(事实上为解决这一问题,GeForc
e256在T&L与三角形引擎之间设置了缓存,该缓存能够以FIFO存储并读写16个顶点值,以
降低光源处理较慢对填充率的影响)2、3D API和应用程序的影响。通过前面的讨论大家
已经知道GeForce256的T&L引擎是以顶点值的方式处理三角形数据的,如果孤立地处理每
一个三角形,那么所需处理的顶点值将为:三角形数量X3,但事实上由于3D画面中三角
形是相互连接的,有公共顶点,因此完全可以通过优化算法大大减少顶点值的传输量,
这种算法称作Triangle Strip(三角形带)。大家所熟悉的Q3A就支持独立三角形和str
ips两种运算模式,在控制台中利用r_drawstrips 1,vid_restart命令就可开启strips
运算模式,其结果是速度明显下降。因为如果显卡本身没有T&L能力,这些strips的复杂
运算将由CPU通过软件方式来完成,加大了CPU负担。GeForce256的T&L引擎不仅支持str
ips,而且还支持更高级的indexed strips(指数化三角形带),在3D API与应用程序的
适当支持下完全可以很好地发挥硬件T&L的能力。3D Marks 2000作为一种通用的测试工
具,不可能为特定显卡作优化,GeForce256在其中的优异表现主要是由高填充率带来的
。3D Marks 2000并没有很好地支持GeForce256的strips运算功能和顶点缓存机制,造成
了实际三角形填充率大大低于理论值的情况。当然不可否认的是,350MB/s的内部传输瓶
颈以及光源处理能力不足仍然是GeForce256的内在局限。
四、展望nVidia的后续产品,NV15和NV20在T&L方面很可能将进行以下改进:提高芯
片内数据带宽、加强光源处理速度、改进顶点缓存机制使之更易被更多的软件支持,随
着硬件T&L机能的改进以及其越来越广泛地被3D API与应用程序所支持,3D游戏在500Mh
z与1000Mhz的CPU上获得相近FPS的时代已经不遥远了。
----------------------------------------------------------------------------
--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.239.21]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.084毫秒