• Direct3D和openGL故事【转】


       自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 的后续了。不知道是悲哀还是无奈,就个人来说自己早已没有当年的冲劲,在迷惑之余也只能静静地站在一旁隔岸观火,不再想掺一脚了,累。

    阅读(734) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~
    评论热议
  • 相关阅读:
    Hadoop源码分析1: 客户端提交JOB
    《分布式系统原理与范型》习题答案 6.一致性和复制
    《分布式系统原理与范型》习题答案 5.同步
    《分布式系统原理与范型》习题答案 4.命名
    《分布式系统原理与范型》习题答案 3.进程
    《分布式系统原理与范型》习题答案 2.通信
    《分布式系统原理与范型》习题答案 1.绪论
    计算机基础知识面试
    机器学习面试题
    计算机网络面试题
  • 原文地址:https://www.cnblogs.com/black/p/5171961.html
Copyright © 2020-2023  润新知