OpenGL与Direct3D之战

------------------------------------One--------------------------------------------------------------------------------------

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驱动。



-----------------------Two--------------------------------------------------------------------------------------


 自1996年开始,3D API之战延续至今,并随着GPU程序的广泛应用而炮火渐希,淡出争论的焦点。如果非要论个输赢的话,应该是OpenGL绊倒了自己,以致大业未成。而OpenGL ES异军突起,反而要了OpenGL的老命。

   战局的高潮起于2001年,为对抗飞速发展的D3D,迫于OpenGL社群的压力,OpenGLARB开始加快工作进程,于8月推出OpenGL 1.3规范,次年OpenGL ARB成立OpenGL2.0工作组,号称要实现超越D3D的下一代技术。中间发布了1.4和1.5两个过渡版本,几经波折,一直到2004年,OpenGL2.0规范才正式发布。而这时,已经时过境迁,大量新兴功能出现,在D3D吸取OpenGL的优点的同时,OpenGL的扩展也引入了一些D3D的功能模式,开发人员更多的是在和日新月异的扩展打交道,核心模块已经不是大家关注的焦点了。
) Q% }5 Q
   OpenGL 2.0的最重要部分是一个新的架构,一方面精简掉原来冗余和过时的东西,一方面要充分和Shader结合。而最终的结果是在这两方面都不成功。# s& n: U/ c" i3 W; }
在精简方面,首先,提供对原有功能的兼容性支持虽然是好事,但大大冲淡了采用新架构的必要性,结果是实际应用的是包含了所有版本的功能集合,成了一个更大的包袱。虽然ARB又提出要制定Pure OpenGL 2.0,但为时已晚,Khronos Group的OpenGLES已经借嵌入式的大发展成为实际上的精简OpenGL。而且OpenGL 2.0的精简仍然保留了很多高端工作站的功能特性,远不如OpenGLES有吸引力。
x( }; M4 u- A
   在集成shader方面,ARB内部似乎斗争得很厉害。3D Labs掌握2.0规范的主导权,出于高端背景,3DLabs似乎想把它的高端风格带入OpenGL,并想做产业的领头羊。nVidia已经有了CG,希望CG能成为OpenGLshader的标准。ATI在和nVidia做激烈的竞争,非常不愿看到CG成为标准,为了对抗而开发了自己的RenderMonkey。最终的妥协是他们由3DLabs带头花费2年重新创造了GLSL。有人认为nVidia虽然失败了,但它和ARB官僚体系的努力抗争依然精神可嘉。尽管各厂商纷纷表示支持GLSL,但对软件开发者而言,大家更喜欢成熟稳定兼容性好的CG。CG是跨平台的,而且其语法和D3D的HLSL非常类似,多数情况下不需修改就能通用。CG有丰富的工具支持,有丰富的文档和样例,有活跃的社区,并且可以和HLSL共享很多资源。GLSL还没诞生就确定要和成功的CG争夺用户。

   2004年后,OpenGL的进程几乎再度停滞,致使PBuffer的问题困扰OpenGL用户3年之久。OpenGL2.0也是雷声大雨点小,几乎没听说过什么产品正式用了2.0,本来说会支持OpenGL的PS3也是用OpenGLES加CG。2006年3月,OpenGL ARB宣布,将于年底前将OpenGL交给Khronos Group管理。: r# P. i5 e3 G! ^
   有人说OpenGL终于可以脱离ARB的官僚管制,在Khronos Group的手下将会象OpenGL ES一样发扬光大。但是OpenGL的残局已经很难收拾,而且长于嵌入式领域的Khronos Group也未必对中高端图形API操作自如。

   微软这一边也并非一番风顺,自2000年11月就发布了DirectX8,D3D的实用性已经大大增强,但升级移植的过程让开发者们倍感痛苦。而今,随着DirectX10的临近,开发者们又要痛一次。dotNet平台似乎给开发者们带来了希望,在有人仍在大肆诟病dotNet平台时,已有不少厂商发行了基于MDX(Managed DirectX)的游戏和应用。然而已经Beta的MDX2.0中途夭折,让不少急性子的开发者叫苦不迭。而后又传来WinFX的Media3D和XNA将缺省使用业界标准的右手系,让习惯了D3D左手系的开发者苦笑不得。
Direct3D vs OpenGL的尾声(转)真是凄惨,在某种程度上来说,程序员才是可以随时被人左右,玩弄于股掌之中。一开始学图形开发的时候跟了DirectX8,买了一些启蒙的书自己嚼。后来下了决心开始学OpenGL,并且一发不可收拾,一直用到现在早已荒废了DX知识。打从微软开始频繁地更新DX9的时候就觉得DX迟早有一天会有翻身的机会,现在看来这个日子已经来到了。感觉上微软那软件大哥大的实力还是显示出来了,无论是官方的帮助文档,还是业内的社区网站,都比较倾向DX(Gameres,Gamedev)。况且OGL的2.0版本已经和 Duke Nukem Forever 一样,成了Duke Nukem If Ever 的后续了。不知道是悲哀还是无奈,就个人来说自己早已没有当年的冲劲,在迷惑之余也只能静静地站在一旁隔岸观火,不再想掺一脚了,累。


转载于:https://www.cnblogs.com/incyanggan/archive/2013/05/09/3176898.html

功能强大,更新日志   [1.7.17508] 2019/02/13   + 添加 CUBE/EAC 到 360 VR 播放格式   + 添加在播放列表中用后退键移动到父文件夹的功能   + 添加在简索中选择文件时不关闭的功能   + 添加使用 PotPlayer 扩展的 AngelScript   + 添加打开地址扩展   + 添加媒体播放列表/项目扩展   + 添加媒体源扩展   + 添加在线字幕扩展   + 添加在线字幕翻译扩展   + 添加 Crossfeed 到声音处理   + 添加字幕同步功能到上一/下一字幕   + 添加 AMD AMF H264 H/W 编码器   + 添加直播的音频模式   + 添加字幕上传功能   + 添加字幕下载功能到简索   + 添加”播放完当前后停止”功能到”收尾处理”   + 修正播放 tvingTV 时临时广告问题   + 添加在简索中输出所选项目的功能   + 添加创建书签播放列表的功能   - 修正登出未完成的问题   - 修正在某些视频中出现1-2帧同步错误的问题   - 修正无法从特定地址打开 ftp/webdav 的问题   - 修正播放某个 60 帧视频不流畅的问题   - 修正某些 HTTP 视频播放异常的问题   - 更改默认视频输出设备   - 改善内置 HTTP Async Reader 的浏览速度   - 更改播放列表处理以尽可能异步工作   - 修正播放某些 TS 文件没有声音的问题   - 改善字体的位图字串渲染速度   - 修正播放某些 swf 文件的问题   - 修正一些 srt/vtt 字幕的时间解析问题   - 修正 cook 音频解码时不同步的问题   - 修正下载字幕时未按语言排序的问题   - 改善 TS 的简索速度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值