2024年5月28日发(作者:)
openGL与DirectX 比较
OpenGL 只是图形函数库。
DirectX 包含图形, 声音, 输入, 网络等模块。
单就图形而论, DirectX 的图形库性能不如 OpenGL
OpenGL稳定,可跨平台使用。但 OpenGL 多需要显卡支持.
----------------------------------------------------------------------------------------------
做windows平台上的游戏,当然是DX,想跨平台,想做科学计算程序,想做CAD,
想做分布计算,想做工业级应用,最好用OpenGL。
当然你要是对COM不感冒,或是想活得轻松一点,还是OpenGL吧。
其实DX之所以是游戏首选平台是因为它速度快,在过去支持OpenGL加速的家用卡
或游戏卡很少,而软件计算很慢。但从TNT2/Voodoo3开始,OpenGL已经是非常理
想的游戏平台了,而在geforce256,savarage2000+为代表的四代卡上OpenGL已经
是极为理想的游戏平台了:够快,够眩!另一方面到DX7这套东西质量已经相当不
错了,与OpenGL差距已经很小了,而且是M$的东西……就看你怎么想了,如果想
学得快,用得爽,调试方便,就选OpenGL,如果已经适应COM体系的思想那当然是
DX自然。
个人建议你学OpenGL,从此入手容易形成正确明确的概念,以后即使工作需要要
转向DX也很容易。重要的是如今的OpenGL的中文资料多起来了,虽然重复的居多
,但还是有几本很不错的,而英文资料则不计其数。
还有一点,你用什么语言?如果是C则无所谓,如果是VB那还是DX吧,虽然也可以
做OpenGL,但不如DX自然和资料丰富(dx7sdk里有例子的vb版本)。
----------------------------------------------------------------------------------------------
1995年至1996年,微软实行了一项新计划,以支持在Windows95上运行游戏,目标是把
市场扩展到被任天堂和世嘉控制的游戏领域。然而,微软不想用已经在NT上提供的OpenGL
技术。微软收购了Rendermorphics,Ltd.并得到他的被称作RealityLab的3D API。经重新整理,
微软发布了新的3D API——Direct3D。
微软,推行Direct3D,冻结OpenGL!
微软当时拒绝了在Window95上支持OpenGL。不止如此,微软采取异常手段收回
对OpenGL的MCD驱动接口的支持,以致硬件厂商不得不放弃已经进入最后测试的OpenGL
驱动。微软的市场部门开始向游戏开发商、硬件厂商、新闻出版机构推销Direct3D,同时排
斥OpenGL。
API之战!
Silicon Graphics和很多OpenGL用户都依赖OpenGL创新且高性能的技术。但很
明显微软打算用Direct3D代替OpenGL,尽管D3D有很多问题而且不能像OpenGL那样被
硬件厂商扩展。Silicon Graphics决定在1996 SIGGRAPH会议上作一项演示。演示证明
OpenGL至少和D3D一样快,从而驳倒微软的市场论调。因为OpenGL是业界公认标准,
比D3D功能丰富,而且图像质量要高一些,所以演示在计算机图形和游戏开发社区导致了
激烈论战。
游戏开发者要求OpenGL和D3D站在同等地位!
当技术和市场问题暴露,强烈的支持OpenGL行动开始了。Doom的开发者John
Carmack声明拒绝D3D,Chris Hecker在游戏开发杂志上发表了两套API的全面分析,移微
软应放弃D3D为结论。游戏开发者先后两次向微软递交请愿书。第一次由56名首席游戏开
发者要求微软发行OpenGL MCD驱动,但未成功,因为会让OpenGL与D3D竞争。第二次
的公开信由254人签名开始,截止时达到1400人。微软的回答仍是重申旧市场立场。尽管请
愿者清楚的要求两套API同等竞争以促进发展,微软却以增加D3D的投资、更加减少
OpenGL的投资为回应。
Fahrenheit——D3D与OpenGL的合并?
Silicon Graphics,Microsoft, HP,Intel达成协议联合开发下一代3D
API——Fahrenheit。但不了了之,因为微软的打算是把OpenGL的技术用到D3D里并且以
此之名驱除OpenGL的威胁。(估计DirectX 8 Graphics即是剩下微软独自开发的Fahrenheit,
吸收了OpenGL的很多东西。)
OpenGL豪气不减当年!
OpenGL依然是唯一能与微软单独控制的D3D对立的API,尽管Silicon Graphics
不再以任何微软不能接受的方式推行OpenGL。游戏开发这是独立的,并且很多关键人物在
用OpenGL,因此,硬件厂商正努力提高对其支持。D3D仍不能支持高端图像和专业应用,
而OpenGL主宰着这些土地。在开放原码社区,Mesa项目正提供独立于微软的OpenGL驱
动。
注:表面上好像D3D比OpenGL支持更多的功能,其实由于D3D不支持硬件扩展,如
硬件全景阴影,硬件渲染顺序无关半透明材质等新技术根本无法使用,而D3D(特指D3D8)
本身提供的功能只有一小部分能在使用HAL且硬件不支持时模拟,你要用大量代码分析硬
件能力和采取不同策略


发布评论