【并行计算-CUDA开发】OpenCL、OpenGL和DirectX三者的区别

【并⾏计算-CUDA开发】OpenCL、OpenGL和DirectX三者的
区别
什么是OpenCL?
石云生  OpenCL全称Open Computing Language,是第⼀个⾯向异构系统通⽤⽬的并⾏编程的开放式、免费标准,也是⼀个统⼀的编程环境,便于软件开发⼈员为⾼性能计算服务器、桌⾯计算系统、⼿持设备编写⾼效轻便的代码,⽽且⼴泛适⽤于多核⼼处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并⾏处理器,在游戏、娱乐、科研、医疗等各种领域都有⼴阔的发展前景。
  OpenCL 1.0主要由⼀个并⾏计算API和⼀种针对此类计算的编程语⾔组成,此外还特别定义了:
  1、C99编程语⾔并⾏扩展⼦集;
  2、适⽤于各种类型异构处理器的坐标数据和基于任务并⾏计算API;玻璃粉
  3、基于IEEE 754标准的数字条件;
  4、与OpenGL、OpenGL ES和其他图形类API⾼效互通。
  什么是OpenGL?
  OpenGL™ 是⾏业领域中最为⼴泛接纳的 2D/3D 图形 API, 其⾃诞⽣⾄今已催⽣了各种计算机平台及设备上的数千优秀应⽤程序。OpenGL™ 是独⽴于视窗操作系统或其它操作系统的,亦是⽹络透明的。在包含CAD、内容创作、能源、娱乐、游戏开发、制造业、制药业及虚拟现实等⾏业领域中,OpenGL™ 帮助程序员实现在 PC、⼯作站、超级计算机等硬件设备上的⾼性能、极具冲击⼒的⾼视觉表现⼒图形处理软件的开发。
  OpenGL(全写Open Graphics Library)是个定义了⼀个跨编程语⾔、跨平台的编程接⼝的规格,它⽤于三维图象(⼆维的亦可)。OpenGL是个专业的图形程序接⼝,是⼀个功能强⼤,调⽤⽅便的底层图形库。OpenGL的前⾝是SGI公司为其图形⼯作站开发的IRIS GL。IRIS GL是⼀个⼯业标准的3D图形软件接⼝,功能虽然强⼤但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL。OpenGL 的英⽂全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接⼝”。虽然DirectX在家⽤市场全⾯领先,但在专业⾼端绘图领域,OpenGL是不能被取代的主⾓。
图灵奖  Open GL仍然是唯⼀能够取代微软对3D图形技术的完全控制的API。它仍然具有⼀定的⽣命⼒,但是Silicon Graphics已经不再以任何让微软不悦的⽅式推⼴Open GL,因⽽它存在较⾼的风险。游戏开发⼈员是⼀个有着独⽴思想的体,很多重要的开发⼈员⽬前仍然在使⽤Open GL。因此,硬件开发商3DMark 06>抗体酶
正在设法加强对它的⽀持。Direct3D⽬前还不能⽀持⾼端的图形设备和专业应⽤; Open GL在这些领域占据着统治地位。最后,开放源码社区(尤其是Mesa项⽬)⼀直致⼒于为任何类型的计算机(⽆论它们是否使⽤微软的操作系统)提供Open GL ⽀持。
  今年08年正式公布OpenGL3.0版本。并且得到了,nv的⽀持,其官⽅⽹站上提供针对N卡的sdk下载。
  什么是DirectX?
  DirectX是⼀种应⽤程序接⼝(API),它可让以windows为平台的游戏或多媒体程序获得更⾼的执⾏效率,加强3d图形和声⾳效果,并提供设计⼈员⼀个共同的硬件驱动标准,让游戏开发者不必为每⼀品牌的硬件来写不同的驱动程序,也降低⽤户安装及设置硬件的复杂度。这样说是不是有点不太明⽩,其实从字⾯意义上说,Direct就是直接的意思,⽽后边的X则代表了很多的意思,从这⼀点上我们就可以看出DirectX的出现就是为了为众多软件提供直接服务的。
  DirectX是由很多API组成的,按照性质分类,可以分为四⼤部分,显⽰部分、声⾳部分、输⼊部分和⽹络部分。
  显⽰部分担任图形处理的关键,分为DirectDraw(DDraw)和 Direct3D(D3D),前者主要负责2D
图像加速。它包括很多⽅⾯:我们播放mpg、DVD电影、看图、玩⼩游戏等等都是⽤的DDraw,你可以把它理解成所有划线的部分都是⽤的DDraw。后者则主要负责3D效果的显⽰,⽐如CS中的场景和⼈物、FIFA中的⼈物等等,都是使⽤了DirectX的 Direct3D。
  OpenCL、OpenGL和DirectX之间不得不说的故事
  业界对Apple的OpenCL的⽀持将成为它发展的重要因素,早在90年代中期,微软就曾经努⼒阻⽌OpenGL成为⾏业的标准,以推⾏⾃⼰的DirectX显卡软件和游戏⼯具。微软的Direct X起初的战略是为了推动DOS游戏开发者转向Windows,从此之后它就被绑定在Windows下为PC游戏服务,所以它仅⽀持Windows。
  断发布新版的DirectX也推动了开发者转向最新版的Windows,⽐如最新版的DirectX 10就带来了不少Vista专属游戏,从⽽推动了Vista 的销量,然⽽它并未达到预期的效果,因为Vista的速度阻碍了DirectX10游戏的市场,开发者只能将⽬标再次转向XP。
  OpenGL和Apple
  OpenGL的前⾝是⾼端图形⼯作站⼚商SGI在80年代所开发的IRIS G,它在90年代初期成为了开源的标准。当时微软在它的Windows 95中发布了Direct3D,将它作为OpenGL的竞争对⼿。⽽在90年代末,
微软曾经和SGI进⾏了Fahrenheit项⽬的开发,试图将两者结合起来,但是没有成功。之后微软继续开发DirectX并与GPU⼚商合作,留下OpenGL任其发展。
  OpenGL之后⼏乎逐渐消失,直到90年代末Apple放弃了⾃⼰的QuickDraw 3D,将OpenGL作为Mac OS X的官⽅3D库。Apple的系统给OpenGL程序带来了不少拥护者。之后OpenGL正式被Linux采⽤,现在主流的游戏平台,包括PSP,PS3 和Wii都⽀持该技术。
  但是微软的Xbox360例外,它采⽤了⾃⼰的DirectX 图形库,⽽将OpenGL排除在外。如今OpenGL对DirectX来说⽐以前更有竞争⼒了。⽽微软计划在Windows 7中的DirectX 11增加类似于OpenCL的技术,以实现GPGPU运算。但是Apple的OpenCL能更紧密地与OpenGL 代码协同⼯作,能带来更⼴泛的⽀持。 Apple还将OpenCL作为⼀个免费的,开源的标准,让任何⼈都能参与到该平台中来。
  OpenGL和OpenCL设计的相似性,使开发者更易于开发。⽐如在OpenCL下进⾏数据虚拟化计算,可以把相同的对象在OpenGL上进⾏图形渲染。同时OpenGL下的图形渲染可以在OpenCL下进⾏处理和转换。
为了饮食安全  OpenCL得到了GPU⼚商NVIDIA和AMD的⽀持,同时⽀持Apple,SONY,任天堂的平台,还⽀持Linux和Windows,⽽且任何公司的开发者都可以参与到该技术的发展中来。

本文发布于:2024-09-21 18:45:16,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/14631.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:游戏   图形   开发
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议