3D技术浅析

Author: Date: 2000年 第38期

  自从7月下旬ATI的Radeon 256推出以来,各种好评不断,特别是Radeon 256的总体性能略微胜过了NVIDIA的“一代天骄”GeForce2 GTS,为ATI赢得了久违了的成功。表面上看,售价较高的Radeon 256性能较强并不奇怪,但是要知道,GeForce2 GTS具有4条工作在200MHz的双纹理流水线、Radeon 256只有两条工作在183MHz的三纹理流水线,考虑内核的峰值渲染能力,Radeon 256仅为GeForce2 GTS的69%——  Radeon 256之所以能有这样出色的表现,主要是因为ATI在提高数据带宽方面下了很大的功夫,而这正是3D显示卡未来发展的大方向之一。
#1    超高填充率
  更高的像素填充率是3D游戏发展最直接的要求,因为越细腻、真实的图形需要越多的像素点(贴上多层纹理时就是更多的像素点)来组成,DIY玩家购买和测试显示卡时也多数注重填充率数据。现阶段的3D显示芯片的核心速度已经足够快了,不过系统外部总线带宽的制约使得芯片整体性能难以提高。虽然AGP接口从最初的1×发展到现在最高的4×以及未来更高的8×,但提高显示内存的带宽就不那么容易了。
  由于显示内存接口位数的增加是很困难的,提高接口带宽的最直接的方法就是使用更高档的内存芯片,让它们工作在更高的频率下。现在,NVIDIA的GeForce256 DDR版率先使用了150MHz的DDR SDRAM,GeForce2 GTS使用了166MHz的DDR,ATI的Radeon 256则采用了更高档(也更昂贵)的183MHz的DDR,Gainward(耕宇)计划推出一款5ns DDR显存的GeForce2 GTS,看来工作在200MHz不成问题;到这种程度,DDR显存的速度也接近极限了,因此更高速的DDR Ⅱ(第二代使用SRAM作内部缓存的DDR)和QDR(四倍数据传输率)内存也整装待发了,亦有传说说显示卡还可能采用高价的RDRAM。
  使用多芯片系统是另一个方法,因为每块芯片都连接自己的内存,几片芯片的带宽加起来就很惊人了。3dfx的Voodoo5 5500/6000就分别使用了2块/4块VSA100芯片,Matrox(预计年底发布)的G800就是2块或3块渲染芯片再加上一片T&L芯片组成,SONY新推出的GScube超级渲染引擎就使用了16套PS2的CPU和显示芯片(还有2GB的主内存、每套32MB片上显存)。尽管多芯片并行工作能提高显存带宽,可是由于传输的数据有较多重复的部分,实际的带宽提升并不是成倍的,还需要更多的显存容量,同时多芯片、大显存又造成成本高昂(所以3dfx始终不热衷使用高速、但是也高价的DDR显存)。
  还有一个更根本的方法是减少使用外部内存,方法有几个:使用纹理压缩技术减少纹理数据量(这是显存中的大头),比如现有PowerVR的VQ、S3的S3TC、DirectX中的DXTC、3dfx的FXT1以及Glide中的Narrow Channel技术,估计未来S3TC和脱胎于它的DXTC将成为主流;还有Videologic的PowerVR/KYRO系列中首先采用的将多边形排序,再去除看不见的图形的隐面去除技术,成倍减少渲染的数据量(因为现在的游戏,例如Quake 3 Arena,竟然达到了每个看得见的表面、后面有多达两层不可见的表面的地步);Radeon 256也采用了隐面去除的算法,所以性能出众,3dfx的GigaPixel设计的GP系列芯片也都是用了这一技术,NVIDIA将来的NV20/25也不得不采用该方法来节省外部带宽;还有就是特殊的方法了,如PowerVR/KYRO完全取消了显示内存中的Z-Buffer部分,Radeon 256使用的HyperZ技术(包括快速Z-Buffer清零、Z-Buffer压缩和称作等级Z-Buffer的隐面去除),但这些办法首先要保证的是兼容性。
  另外,加强芯片上的缓存还是很困难的(看看AMD拖到现在才在雷鸟和钻龙中集成了二级缓存),至今只有PS2游戏机(小型的纹理和电视分辨率下的低像素填充率根本显示不出缓存的巨大作用)和还没出来的Bitboys的Glaze3D系列采用,据推测NV20也有可能采用。
