OpenCL、OpenGL和DirectX的区别

OpenCL是什么?

OpenCL全称开放计算语言(Open Computing Language),是第一个面向异构系统通用并行编程的开放免费标准。它也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统和手持设备编写高效、轻量级的代码。它还广泛用于其他并行处理器,如多核处理器(CPU)、图形处理器(GPU)、单元型架构和数字信号处理器(DSP)。它广泛应用于游戏、娱乐和其他并行处理器。

OpenCL 1.0主要由并行计算API和用于这种计算的编程语言组成。此外,它特别定义了:

1和C99编程语言的并行扩展子集;

2.适用于各种类型异构处理器的协调数据和基于任务的并行计算API

3.基于IEEE 754标准的数字条件;

4.高效地与OpenGL、OpenGES和其他图形API通信。

OpenGL是什么?

OpenGL?它是业界最广泛接受的2D/3D图形API。自诞生以来,它已经在各种计算机平台和设备上催生了数以千计的优秀应用程序。OpenGL?它独立于Windows操作系统或其他操作系统,网络透明。在包括CAD、内容创作、能源、娱乐、游戏开发、制造、医药行业和虚拟现实等领域,OpenGL?帮助程序员在PC、工作站、超级计算机等硬件设备上开发高性能、大冲击力、高视觉表现力的图形处理软件。

OpenGL(全写开放图形库)是定义跨编程语言和跨平台编程接口的规范。用于三维图像(二维也可以)。OpenGL是一个专业的图形编程接口,是一个强大而方便的底层图形库。OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。IRIS GL是工业标准的3D图形软件接口,功能强大但不具备可移植性,所以SGI在IRIS GL的基础上开发了OpenGL。OpenGL的英文全称是“开放图形库”,顾名思义,OpenGL是“开放的图形程序接口”。虽然DirectX全面引领家居市场,但在专业高端绘图领域,OpenGL是不可替代的主角。

Open GL仍然是唯一可以取代微软对3D图形技术完全控制的API。它仍然有一定的生命力,但是硅图不再以任何让微软不高兴的方式推广Open GL,所以它有很高的风险。游戏开发者是一个有独立思想的群体,很多重要的开发者还在用Open GL。因此,硬件开发商正在努力加强对它的支持。Direct3D目前还不能支持高端图形设备和专业应用;Open GL在这些领域占据主导地位。最后,开源社区(尤其是Mesa项目)一直致力于为任何类型的计算机提供Open GL支持,无论它们是否使用微软的操作系统。

OpenGL3.0版本于2008年正式发布。并且在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不得不说的故事。

业界对苹果OpenCL的支持将是其发展的重要因素。早在90年代中期,微软为了推广自己的DirectX图形软件和游戏工具,就试图阻止OpenGL成为行业标准。微软最初对Direct X的策略是推动DOS游戏开发者转向Windows。此后被绑定为Windows下的PC游戏服务,所以只支持Windows。

新版本DirectX的间歇性发布也推动了开发者转向最新版本的Windows。比如最新版本的DirectX 10,带来了很多Vista专用的游戏,促进了Vista的销量。但是并没有达到预期的效果,因为Vista的速度已经阻碍了DirectX10游戏的市场,开发者只能再次转向XP。

OpenGL和苹果

OpenGL的前身是80年代高端图形工作站厂商SGI开发的IRIS G,90年代初成为开源标准。当时微软在其Windows 95中发布了Direct3D,作为OpenGL的竞争对手。20世纪90年代末,微软和SGI开发了飞轮海项目,试图将两者结合起来,但没有成功。之后微软继续开发DirectX,与GPU厂商合作,留下OpenGL开发。

之后OpenGL几乎逐渐消失,直到90年代末,苹果放弃了自己的QuickDraw 3D,使用OpenGL作为Mac OS X的官方3D库..苹果的系统为OpenGL程序带来了许多支持者。OpenGL被Linux正式采用,现在主流的游戏平台,包括PSP、PS3、Wii都支持这项技术。

但微软的Xbox360是个例外,它使用了自己的DirectX图形库,排除了OpenGL。现在OpenGL对DirectX的竞争力比以前强了。微软计划在Windows 7中的DirectX 11中加入类似OpenCL的技术,实现GPGPU操作。不过苹果的OpenCL可以和OpenGL代码更紧密的配合,带来更广泛的支持。苹果还将OpenCL视为免费的开源标准,以便任何人都可以参与到该平台中。

OpenGL和OpenCL的相似性使得开发者更容易开发。比如OpenCL下的数据虚拟化计算,可以在OpenGL上渲染同一个对象。同时,OpenGL下的图形渲染可以在OpenCL下进行处理和转换。

OpenCL得到了GPU厂商NVIDIA和AMD,以及苹果、索尼和任天堂的平台,以及Linux和Windows的支持,任何公司的开发者都可以参与这项技术的开发。