随着电脑软、硬件技术的发展,电脑三维(3D)图形显示能力越来越强,逼真的3D模拟再现能力使电脑应用越来越多地进入各个领域。然而3D图形显示从理论到具体技术处理都非常复杂,就连3D显示卡的产品规格介绍中也罗列了不少令人迷惑的术语。为此笔者试着从应用的角度去介绍有关3D图形显示和3D显示卡的部分基本内容,以供读者参考。
一、3D图形的显示
如果想了解3D显示卡的有关技术规格、专业术语的意义,首先应该了解一些电脑3D图形显示和3D图形显示卡的相关基本内容。
1.个人电脑显示的3D图形
普通个人电脑的3D图形显示有两种形式,其中最常见的是屏幕显示直接观看,另一种则必需通过特制的3D眼镜才能实现。
无需使用3D眼镜的显示是电脑在显示过程中通过对重现物体图形采取“绘图透视”、重迭“可见性”以及物体光线(发光或反光)、色彩等技术处理后再加上人们的想象力实现的。这种3D显示时在屏幕上呈现的是正常图象,我们的两只眼睛所能看到的也只能是同一幅画面。
需使用3D眼镜才能看到的3D显示实际上是仿真电脑虚拟现实显示,这种3D显示的效果更为真实,观看这种显示时需使用专用3D眼镜使左、右眼分别看到两幅不同的(模拟日常生活中人的双眼观察物体角度不同而形成)图象,然后通过我们大脑处理将两幅图象合成后而得到的“虚拟实景”图象。此时电脑在普通显示设备上显示的画面由两幅不同的图象迭加而成,如果不使用3D眼镜则无法正常观看。具备这类功能的显卡已经有华硕AGP-V3800等。
2.3D图形显示的部分基本术语
●3D坐标系
具备X、Y、Z三个坐标轴的坐标系可以用来描述3D物体在空间(相对原点)的实际位置。如果我们将显示器看成一个窗口,那么我们以屏幕的左下角为原点建立3D坐标系(见图1),这样我们可以将显示的物体在屏幕的上、下和左、右移动看成是其在Y和X座标上的移动,而将物体在前后移动时(由电脑根据绘图中物体近大远小的透视原理缩放显示的物体尺寸来产生观察效果)则看成是在Z坐标上的变化,但所有座标值为负值的象素一律不再显示。因此这种能描述物体空间位置的3D座标系是电脑进行3D图形处理中必不可少的。
在真正的图形专业领域中仅3D座标系就分几种,我们以上所说的3D座标只相当于显示该专业中的“屏幕座标系”。
●象素和图形分辨率
象素是电脑图形中具有显示地址、色彩和亮度数据并能被电脑单独进行处理的最小图象单元。电脑图形由一定数量的象素组成,在图形单位尺寸不变的情况下,构成图形的象素越多,则表示其分辨率越高。
同理,在3D图形处理中,物体模型由多边或三角形建立(见图2a),如果构成同一物体模型的多边(三角)形越多,则该3D图形模型的分辨率就越高,对实际物体外形所模拟的才更真实。
●图形显示时的彩色“位”数
电脑显示时对图形色彩的还原数量用2进制表示,以2的指数位数来比较。如2的8次方就被称为“8位”彩色,它所显示的色彩数量为256种,2的16次方被称为“16位”彩色,其所显示的色彩数量为6万4千种(通常标为64K),依此类推当显示的图形为“24位”彩色时,其色彩数量为16.8M种,也就是我们所说的真彩显示。但图形显示时的色彩位数越大,显卡处理显示时所需时间越长,占用的显存容量也越大。
●图形显示帧速率和显示器刷新频率
帧速率是表示电脑在单位时间内连续显示静态图形数量的能力,度量单位是帧/秒。
应用程序的3D图形演示和动画一样是由一幅幅(帧)略有不同的静止图片连续显示而形成的,根据人的眼睛特点,电脑只需能在每秒钟连续显示30帧以上图形就能使我们看到比较流畅的连续画面,帧速率根据所使用的3D显示卡性能和应用程序的显示数据量而定,同一块3D显示卡对不同程序的3D演示所能达到的帧速率可能是不一样的。
显示器是以每屏为一帧进行显示的,每屏通常按水平和垂直的象素点分为1024×768等,刷新频率是显示器对屏幕所显示的内容在每秒钟内重复显示的次数,通常直接以Hz为单位表示。刷新频率在显示器自身的技术性能充许范围内由显卡驱动程序确定。
图象显示的帧速率和显示器的刷新频率并不是一回事,显示器的刷新频率在由驱动程序确定后一般不受应用程序的影响,例如我们将显示器刷新频率设置在85Hz后,只要各类程序在运行过程中不改变显示驱动程序对刷新频率设置,那么显示器刷新频率就始终保持在85Hz,而此时应用程序图形显示的帧速率可能根据具体显示内容的繁简而在每秒几帧到上百帧间变化。总之,如果3D显示时图形帧速率偏低,那么显示的动画演示也只是变成慢动作而已;但如果显示器的刷新频率设置偏低,那么反应在显示上将是屏幕令人讨厌的闪烁。
●色层(Alpha)参数和Z缓冲
Z缓冲用来保存一帧3D图形中所有象素在3D坐标中的远、近(Z座标)数据。色层(Alpha)参数用来表示物体材料的透明度。Z缓冲和Alpha参数共同决定两个物体在空间接触时谁挡住谁,以及物体被挡住部分能否显示出来,显示什么色彩和强度等。
在图1中,当A(长方透明体)和B(圆不透明体)两个物体在空间位置上与我们的观看角度成一直线时,电脑则对A、B两物体的Z座标数据进行比较,由于A物体的Z参数小于B物体,所以电脑判定A物体离我们观看距离近所以显示在B物体之前,然后电脑继续对A、B两物体的Alpha参数进行分析,由于A物体的Alpha参数表示为透明体,所以电脑仍将B物体被A遮挡住部分显示出来,但遮挡部分的实际显示色彩和强度等则根据电脑对两种物体的Alpha参数处理后而定。
同样,保存Z座标数据的精度也是用2进制表示,2的指数位数越大数据越精确,这样反映物体在3维空间中的坐标位置越准确。一般3D显示卡的Z缓冲精度在16位至32位之间。
●渲染
显示芯片对象素的彩色、发光强度等进行的处理叫渲染。芯片对彩色渲染的性能可以按能处理的彩色的种类多少区分,同样也使用2进制表达,其中2的指数一般在16位至32位之间。
●贴图与纹理贴图
贴图是3D显示处理中对物体框架模型进行外表处理的主要措施。在物体模型上贴图,就象我们在扎好的灯笼框上糊纸(或其它材料)一样。例如在图2中就是主要采用贴图(当然还使用其它处理)的方法使图2(a)变成图2(b),这样才能使一个由三角形构成的模型真正象一个3D球体。
纹理贴图则是使用各种仿真自然物质材料外表的位图在多边形模型上贴图。纹理贴图采用位图形式保存和使用,一般分为1×1至2048×2048的矩形位图。显卡处理纹理贴图的尺寸越大,自然表明该显卡使用的图形芯片性能也越强。
3.电脑3D图形显示的建立
电脑3D图形的显示处理过程可以简述如下:首先系统将需要显示的图形数据通过AGP(PCI)总线发送给显示卡图形芯片,显示芯片将每帧中所有要显示的3D物体数据转换成四边或三角形并建立相应的框架模型,例如图2(a)中的球体,如果是连续图象,还必须根据下一帧该球体的座标进行相应的缩、放或旋转。当显示的同一帧画面中还有其它物体,电脑也同时为其建立相应的框架模型,同时根据画面中所有物体的Z缓冲和Alpha数据进行三维空间定位、相互间的遮挡可见性(包括透明)处理。然后,电脑将根据画面中的实际场景和物体的具体情况进行着色贴图、纹理贴图以及设置相应的光源照明来对物体表面进行渲染,最后将处理好的一帧画面的显示数据按显示分辨率规格转换成符合(逐行)扫描显示的数据存放于显存中,再继续处理下一帧画面。这时显示上(或图形芯片中)的RAMDAC(数模转换器)将显存中的显示数据逐行转换成视频模拟信号通过VGA联接插座提供给显示器进行显示。
在3D显示处理中,由于连续3D图形中的各种物体在每帧画面中的具体空间位置、形状以及表面(纹理)都在变化,因此为了能对变化中的多边形模型进行准确地贴图和纹理修饰等处理,使重现的3D图形显示更接近真实,图形处理芯片还采用了“三线性滤波”、“反锯齿”和“透视矫正”等各种技术处理以保证3D图形显示时的画面细节准确性(关系图形显示质量)。另外显示芯片还将每帧画面中基本不变的部分(如极品飞车中赛车驾驶舱内部等)保存在“模板缓冲”中,这样可以在下一帧显示时直接调用而不必重复处理,从而提高显示芯片的处理效率。
二、常见3D显示卡的技术规格及其意义
目前市场上常见的3D显示卡大多都是AGP卡,其逻辑框图见图3。以下就以各种品牌3D显卡可能涉及的技术规格、数据及其意义进行说明。
1.图形处理芯片
目前3D图形处理芯片发展的非常快,其中主要有nVIDIA公司的TNT/TNT2系列、3dfx公司的Voodoo系列、其次还有ATI公司的Rage128系列、S3公司的Savge3/4和Matrox公司的G200/400等。其中Voodoo系列的芯片主要用于3D游戏显示,其它一些芯片基本上都能兼用于3D游戏和非专业类的3D图形设计等。
图形芯片和CPU一样可以根据其处理数据时在单位时间内处理的字节数分为32位、64位或128位,芯片的运行时钟目前也已提高到140MHz左右。以上提到的几家公司的主流芯片都是128位的,和显存之间的数据总线也都是128位或双64位的。与对CPU超频的方法相似,个别电脑发烧友也是通过提高图形芯片和显存的时钟频率来对显卡进行超频。
关于以上几类图形芯片的技术性能和规格有关资料介绍的很详细,有意者可以另外查阅。
2.支持AGP2×/4×
AGP总线(扩展槽)是专门为显示卡开发的,AGP就是英语“高级图形接口”的缩写。AGP总线的特点有两点,一是数据传送(交换)率高,根据“数据带宽=总线时钟×交换的数据位数/8”的计算公式,按AGP1×、AGP2×和AGP4×的标准分别可以达到266MB(66.6×32/8)、(266×2)MB和(266×4)MB的数据带宽;二是提供了显卡上图形处理芯片直接使用系统内存的通道,以保证显示芯片在进行大容量纹理贴图所需要的显存。
正因如此,目前几乎所有的3D显示卡都支持AGP2×总线标准,少量显卡甚至已经能支持AGP4×标准,这样就可以大幅度提高显卡与系统之间的数据交换(至少在理论上如此),同时如果显卡支持AGP纹理,那么在系统内存足够多(至少在64MB以上)的前提下,显卡图形处理芯片就可以通过映射系统内存来作为纹理显存以弥补显卡板载显存容量的不足。
AGP4×扩展槽使用的工作电压是1.5V而不是原来AGP1×和AGP2×时的3.3V,但AGP4×的显卡能自动选择1.5或3.3V的工作电压,这样AGP4×的显卡仍然能在原非AGP4×的插槽中使用,而非AGP4×的显卡却不能在AGP4×的插槽中使用,所以在电脑主板上的AGP4×槽增加了一个定位缺口,相应AGP4×规格的显示卡的“金手指”也比以前AGP2×的显卡“金手指”上多了一个定位缺口(见图4)。
不过目前能支持AGP4×标准的主板芯片尚没生产出来,也就是还没有能支持AGP4×的主板存在,所以显卡支持AGP4×标准只是技术超前应用而已。
3.AGP纹理
“AGP纹理”的意义就是具备这一功能的AGP显卡可以在系统内存大于64MB以上的前提下使用系统内存来弥补显卡在处理大容量纹理贴图时所需要的显存容量。之所以有此一提是因为并不是所有使用AGP接口的显卡都具备这一功能,例如VoodooⅡ、VoodooBanshee以及其它少数显卡虽然也使用AGP总线,但并不支持AGP纹理,实际上就是显卡不能利用系统内存支持图形处理过程。
4.显存频率、总线、容量和芯片支持的最大容量
显存是显卡用来暂存已经处理好的3D图形数据和纹理贴图,显存根据使用的芯片可分为EDO的存储器RAM、SDRAM和SGRAM,其中SGRAM的访问时间最快,EDORAM的访问时间最慢。显存的工作时钟频率对显示速度有很大影响,所以目前使用的显存工作频率有的已经高达150MHz(访问时间小于7纳秒)。
显存总线宽度是指显存与图形处理芯片之间的数据总线,根据数据带宽的计算方法得知,数据总线位数越宽,数据交换率就越高,目前显卡按使用的图形芯片不同分别使用了128位和双64位两种,按时钟频率为140MHz计算,其数据交换率可高达2GBps。128位显存总线在显卡芯片和显存交换数据时读、写数据共用128位带宽;双64位显存总线在显卡芯片与显存交换数据时读、写数据分别使用64位,从理论上讲,双64位显存总线交换数据由于读、写分开所以要比128位的显存总线要快一些。
显存容量指显卡上所实际安装的显存芯片容量,仍然以“MB”表示。一般显卡上的显存实际安装容量取决于该显卡所设计支持的显示能力(取决于分辨率、色彩位数和刷新频率)。其计算方法是:
2D显示时要求:显存容量=水平分辨率×垂直分辨率×(彩色位数/8)
例如:如果显示分辨率为1024×768,色彩数量16.7M即24位彩色,所以实际要求显示卡上的显存容量至少有1024×768×(24/8)=2304KB≈2.5MB。
在使用Direct3D模式进行3D显示时,显存占用量增加到2D显示时的近3倍(还不包括纹理贴图需占用的显存在内)。此时需要在显存中保存一帧图象所有象素的显示(前台缓存)数据和同等数量的渲染(后台缓存)数据以及象素的Z缓冲数据。所以:
显存容量=显示内存+渲染显示内存+Z缓冲内存=2(水平分辨率×垂直分辨率(彩色位数/8))+显示分辨率×(Z缓冲位数/8)
例如当显示分辨率为1024×768,16.7M(24位)真彩,Z缓冲位数为32位时,要求该显卡上的显存至少在2(1024×768)×(24/8)+(1024×768)(32/8)=7680KB≈8MB,如果在安装显存时不另外增加一定的容量作为纹理显存,那么当显卡板载显存全部被显示占完之后,图形芯片就只能通过AGP总线调用系统内存为纹理内显了。所以较高档的3D显示卡上的显存容量一般都安装16MB甚至32MB的显存。
芯片支持的最大显存容量是指能安装在3D显卡上供图形芯片直接访问的显存容量,最大支持显存容量取决显卡所使用的图形处理芯片类型。目前主流图形芯片所能支持的板载显存最大容量为32MB。
显存容量指标是越大越好,因为显卡上显存的容量大,才能减少图形芯片在处理较大容量纹理贴图时显存不足而不得不通过AGP总线访问主板上系统内存的次数,以提高图形处理速度。
5.三角形生成数量
3D显示卡用来表示性能优异的主要指标中有一项是“每秒种可生成多少万个三角形”,或“每秒可处理多少三角形”。从以上我们得知,电脑显示3D图形的过程中首先是用多边形(三角形是多边形中最简单的)建立3维模型,然后再进行着色等其它处理,物体模型组成的三角形数量多少将直接影响重现后物体外观的真实性,显卡每秒生成三角形的数量越多,也就能在保障图形显示帧速率的前提下为物体模型建立更多的三角形,以提高3D模型的分辨率。
6.象素填充率和纹理贴图量
象素填充率也是衡量3D显示卡性能的的主要指标之一。象素填充率决定了3D图形显示时可能达到的最高帧速率,直接影响3D显卡运行时的显示速度。
我们可以根据某3D显卡的所提供的象素填充率来计算其固定分辨率显示情况下可能达到的最大帧速率。计算方法是:帧速率=象素填充率/显示分辨率。例如,某显卡的最高象素填充率为每秒1.4亿,那么当这块显卡进行分辨率为1024×768的显示时,其最高帧速率=每秒象素填充率/显示分辨率=140000000/1024×768=178.02帧/秒。而当显卡按所能支持的最高分辨率1920×1200进行显示时,其可能达到的图形帧速率最高只有60.76帧/秒了。
有些显卡没有提供象素填充率,但提供了纹理贴图量,比如说每秒能处理多少MB的纹理贴图等,其意义和数据都与象素填充率相近。
7.单周期多重贴图
这里周期是指显卡图形芯片的时钟周期,单周期多重纹理贴图是指图形芯片能在一个时钟周期内采用多种纹理位图混合后再贴在物体表面,这样可以得到更为真实的3D显示效果。但由于多重纹理贴图需要图形芯片多次操作,因此必然会降低显示处理速度,所以一般只在图形芯片具备两条图形处理流水线(指显示芯片从建立多边形3D模型到处理完成后暂存于显存中的过程)的显卡中才使用这类技术。
8.RAMDAC频率和显示数据带宽
RAMDAC的任务就是将显存中的数字信号转换成一般显示设备所能使用的模拟信号。它的工作频率(数据带宽)将直接影响显卡所能支持的最大显示分辨率。对RAMDAC的数据带宽要求可以用公式:RAMDAC数据带宽=显示分辨率×显示刷新频率×带宽系数。式中带宽系数可在1.2~1.5之间选择。
假如某显卡支持1920×1440、60Hz刷新频率的显示模式,那么在带宽系数为1.4的前提下要求该显卡的RAMDAC数据带宽为:1920×1440×60×1.4=232.24MHz。而该显卡实际使用的是250MHz的RAMDAC芯片,所以可以满足该分辨率下的模拟显示信号转换速度(带宽)。
9.支持的各种图形处理技术
在不少3D显示卡产品介绍中,可能会强调自己使用了诸如“单周期多重纹理”、“三线性滤波”或“异向性滤波”等技术。采用这些技术的目的都是为了使显卡在处理3D图形时对象素的贴图和渲染时数据更精确从而得到更精美的3D显示效果。不过这些技术应用对显示速度有影响,如果显卡的图形芯片性能不够先进将很难做到图形显示速度和优质兼得。
10.支持的各种API
这部分内容是说明显卡所支持的图形API(应用程序接口)有哪些,这些将根据显卡所有使用的图形处理芯片而定,但通常都能支持DirectX或还支持OpenGL等,使用Voodoo系列芯片的还支持专用的Glide。显卡能支持的图形API越多,表明该显卡的功能越强,应用范围也越广。
11.DVD播放补偿
在使用电脑播放MPEG-II标准压缩的DVD影碟时,需要对重现的图象因压缩而造成的信号损失进行相应的补偿,这需要进行大量的数学运算,如果显卡不支持这一功能,必然需要由CPU来完成这一工作,因此在CPU性能不够强大的电脑上就不太可能得到令人满意的DVD播放效果。
12.最高解析度
这项指标实际上就是我们常说的“最大分辨率”。是指在显示器性能符合要求的前提下,该显卡所能支持的(按规定频率进行刷新)最高图形分辨率(水平点×垂直点)。例如某一款显卡声称自己支持显示器在1920×1200(刷新频率为75Hz)运行。在这项指标中“刷新频率”很重要,因为不同的显卡可能都支持高达1920×1200的分辨率,但它们在这一分辨率显示时的刷新频率可能不同。在同一分辨率显示下支持的显示器刷新频率越高,证明该显卡性能越好。
13.显示输出接口
显示输出接口是指显卡所提供输出信号种类及插座标准。一般的显卡都具有VGA(15针)的插座,用于联接所有使用VGA接口的模拟显示设备;有的显卡除了VGA插座外另外提供了联接普通音象设备的电视视频信号插座(Video或S-Video)。现在更先进的显卡开始提供DFP(数字平板式显示设备)插座以联接内部没有数模转换器的LCD(液晶)或其它平板显示器。这种DFP插座与原VGA插座不同,有明显的区别,也不会插错。
14.关于显卡BIOS和驱动程序
3D显示卡上除了图形处理芯片(RAMDAC大都整合在图形芯片内)还有一片BIOS芯片,它基本上都使用可擦写的FlashROM(闪存)保存BIOS数据。显卡的BIOS与其驱动程序一样重要,对显卡的性能发挥很关键。BIOS和驱动程序可以根据情况经常更新,因此在选择显卡时在满足性能、价格等其它条件外应尽量选择在因特网上有主页的公司产品,以保证显卡日后的升级程序来源。
以上关于电脑3D显示和3D显示卡的介绍纯属管见和引玉,仅供一般非专业人士参考,需对3D图形显示进一步学习、研究的朋友可另外查阅有关专业性资料。