很重要的历史缘由 @vczh已提到了。对从游戏开发者角度而言,OpenGL 曾是个没人用的东西,Windows / Xbox 上可以用 DirectX,PS3 和 Wii 则又是另外的图象API。直到iPhone的兴起,OpenGL 竟然又活了过来,你看现在连 WebGL 都出现了,有1种统1天下的感觉。游戏开发者又开始重视 OpenGL 了,固然主要还是 OpenGL ES。对显卡公司而言,Windows 上的 D3D 驱动特别重要,会针对各种流行游戏进行定制、优化、hack……至于 OpenGL 驱动,仿佛只要满足 CAD 大厂的需求便可,毕竟几近没有 Windows 上的 OpenGL 游戏啊……现阶段,从性能斟酌(D3D 驱动会特别优化),大型的游戏还是以 D3D 的情势发布,不排除 OpenGL 的优化上去以后也会有大型的桌面 OpenGL 游戏。对微软而言,他对OpenGL的限制非常多,比如WindowsRT,Windows Phone是不支持OpenGL,Windows商店里的利用也必须是DirectX的。
个人感觉是 OGL 的API 不好用。话说现在宣传转投OGL的1部份缘由居然是中国网吧大部份都还在用XP,DX新特性没法用……
移动时期已然来临,现状正改变。而且windows专有游戏渐渐会出人们的视野。再看API状态会大不同。
近10年来,opengl追逐dx就跟java追逐C#1样。opengl本来是1种设计来做CAD的api,后来被用来弄游戏,火了以后不思进取,造成了计算模型落后到爆炸,后面才渐渐改成了dx11现在的模样的。而且opengl煞笔还要怪那些A开头公司的编译器。尽人皆知,1个公司1旦以A开头,那他自主研发的编译器就跟垃圾1样。opengl(和opencl1样)标准要求驱动程序自己去写编译器,就别说linux了,在windows上不同的卡都有相互不兼容的bug。而directx的标准要求驱动程序解释1个指令集的中间语言,不兼容的情况就少了好多,虽然还有,但是已没甚么所谓了。不过由于底子不好,opengl的api用起来始终没有dx11那末舒服。P.S.,由于opencl也是1个德行,在windows上的A卡定义1个struct都会致使驱动程序崩溃甚么的,让人怎样用啊,只能选cuda或directcompute了。
曾有人说OpenGL是状态机模型,所以它更加贴近硬件,效力更高,云云。事实上这些说法都是狗屁,状态机只是OpenGL的设计者们1时的喜好而已。初期硬件还没有现在设计这么复杂,固然是状态机为主的没错,但是也和OpenGL的状态机8杆子打不着关系。两套状态机的映照,bug多,overhead大。所以为何专业显卡买那末贵?和硬件关系不大,基本上你多出的钱,9成都是交给驱动了。固然,斟酌到利用领域,OpenGL提供了很多不错的特性,比如即时绘制,积累缓冲,Polygon,AA Line等等,但是这些特性都是给CAD这样的工业软件用的,游戏基本上用不着。既然好的都用不着了,状态机那套时期渣滓,就更犯不着继承了。因而Game开发者就都去用DX了。如果Linux上有类似于DX的接口,只要它真正被广泛支持了,包括但不限于OpenGL DSA 扩大,相信我,没有哪一个开发者会脑袋抽风继续跟随坑爹的状态机的。
你要知道,最少到vs2008,vs自带的opengl头文件都只是1.1版本的,你这叫人如何用?微软为了发展DX抑制OpenGL几近每本OpenGL书籍都会提到。-------分割更新--------再有就是DX的SDK属于虽然要自己下而且很大但是可以开箱即用,OpenGL就不1样了,glew,glext,glut等等1大堆各式版本的头文件,还要自己保证兼容等等问题……不说了,都是泪
Photoshop|
Dreamweaver|
SVG|
WebGL|
Visual Studio|
PowerDesigner|
Eclipse|
Git|
Apache Ant|
Atom|
Composer|
CodeSmith|
Flex|
Gradle|
Maven|
Sublime Text3|
SVN|
Tableau|
Vim|
Chrome开发者工具|
OpenGL|
Unity|
Direct3D|
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....