常见的图形API
目前比较常见的图形API主要有以下几种
- OpenGL
- OpenGL ES
- OPenCV
- DirectX
- Metal
下面来具体介绍下各种API的特点
OPenGL(Open Graphics Library)
- OpenGL是一个跨平台、跨语言的编程图形框架,主要用于windows、mac等PC端
- 它将计算机资源资源抽象成一个个OpenGL对象,对这些资源的操作抽象为一个个OpenGL指令
要点
- 跨平台、跨语言
- OpenGL对象:计算机资源
- OpenGL指令:对计算机资源的操作
OpenGL ES(OpenGL for Embedded Systems)
- OpenGL ES 是OpenGL三维图像API的子集,主要是针对嵌入式设备的图形处理,比如安卓、iOS等
- 去除了许多不必要和性能较低的接口
要点
- 跨平台:ios、安卓等移动端,以及嵌入式设备
- 兼容GLSL
OpenCV(Open Source Computer Vision Library)
- OpenCV 与 OpenGL是图形API中两个大的分支,类似于iOS中的OC和swift,是两个不同的方向
- OpenCV主要用于识别技术,例如人脸识别、身份识别、物体识别等,
- 该API的使用需要与人工智能相结合
- 目前市面上用的最多的识别三方是 face++,且是收费的,支付宝等大厂的识别功能也是集成的face++
要点
- 跨平台、跨语言
- 识别API
- 与人工智能结合
DirectX
- 由很多API组成,是一个多媒体处理框架,并不是单一的图形API
- DirectX仅支持Windows平台
- 该框架可以大致分为4类
==> 显示+声音+输入+网络
要点
- 非跨平台:只支持Windows
- 多媒体处理API
Metal
- Metal是苹果为了解决3D渲染问题而推出的框架
- 可以将3D渲染图像的性能提高10倍
- Apple为游戏开发者提供的新的平台技术
- 苹果系统中的CoreGraphics、CoreAnimation、CoreImage框架在2018年以前是基于OpenGL ES封装的,在2018年以后是基于Metal封装的
要点
- Apple平台新的图形API
- 提高了3D渲染性能
- CoreGraphics、CoreAnimation、CoreImage目前是基于Metal封装的
图形API的目的
一句话概括:图形底层渲染的实现
解决了什么问题
- 系统针对按钮、图片、视图、图层的渲染
- 游戏开发中,游戏场景、人物的渲染
- 音视频开发中,视频解码数据的渲染
- 核心动画开发中,旋转、平移、缩放等动画操作中图层特效的渲染
- 视频处理中,路径效果的实现
- 离屏渲染
总结
- OpenGL、OpenGL ES、Metal在任何项目中解决问题的本质就是利用GPU芯片高效渲染图形图像
- 图形API,是iOS开发者接近GPU的唯一方式