3d程序接口——3D API
3d程序接口——3D API加入时间:2003年9月4日 显示次数:6142打包邮递推荐给朋友投票评论 现在流行的标准3DAPI主要有三种:微软的Direct3D,主要用于游戏设计;SGI的OpenGL,主要针对专业领域的CAD/CAM设计,近年来也应用于游戏开发;Autodesk公司的Heidi,用于全方位的CAD/CAM/CAE设计。 1、Direct3D(D3D) Direct3D是Microsoft于1996年发布的三维API,在DirectX中共分七个部分:DirectDraw用于显示内存的治理,主要针对2D绘图、Direct3D用于对3D图形加速设备进行同一治理,DirectPlay治理游戏的网络通讯、DirectSound用于对声音设备的同一治理,DirectInput用于对不同的连线设备提供支持,DirectMusic用于对MIDI等电子音频治理,DirectSetup负责安装所有的DirectX组件。 Direct3D为程序员提供了一个显示三维图形的与硬件无关的应用编程接口。Direct3D能支持跨平台操纵,能对Windows95,WindowsNT,PowerMac等提供支持。 DirectX共有1.0—8.0版本,在DirectX1.0中不包括Direct3D,因此只能对2D处理进行加速,不支持3D功能。DirectX2.0中开始加入DirectX3D,虽仅支持“平滑模拟和RGB模拟”两种工作方式,但已经达到不错的3D图形加速效果。DirectX3.0在图形处理方面和DirectX2.0相差不大。DirectX5.0对D3D的内容作了重大修改,在接口性能和易用性方面有了很大的改善。DirectX6.0是微软针对DirectX5.0的缺点和S3、NVIDIA、AMD等公司合作的结果,它将很多专利技术引入到其程序接口中,成为目前最复杂、最全面的3DAPI之一。DirectX7.0在D3D中最大的改进是答应加速卡完成原来由CPU独立完成的光源计算,在解放CPU的同时,使3D软件可以使用更丰富、更逼真的光源效果。DirectX8.0将由微软和SGI合作开发,其中会纳入很多面向高端图形设计的功能。D3D由几何加速、光效计算、贴图处理等若干程序部件组成。目前的游戏程序通常仅使用其像素渲染方面的功能,而几何建模和光源处理等方面仍然由CPU的浮点运算器处理。随着GeForce256等具有硬件T&L功能的3D加速芯片的推出,将来的游戏将会大量使用D3D的几何加速、光效处理等功能。 2、SGI的OpenGL OpenGL的前身是SGI公司开发的IRISGL。IRISGL是一个产业标准的3D图形软件接口,功能固然强大但是移植性不好,于是SGI公司便在IRISGL的基础上开发了OpenGL。 1992年,SGI公司发布了OpenGL的1.0版本,随后又与微软共同开发了WindowsNT版本的OpenGL,从而使一些原来必须在高档图形工作站上运行的大型3D图形处理软件,也可以在微机上运用。 1995年OpenGL的1.1版本面市,该版本比1.0的性能有很多进步。 1997年,微软公司终极在Windows95的OSR2版和后来的Windows98中加入了对OpenGL的支持。这样,不但很多支持OpenGL的电脑3D游戏得到广泛应用,而且很多在Windows95平台上运行的3D图形设计软件也可以运用支持OpenGL标准的3D加速卡,大大进步其3D图形的处理速度。 OpenGL具有两个主要的特点: ⑴.它是与硬件无关的软件接口,可以在不同的平台之间进行移植。因此,支持OpenGL的软件具有很好的移植性。 ⑵.可以在客户机/服务器系统中工作,这一点对于制作大型3D图形、动画非常有用。例如,《玩具总动员》等电影的电脑特技画面就是通过应用OpenGL的网络功能,使用120多台图形工作站共同工作来完成的。 与QD3D和Direct3D相比,OpenGL不是一个高级的应用程序接口。它的目标是绘制对象,而像对象编辑和文件I/O等高级任务则由应用程序来做。随着DirectX6.0的推出,D3D不如OpenGL已经是旧话,两者的性能差距已经是微乎其微。究竟谁能在以后获得更广泛的支持,还要拭目以待。不过无论如何,游戏处理对于OpenGL来说只能是“歪路左道”,它在专业3D设计领域的应用才是最佳的价值体现。 3、Autodesk的Heidi(QuickDraw3D) Heidi采用纯粹的立即模式接口,能够直接对图形硬件进行控制,它对硬件的要求比较专业。Heidi可以调用所有显示卡的硬件加速功能,包括2D和视频处理。因此在CAD/CAM的应用方面,Heidi比OpenGL适应范围更广。Heidi不适合实时处理,因此不适合在游戏程序中应用。但我们在3D游戏中看到的大部分3D物体的原始模型都是通过使用Heidi接口的程序绘制而成的。 除了以上三种标准的3DAPI外,几乎所有的早期3D加速芯片都有自己的专用3DAPI,其中比较有名的是3dfxVoodoo系列的Glide和NECPowerVR系列的SGL。 4、Glide 这个Voodoo专用的3DAPI实际是PC游戏领域的第一个得到广泛应用的程序接口。它可以使Voodoo的性能得到充分的发挥,Voodoo芯片在同一游戏使用Glide接口时通常比D3D版本快10%—20%,同时画面质量也更好。 Glide的最大特点在于其出色的易用性和稳定性。很多开发职员多乐于在Glide界面下开发程序。Glide目前分为两种序列:2.xx和3.xx,前者主要用于Voodoo和VoodooRush,后者主要用于Voodoo2和VoodooBanshee。 由于当时Voodoo芯片的市场占有率相当高,在Voodoo2推出前前Voodoo的市场占有率高达85%,因此在很长一段时间内,Glide在市场上占居了重要地位。后来随着D3D和OpenGL的兴起,才逐渐失去了原有地位。 5、PowerSGL SGL是NECPowerVR系列芯片的专用程序接口。在标准接口还没有出现的阶段,可以和Voodoo抗衡的3D芯片只有PowerVRPCX2一种,因此SGL也有一定的影响力,但它与Glide相比还是有一定差距的。作者:洪伟来源:家用电脑
页:
[1]