3D API 能让 编程人员所设计的 3D 软件只要调用其 API 内的程序, 从而让 API 自动和硬件的驱动程序沟 通,启 动 3D 芯片内强大的 3D 图形处理功能,从而大幅度地提高了 3D 程序的设计效率。几乎所 有的 3D 加 速芯片都有自己专用的 3D API,目前普遍应用的 3D API 有 DirectX、OpenGL、Glide、Heidi 等 。 Direct 3D 微软公司于 1996 年为 PC 开发的 API,与 Windows 95 、Windows NT 和 Power Mac 操作系 统兼容性 好,可绕过图形显示接口(GDI)直接进行支持该 API 的各种硬件的底层操作,大大提高了 游戏 的运行速度,而且目前基本上是免费使用的。由于要考虑与各方面的兼容性,DirectX 用起 来 比较麻烦、在执行效率上也未见得最优,在实际 3DS MAX 的运用中效果一般,还会发生显 示错误 ,不过总比用软件加速快。 OpenGL (开放式图形接口) 是由 SGI 公司开发的 IRIS GL 演变而来的复杂 3D 图形设计的标准应用程序接口。 它的特点 是可 以在不同的平台之间进行移植;还可以在客户机/服务器系统中并行工作。效率远比 Direct 3D 高,所以是各 3D 游戏开发商优先选用的 3D API。不过,这样一来就使得许多精美的 3D 游戏在 刚推出时,只支持 3Dfx 公司的 VOODOO 系列 3D 加速卡,而其它类型的 3D 加速卡则要等 待其生产厂 商提供该游戏的补丁程序。由于游戏用的 3D 加速卡提供的 OpenGL 库都不完整,因此,在 3DS MAX 中也会发生显示错误,但要比 Direct 3D 强多了! Heidi 又称为 Quick Draw 3D,是由 Autodesk 公司提出来的规格。它是采用纯粹的立即模式接口, 能 够直接对图形硬件进行控制;可以调用所有显示卡的硬件加速功能。目前,采用 Heidi 系统 的 应用程序包括 3D Studio MAX 动画制作程序、 Auto CAD 和 3D Studio VIZ 等软件。 Autodesk 公司 为这些软件单独开发 WHIP 加速驱动程序,因此性能优异是非常明显的! Glide 是由 3dfx 公司开发的 Voodoo 系列专用的 3D API。 它是第一个 PC 游戏领域中得到广泛应用 的程 序接口,它的最大特点是易用和稳定。随着 D3D 和 OpenGL 的兴起,已逐渐失去了原来的 地位。 PowerSGL 是 NEC 公司 PowerVR 系列芯片专用的程序接口。 3D 特性: Alpha Blending (α混合) 简单地说这是一种让 3D 物件产生透明感的技术。 屏幕上显示的 3D 物件,每个像素中有红、 绿 、蓝三组数值。若 3D 环境中允许像素能拥有一组α值,我们就称它拥有一个α通道。α值 的内 容,是记载像素的透明度。这样一来使得每一个物件都可以拥有不同的透明程度。比如说, 玻 璃会拥有很高的透明度,而一块木头可能就没什么透明度可言。α混合这个功能,就是处理 两 个物件在萤幕画面上叠加的时候,还会将α值列入考虑,使其呈现接近真实物件的效果。 Fog Effect (雾化效果) 雾化效果是 3D 的比较常见的特性,在游戏中见到的烟雾、爆炸火焰以及白云等效果都是雾 化 的结果。 它的功能就是制造一块指定的区域笼罩在一股烟雾弥漫之中的效果, 这样可以保证 远 景的真实性,而且也减小了 3D 图形的渲染工作量。 Attenuation (衰减) 在真实世界中, 光线的强度会随距离的增大而递减。 这是因为受到了空气中微粒的衍射影响 ,而在 3D Studio MAX 中,场景处于理想的“真空”中,理论上无这种现象出现。但这种 现象 与现实世界不符,因此为了达到模拟真实的效果,在灯光中加入该选项,就能人为的产生这 种 效果! Perspective Correction (透视角修正处理) 它是采用数学运算的方式, 以确保贴在物件上的部分影像图, 会向透视的消失方向贴出正确 的收敛。 Anti-aliasing (抗锯齿处理) 简单地说主要是应用调色技术将图形边缘的“锯齿”缓和,边缘更平滑。抗锯齿是相对来来 说较复杂的技术,一直是高档加速卡的一个主要特征。目前的低档 3D 加速卡大多不支持反 锯齿 。 Adaptive Degradation (显示适度降级) 在处理复杂的场景时,当用户调整摄象机,由于需要计算的物体过多,不能很流畅的完整整 个动态显示过程,影响了显示速度。为了避免这种现象的出现,当打开在 3D Studio MAX 中打 开 Adaptive Degradation 时,系统自动把场景中的物体以简化方式显示,以加快运算速度, 当 然如果你用的是 2-3 万的专业显卡,完全不用理会! Z-Buffer (Z 缓存) Z-buffering 是在为物件进行着色时,执行“隐藏面消除”工作的一项技术,所以隐藏物件背 后的部分就不会被显示出来。 在 3D 环境中每个像素中会利用一组数据资料来定义像素在显示时的纵深度(即 Z 轴座标 值)? ? Buffer 所用的位数越高,则代表该显示卡所提供的物件纵深感也越精确。目前的 3D 加 速卡一 般都可支持 16 位的 Z Buffer,新推出的一些高级的卡已经可支持到 32 位的 Z Buffer。对一 个含 有很多物体连接的较复杂 3D 模型而言,能拥有较多的位数来表现深度感是相当重要的事 情,3D Studio MAX 最高支持 64 位的 Z-buffer。 W-Buffer (W 缓存) 与 Z-buffer 作用相似,但精度更高,作用范围更小,可更为细致的对物体位置进行处理。 G-Buffer (G 缓存) G-buffering 是一种在 Video Post 中基于图象过滤和图层事件中可使用的物体蒙板的一种着 色技术。用户可以通过标记物体 ID 或材质 ID 来得到专用的图象通道! A-Buffer (A 缓存) 采用超级采样方式来解决锯齿问题。具体方法是:使用多次渲染场景,并使每次渲染的图象 位置轻微的移动,当整个渲染过程完结后,再把所有图象叠加起来,由于每个图象的位置不 同 ,正好可以填补图象之间的间隙。该效果支持区域景深、柔光、运动模糊等特效。由于该方 式 对系统要求过高,因此只限于高端图形工作站。 T-Buffer (T 缓存) 由 3DFX 所公布的一种类似于 A 缓存的效果,但运算上大大简化。支持全场景抗锯齿、运 动模糊 、焦点模糊、柔光和反射效果。 Double Buffering (双重缓冲区处理) 绝大多数可支持 OpenGl 的 3D 加速卡都会提供两组图形画面信息。这两组图形画面信息通 常被 看着“前台缓存”和“后台缓存” 。显示卡用“前台缓存”存放正在显示的这格画面,而同 时 下一格画面已经在“后台缓存”待命。然后显示卡会将两个缓存互换, “后台缓存”的画面 会 显示出来,且同时再于“前台缓存”中画好下一格待命,如此形成一种互补的工作方式不断 地 进行,以很快的速度对画面的改变做出反应。 IK (反向运动) Inverse kinematics(IK)反向运动是使用计算父物体的位移和运动方向,从而将所得信息继 承给其子物体的一种物理运动方式。 Kinematic Chain (正向链接运动) Kinematic Chain 正向链接运动是定义一个单一层级分支,使其分支下的子物体沿父物体的 链 接点运动。 NURBS Non-Uniform Rational B-Splines(NURBS┦且恢纸换ナ?D 模型曲线&表面技术。现? 贜 URBS 已经是 3D 造型业的标准了。 Mapping(贴图处理): Texture Mapping (纹理贴图) 在物体着色方面最引人注意、也是最拟真的方法,同时也多为目前的游戏软件所采用。一张 平面图像(可以是数字化枷瘛⑿⊥急昊虻阏笪煌迹┗岜惶?蕉啾咝紊稀@?纾?谌?涤蜗 返? 开发上,可用这项技术来绘制轮胎胎面及车体着装。 Mip Mapping (Mip 贴图) 这项材质贴图的技术,是依据不同精度的要求,而使用不同版本的材质图样进行贴图。例如 :当物体移近使用者时,程序会在物体表面贴上较精细、清晰度较高的材质图案,于是让物 体 呈现出更高层、更加真实的效果;而当物体远离使用者时,程序就会贴上较单纯、清晰度较 低 的材质图样,进而提升图形处理的整体效率。LOD(细节水平)是协调纹理像素和实际像素之 间 关系的一个标准。一般用于中、低档显卡中。 Bump Mapping (凹凸贴图) 这是一种在 3D 场景中模拟粗糙外表面的技术。将深度的变化保存到一张贴图中,然后再对 3D 模型进行标准的混合贴图处理, 即可得到具有凹凸感的表面效果。 一般这种特效只有高档显 示 卡支持。 (注:GeForce256 支持的只是显示和演算该效果,不是生成特效) Video Texture Mapping ( 视频材质贴图) 这是目前最好的材质贴图效果。 具有此种功能的图形图像加速卡, 采用高速的图像处理方式 ,将一段连续的图像(可能是即时运算或来自一个 AVI 或 MPEG 的档案)以材质的方法处 理,然 后贴到 3D 物件的表面上去。 Texture Map Interpolation (材质影像过滤处理) 当材质被贴到屏幕所显示的一个 3D 模型上时,材质处理器必须决定哪个图素要贴在哪个像 素 的位置。由于材质是 2D 图片,而模型是 3D 物件,所以通常图素的范围与像素范围不会是 恰好相 同的。此时要解决这个像素的贴图问题,就得用插补处理的方式来解决。而这种处理的方式 共 分三种: “近邻取样”“双线过滤”“三线过滤”以及“各向异性过滤” 、 、 。 1.Nearest Neighbor (近邻取样) 又被称为 Point sampling(点取样),是一种较简单材质影像插补的处理方式。会使用包 含像素最多部分的图素来贴图。 换句话说就是哪一个图素占到最多的像素, 就用那个图素来 贴 图。这种处理方式因为速度比较快,常被用于早期 3D 游戏开发,不过材质的品质较差。 2.Bilinear Interpolation (双线过滤) 这是一种较好的材质影像插补的处理方式, 会先找出最接近像素的四个图素, 然后在它 们之间作差补效果,最后产生的结果才会被贴到像素的位置上,这样不会看到“马赛克”现 象 。 这种处理方式较适用于有一定景深的静态影像, 不过无法提供最佳品质。 其最大问题在于, 当三维物体变得非常小时,一种被称为 Depth Aliasing artifacts(深度赝样锯齿),也不适用 于移动中的物件。 3.Trilinear Interpolation (三线过滤) 这是一种更复杂材质影像插补处理方式, 会用到相当多的材质影像, 而每张的大小恰好会是 另一张的四分之一。 例如有一张材质影像是 512×512 个图素, 第二张就会是 256×256 个图 素, 第三张就会是 128×128 个图素等等,总之最小的一张是 1×1。凭借这些多重解析度的材质 影像 ,当遇到景深极大的场景时(如飞行模拟) ,就能提供高品质的贴图效果。一个“双线过滤” 需要三次混合,而“三线过滤”就得作七次混合处理,所以每个像素就需要多用 21/3 倍以 上的 计算时间。还需要两倍大的存储器时钟带宽。但是“三线过滤”可以提供最高的贴图品质, 会 去除材质的“闪烁”效果。对于需要动态物体或景深很大的场景应用方面而言,只有“三线 过 滤”才能提供可接受的材质品质。 4.Anisotropic Interpolation (各向异性过滤) 它在取样时候,会取 8 个甚至更多的像素来加以处理,所得到的质量最好。 2-sided (双面) 在进行着色渲染时,由于物体一般都是部分面向摄象机的,因此为了加快渲染速度,计算时 常忽略物体内部的细节。当然这对于实体来说,不影响最终的渲染结果;但是,如果该物体 时 透明时,缺陷就会暴露无疑,所以选择计算双面后,程序自动把物体法线相反的面(即物体 内 部)也进行计算,最终得到完整的图象。 Material ID (材质标识码) 通过定义物体(也可以是子物体)材质标识码,来实现对子物体贴图或是附加特殊效果,重 要的是现在一些非线型视频编辑软件也支持材质标识码。 Shading(着色处理): 绝大多数的 3D 物体是由多边形 (polygon) 所构成的, 它们都必须经过某些着色处理的手续, 才不会以线结构(wire frame)的方式显示。这些着色处理方式有差到好,依次主要分为 Flat Shading、Gouraud Shading 、Phone Shading、Scanline Renderer、Ray-Traced 。 Flat Shading (平面着色) 也叫做“恒量着色” ,平面着色是最简单也是最快速的着色方法,每个多边形都会被指定一 个单一且没有变化的颜色。 这种方法虽然会产生出不真实的效果, 不过它非常适用于快速成 像 及其它要求速度重于细致度的场合,如荷?稍だ蓝???nbsp; Gouraud Shading (高洛德着色/高氏着色) 这种着色的效果要好得多,也是在游戏中使用最广泛的一种着色方式。它可对 3D 模型各顶 点 的颜色进行平滑、融合处理,将每个多边形上的每个点赋以一组色调值,同时将多边形着上 较 为顺滑的渐变色, 使其外观具有更强烈的实时感和立体动感, 不过其着色速度比平面着色慢 得 多。 Phone Shading (补色着色) 首先,找出每个多边形顶点,然后根据内插值的方法,算出顶点间算连线上像素的光影值, 接着再次运用线性的插值处理, 算出其他所有像素高氏着色在取样计算时, 只顾及每个多边 形 顶点的光影效果,而补色着色却会把所有的点都计算进去。 Scanline Renderer (扫描线着色) 这是 3DS MAX 的默认渲染方式,它是一种基于一组连续水平线的着色方式,由于它渲染速 度较 快,一般被使用在预览场景中。 Ray-Traced (光线跟踪着色) 光线跟踪是真实按照物理照射光线的入射路径投射在物体上, 最终反射回摄象机所得到每一 个象素的真实值的着色算法,由于它计算精确,所得到的图象效果优质,因此制作 CG 一定 要使 用该选项。 Radiosity (辐射着色) 这是一种类似光线跟踪的特效。 它通过制定在场景中光线的来源并且根据物体的位置和反射 情况来计算从观察者到光源的整个路径上的光影效果。 在这条线路上, 光线受到不同物体的 相 互影响,如:反射、吸收、折射等情况都被计算在内。 其他: Voxels (三维像素) 三维像素是一种基于体积概念的像素。 通常的普通像素只需要 X、 轴两个坐标来定位它在 Y 空 间中的方位。而它还需要加进一个额外的 Z 轴坐标,相当于空间中一个非常小的立方体。 由于 它本身就有很多细节可以单独描写,所以直接就能生成物体。但是,这种技术应用不广泛, 原 因在于它的运算量相当大,但是效果相当理想。 Polygon (多边形) Polygon 是由许多线段首尾相连构成的封闭图形,其中每两条线段所构成的点被称? 猇 ertices(顶点)。许许多多的多边形搭配在一起就构成了各种各样的三维物体,数量越多则 细节描写 越清晰。 Alpha Channel (Alpha 通道) 在 24 位真彩色的基础上,外加了 8 位的 Alpha 数值来描述物体的透明程度。 Dithering (抖动显示) 它是一种欺骗你眼睛, 使用有限的色彩让你看到比实际图象更多色彩的显示方式。 通过在相 邻像素间随机的加入不同的颜色来修饰图象,通常这种方式被用颜色较少的情况下。 MMX 指令集 MMX 指令集实质是一种 SIMD 数据处理方式(单指令流,多数据流)。由 Intel 公司开发,它 允? 鞢 PU 同时对 2-4 个甚至 8 个数据进行并行处理。它有效的提高了 CPU 对视频、音频等多 媒体方面的 处理速度,但 3D 运算多为浮点运算,而 MMX 指令集对 CPU 的浮点运算能力没有什么贡 献,因? 薓 MX 指令集在制作 3D 上没有实际意义。 3D Now!指令集 3D Now!是一种 3D 加速指令集,由 AMD 公司开发。它也是一种 SIMD 数据处理方式,但 它的加速 对象却是 CPU 浮点运算。 它是一个时钟周期内可以同时处理 4 个浮点运算指令或两条 MMX 指令。 SSE 指令集 SSE 是 Streaming SIMD Extension 的缩写,也叫 KNI 指令集。它是被嵌套在 Intel Pentium III 处理器中的第二套多媒体专用指令集。与 MMX 指令集不同的是 SSE 的主要作用是加速 CPU 的 3D 运 算能力。它总计包括 70 条指令,50 条 SIMD 浮点指令,主要用于 3D 处理。12 条新 MMX 指令,8 条系 统内存数据流传输优化指令。 AGP AGP 是 Accelerated Graphics Port(加速图形端口)的缩写,由 Intel 公司开发的新一代局部图 形总线技术。它允许显卡在显存不足的情况下,直接调用系统主内存。AGP 分为:1x、2x、 4x 三个标准,AGP1x 标准为 66MHz,2x 标准为 133MHz,4x 标准为 266MHz。 GPU (图形处理器) n VIDIA 公司新一代 3D 加速芯片 GeForce 256。它是集成有几何引擎、光照引擎、三角形设 置 、图形裁剪引擎、纹理渲染引擎,处理能力为每秒 1000 万个以上多边形的单芯片图形处理 器。 显存类型 1.FPM DRAM(快页 RAM) FPM 是 Fast Page Mode RAM 的缩写。它是早期的标准,后被比它快 5%的 EDO DRAM 所取代。 2.EDO DRAM(扩展数据输出 DRAM) EDO DRAM 是 Extended Data Out DRAM 的缩写。 DRAM 的访问模式进行一些修改, 对 缩短了 内存有效访问时间。 3.VRAM(视频 RAM) VRAM 是 Video RAM 的缩写。这是专门为了图形引用优化的双端口存储器(可同时与 RAMDAC 以及 CPU 进行数据交换),能有效的防止在访问其他类型的内存时发生的冲突。 4.WRAM(增强型 VRRAM) WRAM 是 Windows RAM 的缩写。其性能比 VRAM 提高 20%,可加速常用的如传输和 模式填充等 视频功能。 5.SDRAM(同步 DRAM) SDRAM 是 Synchronous DRAM 的缩写。 它与图总线同步工作, 避免了在系统总线对异? 紻 RAM 进行操作时间步所需的额外等待时间,可加快数据的传输速度。 6.SGRAM(同步图形 RAM) SGRAM 是 Synchronous Graphics DRAM 的缩写。它支持写掩码和块写能够减少或消除 对内 存的读-修改-写的操作。SGRAM 大大加快了显存与总线之间的数据交换速度。 7.MDRAM(多段 DRAM) MDRAM 是 Multibank RAM 的缩写。它可以划分多个独立的有效区段,减少了每个进 程在进 行显示刷新、视频输出或图形加速时的耗费。 8.RDRAM 主要用于特别高速的突发操作,访问频率高达 500MHz,而传统的内存只能以 50MHz 或7 5MHz 进行访问。