1、3D 图形加速卡术语随着 3D 技术的发展,3D 应用软件(尤其是 3D 游戏软件)的大量涌现,使得3D 图形加速卡成为大家谈论的一个热点,近年来,随着硬件技术的高速发展,以及微软 Direct 3D 的出台,更加快了 3D 图形加速卡大量面市的步伐。以往只能在高档图形工作站和专用电脑中见到的这类图形卡,今天已逐渐走进我们的办公室和家庭。相信 3D 图形加速卡很快便会成为继声音卡和 CDROM 之后的多媒体电脑的又一标准配置。我们在了解 3D 加速卡及其相关技术时,往往会频繁遇到一些抽象的术语,本期特推出“3D 图形加速卡术语大放送”一文,帮助你快速跨入 3D 之门。3D API (3D 应用
2、程序接口)API 是 Application Programming Interface 的缩写。API 是许多程序的集合,一个 3D API 能让编程人员所设计的 3D 软件只要调用 API 内的程序,API就会自动和硬件的驱动程序沟通,启动 3D 芯片内强大的 3D 图形处理功能。目前几种主流的 3D API 有 Direct X、OpenGL、3DR、 RenserWare 、 BRender 、 Glide/3Dfx 及 QuickDraw 3D Rave 等。Direct X微软公司专为 PC 游戏开发的 API , 特点是:比较容易控制,可令显示卡发挥不同的功能,与 Windows
3、 95 和 Windows NT 操作系统兼容性好, 而且目前基本上是免费使用的(以后就难说了)。在 Direct X 5. 0 中共分六个部分:DirectDraw 管理游戏的视频输出、Direct3D 管理游戏的 3D 图形、DirectPlay 管理游戏的网络通讯、 DirectSound 管理游戏的声音输出、 DirectInput 管理游戏的摇杆控制、DirectSetup 管理游戏的安装。OpenGL (开放式图形界面)由 Silicon Graphics 公司(即大名鼎鼎的 SGI)开发,能够在 Windows 95、Windows NT、 Macos 、Beos、OS/2、以及
4、 Unix 上应用的 API。 它除了提供许多图形运算功能外,也提供了不少图形处理功能。由于 OpenGL 起步较早,一直用于高档图形工作站,其 3D 图形功能很强,超过 Direct X 许多,可最大限度地发挥 WooDoo、POWER VR 等超级 3D 芯片的巨大潜力。因此许多游戏开发公司和图形软件开发公司强烈要求微软公司在 Window 的下一个版本中加入对OpenGL 的支持。目前,这一合理要求已经被微软公司接受,他们将在 Windows 98 中同时支持 Direct X 和 OpenGL。ALPHA BIENDING (ALPHA 值后处理)简单地说这是一种让 3D 物件产生透明
5、感的技术。一个在屏幕上显示的 3D物件,每个像素中通常附有红、绿、蓝(RGB)三组数值。若 3D 环境中允许像素能拥有一组 Alpha 值,我们就称它拥有一个 Alpha Channel。Alpha 值记载像素的透明度。这样一来使得每一个物件都可以拥有不同的透明程度。Alpha blending 这个功能,就是处理两个物件在屏幕画面上叠加的时候,将 Alpha 值考虑在内, 使其呈现接近真实世界的效果。Antialiasing (抗锯齿处理)应用调色技术将图形边缘的“锯齿”缓和,在视觉上得到一种平滑边缘的效果。DEPTH CUEING (景深效果处理)景深效果处理则是当物件远离观测者时,降低物
6、件颜色与亮度的一项功能。例如,当一个物体离我们的视线越来越远时,它看起来就会越来越模糊。FOG EFFECT (雾化效果处理)顾名思义,它的功能就是制造一块指定的区域笼罩在一股烟雾弥漫之中的效果,程序设计师可以自由调整雾的范围、程度、颜色等参数,再交由 3D 芯片负责将结果计算出来。Depth Cueing 和 Fog Effect 功能, 对于决定“立体空间”的外观显示有相当大的帮助,让虚拟出来的世界更加接近真实的世界。HEIDIHeidi 的定位在开发 3D 图形应用的许多方面, 它扮演着协调动作的重要角色,是由 Autodesk 公司提出来的规格。就图形处理工作的管理方面,如算图、着色、
7、复制等作业,以及内部的信息传输,Heidi 提供给应用软件一种动态化组织架构的管理方式。目前,采用 Heidi 系统的应用程序,有 Kinetix 的 3D Studio MAX 动画制作程序,和 Autodesk 为 AutoCAD R13 开发的 WHIP 加速驱动程序。MIP MAPPING (贴图处理)在显示 3D 图像时,MIP 贴图处理非常重要。 这项材质贴图的技术,是依据不同精度的要求,而使用不同版本的材质图样进行贴图。当物件移近或远离观测者时,会在物体表面贴上相对应的材质图案,于是让物体呈现出更加真实的效果。例如:物件逐渐远离,依据这种处理方式,程序就会贴上较单纯、细致度较低的
8、材质图样,进而提高图形处理的整体效率。SHADING:FLAT,GOURAUD,AND TEXTURE MAPPING (着色处理:平面着色、 高氏着色及材质贴图)绝大多数的 3D 物体是由多边形(polygon)所构成的,它们都必须经过某些着色处理,才不会以线结构(wire frame)的面目示人。Flat shading 是最简单,也是最快速的着色方法,每个多边形都会被指定一个单一且没有变化的颜色。这种方法虽然会产生出不真实的效果,但非常适用于快速成像作业(quick rendering)及其它要求速度重于细致度的场合。Gouraud Shading 就稍为好一点。在多边形上的每一点都会被
9、指定一组色调(hue)值, 同时将多边形着上平顺的渐层色。TEXTURE MAPPING (材质贴图)是在物体着色方面最引人注目,也是最拟真的方法,同时也多为目前的游戏软件所采用。一张平面图像(可以是数字化图像、小图标或点阵位图)会被贴到多边形上。VIDEO TEXTURE MAPPING (动态材质贴图)是目前最好的材质贴图效果,具有此种功能的图形图像加速卡,采用高速的图像处理方式,将一段连续的图像(可能是即时运算或来自一个 AVI 或 MPEG的档案)以材质的方法处理,然后贴到 3D 物件的表面上去。例如在赛车游戏中,在挡风玻璃上贴一段连续的天空动画,就能做出类似即时反射环境贴图的效果。P
10、ERSPECTIVE CORRECTION (透视角修正处理)要让一个经过材质贴图处理的 3D 物件具备相当真实的外貌,这项处理不可缺少。它采用数学运算的方式,以确保贴在物件上的部分影像图会向透视的消失方向贴出正确的收敛。由于这项工作十分依赖处理器,所以对新一代的 3D 加速器而言,这个功能也是相当重要。有了它,3D 加速器才能保持图形的真实效果。我们以风靡世界的 3D 冒险游戏古墓丽影 2中的图形为例,在图一中由于关闭了 3D 加速卡上“透视角修正”功能,人物所站的石板地面线条出现严重的弯曲变形;而图二中打开了 3D 加速卡上“透视角修正”功能,石板地面线条便保持了真实的效果。TEXTURE
11、 MAP INTERPOLATION (材质影像插补处理即滤化处理)当材质被贴到屏幕所显示的一个 3D 模型上时,材质处理器必需决定每个图素要贴到的像素位置。由于材质是 2D 图片,而模型是 3D 物件,所以图素的范围与像素范围通常不能很好吻合。此时要解决这个像素的贴图问题,就得用插补处理的方式来解决。而这种处理的方式共分三种:Nearest Neighbor,Bilinear 以及 Trilinear。NEAEST NEIGHBOR (近邻取样处理)是一种较简单的材质影像插补的处理方式。使用包含像素最多部份的图素来贴图。这种处理方式速度比较快,常被用于 3D 游戏开发,不过图形的品质较差。B
12、ILINEAR LNTERPOLATION (双线性插补处理)是一种较好的材质影像插补处理方式,能够先找出最近像素的四个图素,然后在它们之间作差补效果,最后产生的结果才会被贴到像素的位置上,这样,可以避免看到大块的像素呈现到萤幕上,就像在观察近距离图形时常常出现的“马赛克”现象。这种处理方式适用于有一定景深的静态影像,不过无法提供影像的最佳品质,同时也不适用于移动中的物件。我们还是采用古墓丽影2的图像来说明:在图三中,由于关闭了 3D 加速卡上的“双线性插补”功能,在人物身后左边的木桩上出现了明显的“马赛克”现象。而在图四中,我们将3D 加速卡上“双线性插补”功能打开,于是木桩上的“马赛克”现
13、象消失了。TRILNEAR LNTERPOLATION (三线性插补处理)是一种更复杂的材质影像插补处理方式。会用到相当多的材质影像,而每张的大小恰好会是另一张的四分之一。例如:有一张材质影像是 512512 个图素,第二张就会是 256256 个图素,第三张便是 128128 个图素等等,最小的一张是 11,使用这些多重解析度的材质影像,当遇到场景较深、较大时(如飞行模拟),就能提供高品质的贴图效果。三线性插补处理比双线性处理需要更大的计算量,而且需要更大的存储器时钟带宽。但是 Trilinear Interpolation 可以提供最高的贴图品质。FRAME RATE (画面更新率)荧光屏
14、上画面更新的速度,其单位为 FPS(帧每秒),FPS 越高画面越流畅。FRAME BUFFER (图形画面缓冲区)该区域主要用于存储可显示的图形信息, 它决定了可显示的最高分辨率与最大彩色数量。DOPTH BUFFERING (双重缓冲区处理)绝大多数支持 OpenGL 的 3D 加速卡都会提供两组图形画面信息,一组显示,另一组备用,这两组图形画面信息通常被看着 front buffer 和 back buffer。这项功能让显示卡用 front buffer 存放正在显示的这格画面,而同时下一格画面已经在 back buffer 待命。 然后显示卡将两个 buffer 互换,back buf
15、fer的画面显示出来,且同时再在 front buffer 中画好下一格待命,如此形成一种互补的工作方式,迅速对画面的快速改变做出反应。RAMDAC (存储器数模转换速度)表示将存储器图形数据转换成显示器上可见的像素光点的转换速度, 单位为 MHz。其工作速度越高,频带越宽,高分辨率时的画面质量越好。Z BUFFER (Z 缓存)在 3D 环境中,每个像素会利用一组数据资料用来定义像素在显示时的纵深度(即 Z 轴座标值)。Z Buffer 所用的位数越高, 则代表该显示卡所提供的物件纵深感也越精确。一般的 3D 加速卡仅能支持到 16 位或 24 位的 Z Buffer,对于普通的 3D 模型而言这也算足够了,不过高级的 3D 卡更可支持到32 位的 Z Buffer。对一个含有很多物体连接的较复杂的 3D 模型,能拥有较多的位数来表现深度感是相当重要的,能避免闪烁现象发生。ZBUFFERING (Z 缓存处理)ZBuffering 是在为物件进行着色时, 执行“隐藏面消除”工作的一项技术,使隐藏物件背后的部份不会被显示出来。