孟岩ID:myan
[修改头像]
1547167次访问,排名6好友1人,关注者31
总是在思考存在的问题
myan的文章
原创 145 篇
翻译 0 篇
转载 3 篇
评论 5190 篇
最近评论
lyaqys:强烈同意,只懂技术,开发出来的东西用户都不知道怎么用,有什么用啊!
cryingzgz:爱学什么就学什么吧~
路是自己走的
真正对计算机有兴趣的人,根本用不着指引
他自己会向底层钻研的
而最后对计算机发展做出杰出贡献的人
也基本都是对计算机有兴趣的人
这就是软件工人和软件科学家的区别

PS:我什么也不是,只不过发表一些感想而已
jcc3120:mark
gxj760998:中国开发者的一个大的特点就是对技术痴迷的同时不食人间烟火,整天津津乐道的就是那些算法、数据结构、设计模式、语言技巧、技术规范,对于普通老百姓关心的东西一概没有兴趣。我们中的大部分人对于时尚、化妆品、小资情调嗤之以鼻,对于电影、音乐、艺术、美食一知半解,对于地产、金融、法律知识一窍不通,对于一个普通老百姓市场生活中所能遇到的困难和问题,所追求的那一点享受和乐趣不闻不问,既不愿意亲身实践,更在主……
campuspuzzle:楼上的这个解释和比喻恰当,搞地基的虽然也有竞争,但门槛高,抢饭碗的少。现在说这些其实又回到了圆圈的起点,以前是说做系统和应用,我们放弃系统,做好应用,后来互联网出现了,国内的互联网公司还不错,出了百度,腾讯这样的大公司,也掌握了些核心技术,可以和洋人对抗了。但现在互联网又有向平台发展的趋势,所谓云计算,数据中心等等,这样的话,可能出现跟以前一样的系统和应用的分工,如果这样的局面出现的话,国内……
文章分类
收藏
    相册
    测试
    友情链接
    老赵的博客
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 微软与开放——不得不说的故事(3)(转载)

    新一篇: 银光来了,银子还远吗?——美国之行总结短评之二

    本文原载于《程序员》杂志2008年第2期,经原作者同意转载。


    3.SGI沦陷
    1990年代中期,3D硬件还是昂贵稀罕的东西,无论是OpenGL还是Direct3D,很多时候实际的渲染是软件实现的。所谓软件渲染,也就是通过CPU计算来实现渲染效果。人们发现,在微软的Windows平台上,OpenGL的软件渲染速度比Direct3D慢很多倍。微软对此的解释是,OpenGL本身的设计是面向CAD类应用的,适用于精确严格的渲染,因此必须搭配昂贵的3D硬件才能表现突出。如果你想只用软件来模拟,对不起,由于OpenGL设计上的某些“缺陷”,它就是比DirectX慢很多倍,因为后者是从头到脚面向实时渲染而设计的。然而计算机图形专业人士怀疑,这根本就是不实之词,OpenGL与Direct3D在性能表现上的差异,根本就与设计无关,完全是因为微软没有用心实现OpenGL。但是光怀疑没用,你说微软实现得不好,你自己实现一个看看?说实话,这可不是一个容易的事情,没有两下子是绝对没戏的。

    这时候,SGI站出来了。1996年,在新奥尔良举办的SigGraph会议上,SGI展示了他们实现的OpenGL for Windows,并且把Direct3D的几个流行demo移植到OpenGL上,将两者进行了针锋相对的比较。结果是显而易见的,OpenGL不但不比Direct3D慢,而且在某些方面还更胜一筹。API之战的第一回合,OpenGL获胜,结果不但是OpenGL给自己正了名,而且还迫使微软优化了自己的OpenGL实现。

    不过,对于游戏开发来说,软件渲染还是太慢,无论是OpenGL还是Direct3D,软件渲染做做Demo还可以,要开发好玩的3D游戏,没有硬件支持那是不行的。1990年代中后期,3D硬件越来越便宜,迅速普及到家用PC上,这才使得高性能视频游戏飞入寻常百姓家。这时候,哪个API得到更广泛而高质量的硬件支持,哪个API就会表现出色。于是API之战的第二回合,就成为驱动程序之战了。而在这一方面,微软凭借其强大的产业控制力,显然占据优势。

    战役主要发生在1997年。当时Windows 98正在做大规模的售前宣传,微软宣称,Windows 98将成为PC游戏玩家的最佳平台,因此,厂商们都在积极开发Windows 98上的游戏,争取在圣诞节大捞一票。到底是用OpenGL还是Direct3D呢?因为此前发生的Carmack公开信事件,很多游戏厂商都倾向于采用OpenGL。要在Windows 98上支持OpenGL,最好使用微软提供的一个驱动程序工具包,这个工具包基于微软开发的Mini-Client Driver(MCD),从而使得硬件厂商可以很轻松地开发OpenGL驱动程序。在1997年GDC大会上,大部分主流3D硬件厂商都展示了基于MDC的OpenGL驱动程序,但是由于MDC是微软的产品,而微软对OpenGL的态度又不明朗,因此游戏厂商还是不敢造次,老老实实地用DirectX开发。不久之后,游戏厂商的谨慎被证明是正确的,微软在1997年夏天,对那些企图在Windows 98上支持OpenGL的硬件厂商来了一次釜底抽薪,宣布说,除了开发阶段,任何厂商都不能获得MCD的使用许可。这等于是给那些基于MCD的OpenGL驱动程序判了死刑。一时间Direct3D无与争锋,仅仅一年时间就成为了3D游戏的事实标准。

    来而不往非礼也,SGI再一次挺身而出。早在微软釜底抽薪之前,SGI实际上就提供了自己的OpenGL驱动程序工具包,在其中,SGI使用了一种完全不同于MCD的驱动程序支持模型,称为Installable Client Driver(ICD)。要从纯技术角度来看的话,ICD的好处是性能高,缺点是比较复杂,总体来讲是不如MCD的。可无奈你微软上屋抽梯,让人家硬件厂商无路可走,于是只好跟着ICD打游击了。渐渐的,基于ICD的OpenGL驱动程序越来越多,很多有影响力的游戏厂商开始重新考虑支持OpenGL。在这种局面下,微软也只好顺水推舟,重新放开MCD限制,允许厂商在Windows 98上支持OpenGL。第二回合,微软先赢后输,虽然一时间称霸3D游戏API领域,但是胜利并不稳定。

    两回合下来,微软终于明白硬碰硬并不是好办法,需要另谋高招。1998年的SigGraph上,人们惊奇地发现,微软与SGI站在一起,宣布要共同开发一个新的、统一的3D图形API,他们称之为Fahrenheit Project。这个项目是谁构思出来的,微软是如何说服SGI的,现在已经无据可查。总之,按照当时的承诺,这个项目将在1999年或2000年推出实质产品。看到几年来拉锯般的3D API之战终于要结束了,合作时代即将到来,几乎所有人都兴奋不已。和平万岁!未来属于Fahrenheit!

    战争结束,合作开始,SGI以满腔热情投入了Fahrenheit的开发之中,不但不再全力支持OpenGL了,而且连自己的起家之本——基于MIPS的图形工作站,也甩掉一边。公允的说,SGI的动机也不是那么单纯。对他们来说,MIPS图形工作站的衰亡史不可避免的,这一点十分清楚。普通Wintel PC很快就会让高端图形工作站变成昂贵的废物。那么如何在PC市场重现荣光呢?Fahrenheit项目毫无疑问是一个很好的切入点,跟PC软件领域的霸主合作,使得SGI有机会进入这个超级庞大的市场,并掌握3D图形API的标准,这种好事,当然不可错过!

    问题在于,SGI看错了微软。微软岂能轻易放弃自己在3D领域好不容易获得的霸权,拱手把半壁江山让与SGI呢?到1999年年中的时候,情形已经非常明显,微软并没有遵守去年许下的诺言,事实上,微软除了派去几个专家参与制定Fahrenheit标准文档,做做表面文章之外,根本没有投入开发力量,从而把具体工作一口气全甩给SGI去做,让对手不再有足够资源投入到OpenGL上。同时,微软自己则继续将大笔资源倾注到DirectX的下一个版本——也就是日后打赢关键一仗的主力军——DirectX 7.0上。不但如此,微软还使出对付Borland和其它对手的老招数——挖角,不断以高官厚禄引诱SGI的顶级专家们。这样的搞法,Fahrenheit能成功才是见了鬼了。

    一来二去,全世界都明白了,SGI被忽悠了!不过为时已晚。2000年,DirectX 7.0问世,一时间横扫3D图形市场。而传说中的Fahrenheit呢?则还只是停留在概念上的东西。Fahrenheit总架构师David Blythe被微软成功挖角。如今,这个当年OpenGL领域数一数二的顶级大师已经摇身一变成为DirectX 10的主设计师和Windows Presentation Framework的主要设计者之一。好一个Fahrenheit项目!让微软人财两得,而SGI不单是赔了夫人又折兵,更失去了广大OpenGL社群的尊敬,不可不谓惨。

    打输这一仗,SGI算是把老底和老脸都输光了。自那以后,SGI每况愈下,直到2006年,终于难以支撑,向法院申请破产。一代高科技传奇,竟落得这般田地。

    好在毕竟技术底子雄厚,在2007年,SGI成功地经历了一次重组。重组后的SGI,变成了一个超级计算机、服务器集群和存储的系统厂商,跟图形已经基本没有关系了。不知道如今SGI的人看到公司名字里的“G”,鼻子会不会酸呢?

    好在OpenGL并没有因为SGI的沉沦而完蛋,相反,失去了商业巨头的支撑和控制,OpenGL反倒真正成了开放的API,获得整个产业的支持。

    4.凤凰涅磐
    进入21世纪之后,图形软件市场发生了有趣的变革。首先,由于Web的大发展,微软在桌面操作系统上一统天下的局面出现了松动。如今,人们开发一个桌面应用程序必须考虑在Windows和Mac,甚至还有Linux三个平台上的可移植性,这就使得OpenGL的标准和开放性成为一个重大的优势。其次,图形硬件市场实现了整合,nVidia和ATI成为GPU市场的领袖,它们具有足够的财力和技术实力,可以按照自己的意愿对OpenGL提供第一流的支持。第三,更重要的变革在于,PC已经不再是唯一的3D图形应用平台,智能家电、游戏机、手机、PDA、车载计算机、工业设备、机器人等都成为新的图形应用平台。在这些平台上,OpenGL是独一无二的首选方案。微软不但是后来者,而且恰恰因为微软在PC软件领域的巨大成功,从而引起整个产业对它四面设防,从而使它很难取得大的成功。

    2002年,OpenGL 1.4完成,使OpenGL在固定管线技术上达到了最高峰。2004年,划时代的OpenGL 2.0推出,引入了GLSL,允许开发者使用可编程管线功能,从而使OpenGL登上了现代图形硬件发展的快车。2006年8月,OpenGL 2.1发布,成为当前主流的OpenGL版本。

    凤凰涅磐的时刻即将到来。按计划,OpenGL 3.0将于2008年推出。这个新的标准在保留对传统API支持的前提下,从头开始全新设计,提出了更先进的图形概念和对象模型,从而走到了图形编程的最前沿。

    此外,更令人兴奋的或许是OpenGL ES。这个专供嵌入式系统使用的OpenGL“精简版”如今已经是手机、PDA、车载设备等嵌入式平台上的标准图形API。只要想想手机的用户量,我们就不难憧憬OpenGL ES的光明灿烂的前景。给所有人以希望,这就是开放的伟大之处。

    在以后的日子里,我们大概不会再见到十年前那样激烈的API战争了,因为开放已经成为我们每个人的共识。但是,这段历史却不应该被遗忘。正如马克吐温所说,历史不会简单的重复,而是会变奏式的重复。我们应该保持警惕,珍视开放和自由带给每个人的价值。(全文完)



     

    发表于 @ 2008年03月19日 13:18:00|评论(loading...)|编辑

    旧一篇: 苹果为什么这么红?——美国之行总结短评之一

    评论

    #krr2000 发表于2008-03-19 14:52:21  IP: 124.42.2.*
    good job,go on
    #zl747 发表于2008-03-19 15:16:45  IP: 222.190.117.*
    写的不错,但是怎么转载的2002年的,还有opengl2.0 glsl?
    by the way,csdn的论坛用户体验真叫差啊
    #goldou 发表于2008-04-11 19:18:49  IP: 210.14.94.*
    写得很棒!
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 孟岩