图形API和GPU简介
为了在各平台实现的图形图像的高效渲染,减少开发者重复工作,出现了一批优秀的API,如下简单的介绍一下这些API
OpenGL(官网)
用于渲染2D、3D矢量图形的跨语言、跨平台的编程图形程序接口,OpenGL是对计算机资源的抽象化,通过设备驱动程序将OpenGL指令传递给图形硬件,展示在屏幕上.OpenGL具有建模、变换、颜色模式设置、光照和材质设置、纹理映射、双缓存动画、图像现实图像增强等功能,常用于CAD、虚拟现实、科学可视化程序和电子游戏开发.
OpenGLES
是OpenGL三位图形API的子集,去除了很多非必要的特性,针对手机、PDA和游戏主机等嵌入式设备而设计.
DirectX
并不是一个单纯的图形API,它是由微软公司开发的用途广泛的API,按照性质可以分为显示部分、声音部分、输入部分、网络部分,广泛使用于Microsoft Windows、Microsoft XBOX、Microsoft XBOX 360和Microsoft XBOX ONE电子游戏开发.最重要的是DirectX是属于Windows上的一个多媒体处理API.并不支持Windows以外的平台,所以不是跨平台框架.
Metal
Apple为游戏开发者推出了了新的平台技术 Metal,该技术能够为 3D 图像提高10倍的渲染性能.Metal 是Apple为了了解决3D渲染⽽而推出的框架
OpenGL和DirectX的区别(参考文章)
1在技术方面,OpenGL具有较强的可移植性,而DirectX只能用于 windows操作系统,它是基于windows操作系统平台的应用程序接口。OpenGL只是图形函数库,是专业的3D程序接口,OpenGL被设计为 只有输出,因此只提供渲染功能。核心API没有窗口系统,音频,打印等其他输入设备的概念。也正是因为这样的设计,允许它渲染的代码完全独立于运行的操作 系统,允许跨平台开发。
DirectX是微软公司开发的用途广泛的API,它提供了一整套多媒体接口方案,尤其在3D图形方面的表现突出。在硬件通信方面,DirectX是程序能够轻松确定计算机的硬件性能,然后设置与之匹配的程序参数。该程序使得多媒体软件程序能够在基于windows的具有DirectX兼容硬件与驱动程序的计算机上运行,同时确保多媒体程序能够充分急用高性能硬件。
OpenGL是一个与硬件无关的软件接口,可在任何平台上运行,与DirectX能设置与硬件匹配的程序参数相比,要逊色一些。目前,硬件开发商正在加强对它的支持。
2在应用方面,在专业高端绘图领域,OpenGL仍然是不能被取代的主角, 在包含CAD,内容创作,能源,娱乐,游戏开发,及虚拟现实等行业领域中,OpenGL得到广泛的应用。DirectX适合于多媒体,娱乐,及时3D动画
等广泛和实用的3D图形计算,在基于windows平台上的游戏开发中,它占领了大部分的市场。
图像API简单的来说就是实现图形的底层渲染
比如在游戏开发中,对于游戏场景/游戏人物的渲染、在音视频开发中,对于视频解码后的数据渲染、在地图引擎,对于地图上的数据渲染、在动画中实现动画的绘制、在视频处理中,对视频加上滤镜效果等
图形处理器
图形处理器(英语:Graphics Processing Unit,缩写:GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。
GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作,尤其是在3D图形处理时GPU所采用的核心技术有硬件T&L(几何转换和光照处理)、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬件T&L技术可以说是GPU的标志。GPU的生产商主要有NVIDIA和ATI。
GPU是显卡的核心,显卡,则是由GPU、显存、电路板,还有BIOS固件组成的,所以GPU不等于显卡,GPU本身并不能单独工作,只有配合上附属电路和接口,才能工作。
图形处理器由以下器件组成:
(1)显示主芯片显卡的核心,俗称GPU,它的主要任务是对系统输入的视频信息进行构建和渲染。
(2)显示缓冲存储器用来存储将要显示的图形信息以及保存图形运算的中间数据;显示缓存的大小和速度直接影响着主芯片性能的发挥。
(3)RAMD/A转换器把二进制的数字转换成为和显示器相适应的模拟信号。
CPU和GPU大不相同,是由于其设计目标不同,它们分别针对了两种不同的应用场景。CPU主要是负责多任务管理、调度,它是领导者,负责指挥。计算能力方面没有GPU强。而GPU主要是用于大量的重复计算,它是计算专家,但协议、管理不是它的专长。它的计算执行能力很强。