3D图形接口

Author: 晓军 Date: 2000年 第8期

  API是Application Programming Interface应用程序接口的缩写。当某个应用程序提出一个制图请求时,这个请求首先要被送到操作系统中,然后通过GDI(图形设备接口)和DCI(显示控制接口)对所要使用的函数进行选择。显卡驱动程序判断有哪些函数是可以用显卡芯片来运算,可以进行运算的将送到显卡进行加速。如果某些函数无法被芯片进行运算,这些工作就交给CPU进行。运算后的数字信号写入帧缓存中,最后送入RAMDAC(随机存取存储器数/模转换器),在转换为模拟信号后输出到显示器。
#1    Direct 3D
  微软公司专为PC游戏开发的API,与Windows 95 和Windows NT操作系统兼容性好,可绕过图形显示接口直接进行支持该API的各种硬件的底层操作,大大提高了游戏的运行速度。但由于要考虑与各方面的兼容性,在执行效率上未见得最优。
  最初的Direct 3D与传统三维领域专业级的OpenGL是没法比的。但借助微软Direct X SDK工具包在外围程序员中的传播,很快Direct 3D成为了令大家刮目相看的3D API。Direct 3D主要应用于娱乐软件之中。从硬件角度看,主要支持Direct 3D的显卡往往不是专业显卡;而从软件上看,Direct 3D可以算是目前最普遍的API函数了。可以说,正是Direct 3D的不断完善,才使Direct X有了今天。也正是Direct 3D的功劳,才加速了3D图形处理应用日益普及。
  随着Direct X加入了3D NOW!函数,Direct 3D真正成为了一个比较完善、能够不断充实的3D API。材质压缩刚刚出台,Direct X马上就将其加入到自己众多的3D函数中去了。可以说Direct 3D随着新技术的推出也会越发的丰满。
#1    OpenGL
  由Silicon Graphics公司开发的能够在Windows 95、Windows NT、MacOs、BeOs、OS/2以及Unix上应用的API。由于OpenGL起步较早,一直用于高档图形工作站,其3D图形功能很强,能最大限度地发挥3D芯片的巨大潜力。
  OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。IRIS GL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,后来根据用户的反馈和希望移植到开发系统的愿望,SGI公司便在IRIS GL的基础上开发了OpenGL。随后又与微软公司共同开发了Windows NT版本的OpenGL,从而使一些原来必须在高档图形工作站上运行的大型3D图形处理软件,如用于制作电影《侏罗纪公园》而大名鼎鼎的Softimage 3D也可以在微机上运用。
  OpenGL是与硬件无关的软件接口,可以在不同的平台之间进行移植,因此可以获得非常广泛的应用。OpenGL具有网络功能,这一点对于制作大型3D图形、动画非常有用。例如《侏罗纪公园》等电影的电脑特技画面就是通过应用OpenGL的网络功能,使120多台图形工作站共同工作来完成的。
  由于OpenGL是3D图形的底层图形库,没有提供几何实体图元,不能直接用以描述场景。但是,通过一些转换程序,可以很方便地将AutoCAD、3DS等3D图形设计软件制作的DFX和3DS模型文件转换成OpenGL的顶点数组。
#1    Glide
  这是3Dfx公司为Voodoo系列3D加速卡设计的专用3D API,它可以最大限度地发挥Voodoo系列芯片的3D图形处理功能,由于不考虑兼容性,其工作效率远比OpenGL和Direct 3D高,所以Glide是各3D游戏开发商优先选用的3D API。不过,这样一来就使得许多精美的3D游戏在刚推出时,只支持3Dfx公司的Voodoo系列3D加速卡,而其它类型的3D加速卡则要等待其生产厂商提供该游戏的补丁程序。
  Glide是一个完整的三维图形环境。开发者可以使用其最高层的API产生和操作三维对象,对文件进行三维数据的读写操作,为游戏设计者提供了一个与设备无关的API。Glide支持立即模式和驻留模式,其立即模式与OpenGL相同,都需要向绘制处理器提供画图命令,立即模式提供细致的控制。在驻留模式中,面向对象的编程结构为显示和操作提供场景几何数据,可以将场景几何数据存储到一个对象数据库中,使得对对象的读写更容易,并可以通过对数据结构的缓冲来实现快速显示或硬件加速。由于Glide的面向对象特征,无须掌握三维对象内部结构的知识就可以执行这些操作,它允许用户以一种公用的三维元文件格式读写三维图像,这种格式不仅存储每个对象的几何数据,也存储其光照和纹理数据。Glide提供了大量的基本对象如线、球、圆锥等,可以利用这些基本对象快速建造一个场景的原型。它还提供了一个接口以实现对对象的可视编辑。Glide的体系结构是可扩展的,这样就可以利用第三方的绘制器或者获得对硬件加速器的访问能力。
#1    Heidi
  在开发3D图形应用的许多方面,Heidi扮演着协调动作的重要角色,它是由Autodesk公司提出来的规格。Autodesk是目前全球CAD/CAM工业领域中拥有用户量最多的软件公司,Heidi就是Autodesk在CAD、动画及可视化软件领域中最重要的主流支撑应用软件接口。
  Heidi是一个纯粹的立即模式接口,主要适用于应用开发。著名的3D程序软件,如3D Studio MAX/VIZ、AutoCAD 12/13/14、经济建模、商业图形演示和机械设计等都采用了Hidei图形接口。与OpenGL 相比,Heidi还只是一种原始对象接口,功能请求单一化,是靠使用标准界面或者直接利用特定的3D芯片来进行硬件加速。如果没有硬件的密切配合,在对大型的高质量、高分辨率、高刷新率的图形进行操作时,显示效果会受到很大的影响。Heidi的突出特点是灵活多变,这要归功于Plug-ins(插入式结构)和内部定义的Heidi接口。
  目前,采用Heidi系统的应用程序包括3D Studio MAX动画制作程序、Autodesk公司为 AutoCAD R13开发的WHIP加速驱动程序等。