一、图形API的简单介绍
1、OpenGL(Open Graphics Library) ,一门跨平台、跨编程语言的程序接口。一个标准,用来调度GPU处理事情的。
OpenGL主要是针对PC端(Mac、Windows)的。
2、OpenGL ES(OpenGL for Embedded System),ES = 嵌入式。它是 OpenGL 三维图形API的子集,可理解为比OpenGL少了一些API(许多不必要的和性能较低的API)
针对 移动端的,手机端安卓iOS系统、PDA(一般指掌上电脑)、游戏主机等嵌入式设备而设计,他去除了许多不必要的和性能较低的API。
A、OpenGL/OpenCV 两者区别简单介绍:
a、OpenGL主要做渲染 --> 显示位图 -->按钮图片等的显示都会以位图的形式处理,它们的显示就用到了OpenGL。
b、OpenCV主要用来识别,人脸识别、卡号识别、物体识别等(OpenCV face++:付费商用) --> 与人工智能的结合。
3、DirectX :由很多API组成,它并不是单纯的图形API,它是只支持Windows平台的一个多媒体处理框架,非跨平台框架,按性质可分为:显示部分、声音部分、输入部分、网络部分四大部分。
4、Metal :Apple为了解决3D渲染而推出的框架。游戏开发者的新的技术平台,该技术能够为3D图像提高 10 倍的渲染性能。苹果底层渲染是由Metal来实现的。
如上图,苹果的coreXXX,是基于OpenGL/Metal的高级封装,调coreXXX的时候其实就是在调度 OpenGL/Metal 来完成GPU的驱动。(2018年以前是OpenGL,后面就是Metal了)
二、图形API是干什么的?
解决渲染问题。
OpenGL/OpenGL ES/Metal 在任何项目中,解决问题的本质就是,利用GPU芯片来高效渲染图形图像。图形API是iOS开发者唯一接近GPU的方式。
1、系统针对按钮图片,视图、图层渲染问题
2、游戏引擎 --> 任务/场景渲染
3、视频播放框架 --> 视频解码(ijkplayer、kxmovie) --> 渲染
4、核心动画
5、视频/图片 --> 特效
6、离屏渲染?