#1    T&L和FSAA
  T&L是划时代的3D技术,它让显示卡更少的依赖于CPU而存在。其实T&L技术一直在进步中,从最初CPU占用率极大的GeForce 256/Quadro到第二代GeForce2 GTS/MX、Quadro2 Pro/MXR和Radeon 256,T&L已经有了不小的变化,只是两代之间、不同公司之间的差异十分的技术化,大家更乐意比较那些峰值三角形数目罢了。
  FSAA(全屏反锯齿)是超高填充率的一个重要用途,近来FSAA成了3D市场的焦点,几乎把T&L的风头全都抢了过来。Voodoo4/5系列、GeForce/Quadro系列、Radeon 256和KYRO系列都支持FSAA,目前的反锯齿质量在4×~8×之间,据说Voodoo5 6000能达到16×。FSAA能使低分辨率的图形效果明显改善(当然倍速的数字越高越漂亮,但速度也越缓慢),即使到1024×768(甚至1280×1024)也有人能感到锯齿的影响,但是FSAA不能代替更高分辨率的清晰效果。
#1    多边形、曲面和凹凸贴图
  更多的多边形能营造出更复杂、逼真的3D场景,曲面的出现更进一步加强了这一趋势。更高的多边形生成速度是高速T&L引擎和三角形设置引擎的功劳:T&L引擎基本接替了过去CPU的工作,进行各种物体的顶点在空间变化位置的坐标转换;三角形设置引擎负责把空间坐标转化成屏幕显示出来的扫描点阵(最初也是由CPU完成的,不但缓慢而且大量占用系统总线的带宽)。Quake 3 Arena是首先利用T&L产生大量多边形的游戏,少量利用了曲面技术,但也造成了较高的硬件需求,这都是应当很快解决的问题。
  凹凸贴图(Bump Mapping)不是什么新功能,现在几乎所有的显示卡都支持一种或几种凹凸贴图功能,更复杂的环境凹凸贴图和立方环境贴图就少见得多了,如果使用得当,这些贴图特性能创造出令人身临其境的环境效果。目前最大的问题是需要等待3D游戏公司好好利用3D显示卡的各种功能,创造出大量内容和图像俱佳的游戏来。
#1    色彩和DirectX 8
  从前我们一直满足于16位高彩色的3D图像,是G200和TNT把色彩绚丽、真实的32位真彩色的3D图形带入了我们的视野。而未来的显示芯片必须改变结构来适应更细微、精确的3D色彩。
  微软试图凭借DirectX 8一举胜过OpenGL,DirectX 8在结构和内容上都做出了较大的调整:使用新的数据处理技术,顶点明暗引擎(例如Radeon 256的关键帧插值、4矩阵顶点混合以及光照模型)和像素明暗引擎(代替过去的多重纹理贴图)等;支持新的数据格式,如3D纹理(体积纹理)、多重取样渲染(就是3dfx的T-Buffer那样的叠层缓存,同是对数幅画面进行渲染、再叠加显示出来)等;采用新的图形单元,高阶单元指的是比三角形、扇形、条形更复杂的Bezier、B-Spline等曲面,还支持曲面的拆分(为三角形)、插补(顶点)等操作,另外便于绘制火、雨、雪等物体的粒子系统也首次被引入。
#1    结  语
  今后的3D系统在软、硬件的共同努力下将变得更快、更好,唯一的限制是必须在用户可以承受的价格内提供更先进、实用的产品。而且我们大家都希望在后PC时代,随着低价电脑的不断普及,主流的3D显示卡(当然其他配件也是)变得越来越便宜。