openGL与DirectX等的比较
Linux易用性差的一个重要表现是对游戏的支持性差。当然,linux也有为数众多的游戏,如纸牌,企鹅滑雪,泡泡龙,这些小游戏的可玩性绝对的windows的纸牌,扫雷之类高。 不过,我们所说的游戏是指《魔兽争霸》,《盟军敢死队》这样的大型游戏。Linux环境下缺乏这样的大型游戏,一
·
Linux易用性差的一个重要表现是对游戏的支持性差。当然,linux也有为数众多的游戏,如纸牌,企鹅滑雪,泡泡龙,这些小游戏的可玩性绝对的windows的纸牌,扫雷之类高。 不过,我们所说的游戏是指《魔兽争霸》,《盟军敢死队》这样的大型游戏。Linux环境下缺乏这样的大型游戏,一方面是因为linux的市场占有率低,开 发商认为投入linux下的游戏成本高,难以收回;另一方面,linux不支持对于游戏来说非常重要的驱动——DirectX。
游戏驱动一般来说有两种——OpenGL和DirectX。OpenGL驱动不仅在游戏方面很重要,还在图形处理方面有举足轻重的作用。所以大家在装显卡 驱动后都可以看到OpenGL的设置选项。几乎所有的操作系统(windows,linux,MacOS)都支持OpenGL。DirectX是微软专门 为游戏设计的一套驱动(程序接口),在windows3.x的代就已有了,到现在已发布了Direct9.0。在这期间,各种游戏也呈现出爆炸性增长的势 头,不能说与DirectX没有一点关系。
如果说在3D
OpenGL
自从1991年初以来,OpenGL
在计算机3D领域,OpenGL之所以能很快抛开其他竞争对手,流行开来,很大程度上是由于从一开始OpenGL就被设计成独立于硬件和操作系统的3D
说到OpenGL,不得不提一下管理这个API系统的ARB组织。OpenGL本是SGI开发出来的,但后来却由成立于1992年的独立财团OpenGL
从1.X到2.0
虽然OpenGL并非专为游戏而生,但多数人了解OpenGL却是通过游戏。在2.0版本出现以前,OpenGL在进军桌面游戏市场时遇到了相当多的麻烦,最初的阻力来自Glide。在20世纪90年代中后期,3dfx公司用在Voodoo上的Glide
当然,在OpenGL和Direct3D的发展过程中,SGI和微软这两家分别代表OpenGL和Direct3D鼻祖的厂商,曾一度试图将 OpenGL并入DirectX中,建立一个可运行于Windows之内和之外的通用API,这将让绘图的开发提升至一个共同的架构上,这就是当时“令人 神往”的“Fahrenheit”计划。但事实证明,“Fahrenheit”计划执行起来实在太困难了,微软和SGI都期望自己的API能在计划中占据 主流,两者间的矛盾始终不能调和,计划最终不了了之。之后,微软倾其所有资源,全力投入DirectX的开发,这才有了现在DirectX的辉煌局面。
自然的,与此同时ARB也未曾放松OpenGL的开发,不过前景并不乐观。最令人失望的是,这几年唯一的进展仅是如ClearCoat、Multisample等OpenGL扩展指令的推出,而并没有实质性进展,所以OpenGL
OpenGL
OpenGL
1.系统和图像构架自1992年来有了重大改变,以Glide和DirectX为主的游戏3D
2.现在的显卡功能和性能已越来越先进,但OpenGL的函数却无法发挥这些优秀硬件的性能,所以说目前的OpenGL
3.其实OpenGL下也有好游戏,比如QuakeⅢ,但它实现和应用的复杂性却远远胜过其他3D
在3Dlabs的构想中,OpenGL
1.将OpenGL提升到一个新的高度,像D3D那样由核心提供全部硬件功能,以配合目前的和将来的显示硬件。
2.展示下一代可编程图像硬件的图景,使用高级语言而不是汇编对显卡编程。
3.由定义良好的核心功能取代大部分扩展功能,以可编程性取代复杂性。
4.对已有程序保持相当理想的兼容性,以使老程序不经修改便能正常运行,并保持高效。
5.对不需要兼容性的场合,提供简洁干净的核心,剔除过时的函数。
6.提高动态材质等动态媒体的功能和效率,以满足对动态媒体处理的需要。
ARB接受了3Dlabs的提议,进行OpenGL
OpenGL
仅仅有一个构想是不行的,OpenGL需要实实在在地摆在人们面前,才能获得足够的支持。于是借助这个构想,经过不断的改善,现在OpenGL
成形后的OpenGL
兼容性
新的OpenGL
OpenGL之所以曾经在一段时间止步不前,就是因为有了太多混乱的扩展指令集,其中许多都是为专用应用程序而设计,虽然OpenGL是个开放的世 界,但这些自家开发的指令中却包含了自己的知识产权,自然有可能出现大量纠纷,厂商们也不愿放弃自己的利益而把这些新指令编入OpenGL标准中,让大家 共享。在过去几年中,ARB就因为这样的原因,忙于理顺内部关系,无暇思考OpenGL新技术的开发,导致了OpenGL的止步不前。因此,精简扩展指令 集是必须的。
OpenGL
2002年,NVIDIA在推动交互式3D程序开发方面投入了大量精力,其中最主要的就是Cg图形语言(即“图形技术的C语言”——C
扩展性
如果只是简单的精简,必然会导致OpenGL指令的功能下降,道理很简单,因为可使用的指令集减少了。所以在精简的同时必须扩展指令的功能,也就是说为留下来的“旧”指令定义新的功能。OpenGL
可编程性
在所有这些扩展功能中,可编程性是最吸引人的。开发者们可以借助OpenGL
最著名的可编程功能应该是可编程顶点,它允许进行随机个别顶点运算,同时也会取代部分旧有的OpenGL管线,如顶点转换、正规转换、照明、色彩强 化、材质坐标产生及转换等。与之相关的还有可编程片断处理和可编程图像格式,其中前者主要负责材质存取、插值运算与像素运算弹性,它将取代内插值顶点数据 运算。
可编程性应该算是OpenGL2.0最吸引人的地方,至少所有的扩展应用都有了一个最起码的标准,在可编程性语言下,所有的开发都变得十分简单,而不会出现以前那样因为可能出现产权纠纷,而在研发中产生混乱。
增强数据管理性能
在OpenGL中的数据类型主要有顶点数据(色彩、正规、位置、用户定义等)以及图像数据(材质、图像、像素缓冲区)。OpenGL
厂商支持情况
ARB中庞大的厂商阵营本身就是对OpenGL
在其他厂商方面,ATI是支持OpenGL
FireGL
虽然最终ARB在Shading上采用了3DLabs的设计方案,但NVIDIA渴望在ARB占据一席之地的迫切之心一目了然。不过,一对老冤家 ATI和NVIDIA在ARB的撮合下,也开始进行和OpenGL有关的技术整合。专业市场的SGI、3Dlabs及家用市场的ATI和NVIDIA都投 入到OpenGL
DirectX和Glide
DirectX是微软公司专门为游戏开发的API,其最大优点就是编程方便,很容易控制程序,其中包含的函数也很容易调用,但在专业性上不如 OpenGL强。DirectX从5.0版本开始逐渐成熟起来,目前已发展到9.0版,现在大部分常见的3D游戏都支持DirectX中的 Direct3D。
Glide是曾经的3D显卡霸主——3dfx为发挥自己的Voodoo芯片的强大性能而专门设计的3D
更多推荐
已为社区贡献1条内容
所有评论(0)