2024年3月15日发(作者:)
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
goldegg
2004-10-23, 17:22
偶也来厚道的转贴。
恩,我想说,你用什么顺手就用什么。
goldegg
2004-10-23, 17:24
不论是哪一种类型的图形芯片,总会支持某个版本的DirectX或OpenGL API,而支持哪一个
API版本几乎成为图形产品分代的标志。我们有必要先明确API的概念,API的全称是
“Application Programming Interface”,意为应用程序接口,它是连接应用程序、操作系统和底
层硬件的纽带。通俗点说,API就是软件函数的集合,这些预先编写好的函数可以对硬件进
行直接控制,它最大的优点就是通用性。3D显卡刚刚诞生时,并不存在支持何种API的概
念,如果某款游戏要运行在不同的显卡平台上,开发商就必须为每个类别的显卡编写一套程
序,显然这意味着巨大的精力损耗,同时也无法获得令人满意的效果。因此早期显卡通常都
有“游戏兼容性”的说法,游戏产品同样也有“显卡兼容性”的概念,这有点类似于上世纪80
年代之前的专用计算机时代:每个硬件平台都必须使用专用的软件、不同厂商之间软硬件不
具通用性。
人们很早就意识到这个问题,对应的解决方案也被提出:制定一套操控硬件的图形函数库,
图形芯片制造商和游戏开发商都严格遵循这套标准,这样,图形芯片制造商无需考虑什么游
戏兼容的问题,它只要根据函数库提供的功能来开发产品就可以了;而游戏开发商也不必为
每款显卡都编程、只要直接调用这些标准化的函数库即可实现广泛的兼容性。这套函数库也
就是所谓的图形API。
目前,我们可接触到的图形API可分为OpenGL和DirectX两大体系,前者是一项开放性的
标准、主攻专业图形应用和3D游戏,由“OpenGL架构委员会”掌控,其成员包括业内各大厂
商,目前主要推动标准发展的实际领导者是3Dlabs。DirectX则是微软制定的API标准,除了
图形API功能外,它还包含音频API等功能,只不过其图形部分升级最快、也最为人所知。
DirectX针对的主要是娱乐应用,目前最新的DirectX 9 API功能极为强劲,大部分新3D游戏
都基于DirectX 9,而图形芯片制造商更是将它作为标准、竞相提供对DirectX 9的支持,是
否支持DirectX 9也成为两代显卡的分水岭。
对显卡来说,API的重要性毋庸置疑,而未来每一次图形技术的重大进步都将与API紧密相
关,关注OpenGL和DirectX这两种API无疑是非常必要的,从中我们可以了解它们的历史、
现状和未来的发展,借机了解整个图形技术的发展状况。
goldegg
2004-10-23, 17:25
定位专业应用的OpenGL
OpenGL的英文全称是“Open Graphics Library”,意为“开放的图形程序接口”。OpenGL的历史
可以追溯到上个世纪90年代初,标准诞生之后它一直占据主导地位。而微软的DirectX出现
的时间比OpenGL晚得多、功能也不及OpenGL,只不过最近几年OpenGL因发展迟缓才被
1
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
DirectX追上而已。尽管如此,OpenGL仍然是高端图形API的代名词,制定中的OpenGL 2.0
以强劲的功能特性为业界瞩目,而显卡制造商对OpenGL API的重视程度并未缩减,在可预
见的将来,OpenGL还将引领专业图形和3D游戏的风潮。
OpenGL发展历程
上个世纪90年代初,SGI公司出于制造图形工作站产品的需要、开发出名为“IRISGL”的图形
API并成为工业标准。在当时,IRISGL的功能可谓十分强大,但它的可移植性却相当之差。
有鉴于此,SGI决定在IRISGL基础上开发出一种功能类似、但可移植性更好的图形API—这
就是OpenGL。OpenGL被打造为开放性标准,任何软硬件厂商均可自由使用,这让它受到广
泛的欢迎。
1992年7月,SGI正式发布OpenGL 1.0标准。OpenGL 1.0完全实现了SGI的预期设计目标:
功能强大、移植性良好并能自由使用。随后,SGI发起成立了“OpenGL架构委员会”(OpenGL
Architecture Review Board,简称ARB)来共同管理和推广这项先进的标准,OpenGL后继标
准的制定权也逐渐转移给ARB组织。在ARB内部,产生新标准的过程非常民主化:各成员
以投票的方式来决定新版OpenGL标准应具有的功能特性,并据投票结果制作正式标准文档,
各软硬件厂商再根据这份标准文档的内容在自己的系统上实现;而所有的OpenGL版本都必
须通过文档规定的全部测试项目方能生效。ARB组织的成员都非泛泛之辈,目前其核心成员
包括SGI、3Dlabs、Intel、IBM、nVIDIA、ATi、Microsoft、Apple等业界领袖。
OpenGL 1.0获得意料之中的巨大成功,专业图形领域唯它马首是瞻。看到这一点,微软甚为
心动,当时它正在开发的Windows NT系统如果获得OpenGL的支持无疑会如虎添翼;而SGI
也希望能够让OpenGL广为流传。于是SGI和微软进行首次合作、联手将OpenGL 1.0移植到
Windows NT平台。这项工作自然没有什么悬念,适用于NT的OpenGL 1.0顺利推出,这使
得Windows NT系统成为图形工作站的又一个可选操作平台,很多运行于UNIX之下的专业
图形软件也逐渐被移植,微软和SGI都如愿以偿。
1995年,SGI推出了更为完善的OpenGL 1.1版本。OpenGL 1.1的性能比1.0版提高甚多,同
时还加入了诸如顶点数组、顶点位置、新纹理等新特性,并增强了元文件对OpenGL的调用
等等。OpenGL 1.1同样获得了成功,而它也有对应的Windows NT版本。
1997年,受3D显卡的刺激,Windows 95平台下开始涌现出大量的3D游戏,可微软自己的
Direct 3D 3.0图形接口极为糟糕,idSoftware公司的顶尖程序员John Carmack(Quake之父)
嘲讽它简直就是“支离破碎的API”。很自然,强大的OpenGL成为取代DirectX的最佳选择。
但问题是微软虽然在NT系统中引入了OpenGL,但其同时代的Windows 95却无法支持
OpenGL,面对这种局面,idSoftware公司联合其它游戏开发商强烈要求微软在Windows 95
中也引入OpenGL API,微软也很了解自己的“Direct 3D 3.0”是什么货色、它很快就接受了这
项建议。而后,id公司开发出基于OpenGL的Quake2,想必有过3年以上游戏玩龄的读者
都会记得Quake2那无以伦比的3D场景和激烈刺激的竞技画面。而OpenGL API因此立下大
功,几乎所有游戏开发商都转向OpenGL,微软后来也不得不顺应潮流、在Windows95 OSR2
版及Windows 98中正式支持OpenGL,相关游戏开始大量涌现,而AutoCAD、3DS MAX、
Maya等许多专业3D设计软件也被移植到普通PC平台。今天,预算有限的设计者可以在PC
中运行这些软件,莫不拜OpenGL所赐。
2


发布评论