3D加速芯片的过去与未来 朱云 1999年 第22期 17版 自1997年3D图形加速卡开始批量上市以来,硬件3D处理技术进入广大PC用户的视野已经有两年了。现在,3D技术已经渗透到PC系统的方方面面,不仅显示卡和游戏言必称3D,连CPU也逐渐“3D化”,甚至连操作系统也要将3D作为一个重要部分了。回顾大众化的3D技术刚刚出现时,S3 Virge芯片那简陋的3D特性和缓慢的速度,再看看刚刚上市的TNT2和Voodoo3,这天文数字般的处理速度以及几乎无所不包的3D特效,我们不得不感慨万千——技术的发展真是太快了,尤其是在市场需求和竞争的推动下。 #1 历史回顾 按目前主流的说法,我们可以用第一代(不过笔者更倾向称之为史前世代)来称呼那些还不是很实用的3D加速芯片。当年2D显示芯片霸主S3推出的S3 Virge系列产品并不是最早的,但正是S3 Virge打开了硬件3D加速市场的大门,尽管它很快就丢掉了这个市场。那时很少有人了解什么是真正的硬件3D加速,于是号称支持DirectX的Trident 9685凭借低廉的售价大行其道,但是用户一旦明白过来,他们就抛弃了Trident,即使是Trident后来推出的与S3 Vrige系列同档次的Trident 9750/9850也只能作为最廉价的3D芯片了。ATI的Rage I/Ⅱ则多见于品牌机中,性能与S3 Vrige不相上下,也未能占领新兴的3D市场。实际上,这期间还有很多我们在国内市场上没有见到过的产品,如那时名不见经传的NVIDIA推出了集成声音处理功能的3D芯片NV1,由于声音与图形部分相互牵制而很不成功;Rendition的头一个产品Verite 1000据称是Voodoo之前最好的产品,但在市场上也不成功;3Dlabs的Permedia虽然至今仍可以用来进行3D绘图,但没有被主流的游戏3D市场接纳;Matrox的Millenium和Mystique虽然名声很好、价钱很贵,但最多只能同S3 Virge相比的3D性能,使它们只能作为最好的2D显示卡。 真正的第一代(按目前主流的说法应是第二代)3D加速芯片应从3Dfx公司在1997年推出的Voodoo芯片组算起,正是Voodoo漂亮的图像效果和够快的速度使人们第一次真正认同了硬件3D加速的意义,从而推动了3D市场的繁荣。3Dfx替Voodoo准备的Glide API,为游戏开发商们提供了优秀的开发平台,成为了当时在难以实现的OpenGL和效果太差的DirectX之间的一个较好的折衷选择,Voodoo+Glide不但为我们带来了大量高质量的3D游戏,也将3Dfx这个本来不起眼的小公司推上了3D加速芯片市场的王座。很快其他公司也赶了上来:NVIDIA推出了异常成功的Riva 128,以DirectX为主API,尽管图像质量不如Voodoo,但它的2D/3D速度最快,使NVIDIA一举成为游戏用3D加速芯片的第二选择;ATI则有了性能与Voodoo不相上下的2D/3D芯片Rage Pro(Turbo),因为主要被品牌机使用,所以零售市场上鲜有该种芯片的显示卡产品;3Dlabs的2D/3D芯片Permedia 2以OpenGL为主API,开始主要用在3D设计领域,虽然3D游戏性能较差,但通过不断升级驱动程序,最终成为样样都行的多面手,一直生存至今;Rendition的Verite 2x00系列一开始就是Voodoo的强劲对手,但是由于其2D部分甚至比3Dfx的2D/3D芯片组Voodoo Rush更差,又没有很快地升级换代,所以逐渐退出了主流市场;NEC/Videologic的PowerVR PCX2也是同Voodoo类似的纯3D芯片,由于使用了将显示屏幕分块渲染的原理,所以占用较少的显示内存和带宽,性能足以同Voodoo竞争,只可惜由于使用了软件分块引擎,使它比较依赖于CPU性能;Intel的i740姗姗来迟,虽然速度比Riva 128差、3D图形质量中等,但凭借Intel的号召力和便宜的价格而一举夺下了不小的低端市场。 3Dfx的Voodoo 2在1998年初上市,成为第二代(按目前主流的说法应是第三代)3D加速芯片问世的一个里程碑,复杂的Voodoo 2纯3D芯片组在当时各方面都所向无敌,SLI连接的双Voodoo 2甚至将部分纪录保持到今年年初。推出Voodoo2之后,3Dfx的努力方向是将3D芯片组集成为单芯片,然后再集成2D部分,以降低成本、拓展应用领域,可是等2D/3D全集成的Voodoo Banshee上市时,3Dfx相对其他公司的优势已经不大了。其他公司由于在1998年初落后3Dfx较远,不得不制定性能大大超过Voodoo 2的研制计划,而且只能等到1998年下半年出货:较早公布计划的NVIDIA的Riva TNT打算超过SLI的双Voodoo 2,但最终上市时只比Voodoo 2和Banshee快了一点,图形质量倒是超过了3Dfx的产品;Matrox先用3D性能较差的G100应付市场,然后率先推出第二代产品G200,画质比Voodoo 2更好,但速度慢了一些,而且游戏支持稍差;S3用来打翻身仗的Savage 3D则毛病很多,经过长期改进驱动程序和BIOS,直到最近性能才稳定下来,但由于价格比较便宜,不乏竞争力;ATI的Rage 128则来得较晚,到今年年初才上市,增强型Rage 128 Pro则更接近下一代产品,由于部分品牌机已经开始使用Riva TNT,Rage 128只能固守ATI传统的苹果机市场和剩余的PC品牌机市场;Blade 3D是Trident刚推出不久的便宜芯片,性能只能超过Voodoo,面向低端市场;Intel很快就要上市的i752/754也应算是第二代产品,设计得较晚也较有技巧,可能是未来的低端主流。 现在正在上市或将要上市的新一代产品同前一代并无革命性的不同,只是在性能和速度方面又上了一个台阶,我们不妨暂且称之为第三代(按目前主流的说法应是第四代)3D加速芯片。3Dfx的Voodoo 3首先出现,速度的确很快,但不支持这一代产品均有的24/32位的渲染和Z-buffer精度,看起来在这一轮3Dfx有些落后,只能寄希望于下一代产品;有希望成为新3D霸主的NVIDIA后劲十足,在创纪录的Riva TNT2上市的同时,又在开发带有几何加速的Riva TNT3;Matrox也不甘人后,G200还未完全推广就又设计出G400,是TNT2的强劲对手,另外G400还有增强版G400 MAX;NEC/Videologic的PowerVR 250系列的“历史”比Riva TNT还长,但由于优先保障了对SEGA的DreamCast家用游戏机的供货,最近才上市,但测试结果表明,由于PowerVR 250改进后的分块渲染引擎十分强大,即使最普通版的PowerVR 250也可以超过Voodoo 3现在的最高型号3500,同最高纪录保持者Riva TNT2的Ultra版不相上下,所以可看作是相当强劲的第三代产品;S3公司继Savage 3D后再接再厉,很快又推出了价廉物美、竞争力极强的Savage 4系列;千呼万唤才刚刚出来的3Dlabs Permedia 3现在不再拥有最高的性能指标,但3Dlabs传统的专业设计市场保证了它的基本需求,以专业标准和技术精雕细琢出的产品很可能有不少过人之处,而且应该像Permedia 2那样长寿;一蹶不振的Rendition仍未推出新产品,但凭借Verite 4400E或其他“秘密武器”一鸣惊人的可能性也很大。 #1 发展规律 通过回顾3D加速芯片的历史,我们可以了解这个新兴的市场怎样从无到有飞速地发展起来,成为IT行业最热门的领域之一,从中我们也可以找出一些规律:如速度飞速增长、质量不断提高、结构日趋复杂、价格不断降低等。 对于3D芯片来说,速度就是生命。从最初的每秒十多万像素、几万三角形的初级阶段到如今Riva TNT2的每秒3亿像素、900万三角形,只经过了短短的两年左右的时间。可以说是以几何级数增长,从过去2D芯片的每年200%提高到现在的每年400%以上。关于3D图形芯片的速度提高过程如^221701a^。   3D图形质量也是非常重要的,这同3D加速芯片不断增加的各种3D特性有关,也与3D API的支持是分不开的。最初Glide专用API可以提供令人满意的3D图像质量,那时的OpenGL太专业化,而DirectX太简陋。现在DirectX 6的效果已经同Glide不相上下,OpenGL的大多数特性在普通3D芯片上都获得了支持,当DirectX 8出现时,OpenGL将同它合并成为统一的高质量的3D API——Fahrenhest。3D加速芯片最初只支持简单的平面涂色、Gourand涂色和较小的纹理数据,后来逐渐加入了半透明混合、二线性过滤、三线性过滤。现在最新的芯片可以进行各向异性过滤、巨大纹理贴图、压缩纹理贴图、全屏幕抗锯齿、凹凸贴图以及各种特殊的具有很强表现力的效果。   3D加速芯片的复杂结构是实现高速度、高质量3D图形的基础。在“史前世代”简单的3D加速结构的基础上,先是加快了芯片的时钟频率以提高速度,并添上了一些必要的3D特性以改善图像质量,有部分芯片还集成了三角形设置引擎以减少CPU和系统总线的的负担,这就是第一代(按目前主流的说法应是第二代)3D芯片的结构。在此基础上,再将时钟频率提升到制造工艺所能承受的极限,添加比较完整的3D特性组,有些芯片用并行处理机制提高速度,有些则采用更新的工作原理,并且几乎所有芯片都集成了高性能的三角形设置引擎,采用了AGP 2×总线和128位显示内存接口,这时的第二代3D芯片(按目前主流的说法应是第三代)的处理速度与图形质量都达到了大多数用户可以接受的程度。第三代产品(按目前主流的说法应是第四代)相对第二代改进不多,一方面采用新的生产工艺进一步提升时钟频率,整体上采用极为复杂的结构,大量使用并行处理,采用AGP 4×接口,拥有近乎全面的3D特性组。而会在今年年底出现的第四代3D加速芯片(按目前主流的说法应是第五代)将集成几何加速部分,已不再受CPU浮点能力的制约。更复杂、更高频率的结构将使复杂曲面等尖端的3D效果成为可能,3D图形将更加接近于真实的世界。关于3D图形处理流程,可以参见^221701b^。   3D加速卡的价格一向是用户最关心的项目之一。随着3D加速芯片和显示内存的制造技术不断提高,成本不断降低,它们的最终售价不论性能和容量如何提高,总是会降到同一水准上来,于是3D加速卡的价格也会最终降低到某一标准。在国内,刚上市的3D显示卡一般会在1000元以上,有时甚至会在2000元以上,这时只有“大款”才会去尝鲜。随后,因为更强大的产品上市,价格会逐渐下跌到1000元以下,于是,一些硬件发烧友和手头宽裕的新装机者就会开始购买。再跌到400~700元时,该显示卡如果没有被淘汰就会进入显示卡市场的主流阶段,销量较大。再跌下去不到400元时,应该认为这种卡已经过时,只有手头紧的或不关心3D的朋友才会去买它。显示卡产品的降价速度一向不输于CPU,这表明我们总是可以用同样的价格买到更好的产品。而产品入市时的最初定价反映了整个市场的价格水平:Voodoo和Voodoo 2刚上市时都是卖2000多元,Riva TNT上市时是1800元,到现在Voodoo 3上市则是1500元以下了,TNT 2也是1500元左右。这表明整个3D显示卡市场正在逐渐向中低价位靠拢,而且随着技术的不断进步,3D加速卡的价格将变得越来越平易近人。 #1 展望未来   关于3D图形加速芯片的未来,现在我们已经可以看到一些迹象与趋势,其中最最吸引人的当数几何加速的硬件化。以往3D图形处理的前一半几何计算部分,几乎全部是由CPU经过大量的浮点运算来完成的(只有少数专业场合使用专用的硬连线几何加速器来实现),尽管有了AMD的3DNow!和Intel的SSE指令集来并行执行浮点指令,CPU的处理能力仍不能满足日益增加的3D图形处理任务的需要,因此在3D加速芯片或芯片组中添入硬件几何加速功能就变得越来越紧迫。   几何加速又可以分为坐标变换和光源效果两部分运算过程。通过用3D芯片实现坐标变换,可以使CPU从繁重的空间坐标计算中脱身出来,从而可以处理更复杂的场景和情节,粗略算来,大约可以使游戏中使用的几何图形在现有基础上增加10到20倍;另外还可以节省大量的系统带宽,因为CPU只要直接将数据传给3D芯片而不必在CPU和系统内存之间多次交换。由3D芯片进行光源效果处理则可以大大提高总体性能和图形质量:现有的大多数3D游戏都是用复杂的纹理混合功能来模拟出光源的效果,只使用1到2个真正的光源,因为暂时光源效果计算仍是CPU密集型操作。一旦应用了3D硬件加速的光源效果,我们就可以较容易地得到2到4个光源,甚至有可能多达8个光源,虽然利用纹理贴图方法制造出的模拟光源不会很快消失,但我们将会看到灿烂夺目的真实光源被普遍使用。现在的API中只有OpenGL支持硬件坐标变换和光源效果加速,而将在今年秋天出现的DirectX 7也将添加同样的几何加速支持。在芯片设计上,NVIDIA的Riva TNT3将几何加速部分集成在同一块3D芯片内,而3Dfx为了避免失误,据说将在新一代“Napalm”芯片组中加入一块单独的几何加速芯片。   更高的渲染质量也是3D硬件的一个顺理成章的发展。很有可能将来的3D芯片将有4个或更多的并行操作3D渲染流水线,而更复杂的结构要求更细微的半导体制造工艺,更高级的工艺带来的是更高的时钟频率,总体的结果是大大提高的像素填充速度,也就意味着更加精细漂亮的图像。可编程纹理则是一个创造性的概念,让我们可以即时计算出千变万化的物体表面纹理,尽管其运算量是非常大的。而噪声纹理可以产生不规则的甚至“脏”的纹理效果,能够给人以更真实的感觉。模板缓存是DirectX 6中就已经支持的效果,将来可以被广泛地用于生成部分空间的阴影、雾化等效果。被称作“穷人的纹理压缩”的硬件调色板功能,通过为不同的纹理提供单独的调色板,从而每种纹理只需使用256种色彩,能够大大减少纹理数据量。所有这些新的渲染效果不但需要3D芯片有更强的处理能力,而且也需要更大的显示内存,因此今后的显示卡拥有64MB显存将是家常便饭。   更好的场景控制使我们能够利用3D图形生成异常复杂的场景,例如有12000匹马和170000士兵参加的滑铁卢战役。当Fahrencheit API随着DirectX 8的出现成为现实,我们就能在主流PC系统中见到称作“scenegraph”的复杂场景控制功能。   在更远的将来,我们将会期待更多的三角形产生率和更高的像素填充率,于是将会得到更复杂的阴影、雾化,更漂亮真实的画面,从远到近连续变化的纹理,更细腻的抗锯齿功能,甚至数千粒子组成的火焰等物体。但是,由于集成电路的晶体管数不可能无限增加,几年后也许我们将看到3D芯片的性能接近极限,照片级的真实3D效果也许仍将非常遥远。   回首3D图形加速技术的来时路,面对多少产品的成败,多少厂商的沉浮,还有多少用户的失望与希望,我们还能多说些什么呢?“青山依旧在,几度夕阳红”,我们的目标永远在前方。