当初接触OpenGL的时候,也关注到了苹果爸爸弃用的问题,心里想着,苹果爸爸都弃用了OpenGL/Open LG ES,那么学这东西还有什么用呢?
值得注意的是: 1、苹果自身的系统迁移到Metal是花费了4年时间 2、在没有推出Metal时,苹果对于OpenGL ES是高度集成且配合相应图层和GLKit来辅助开发者能快速使用OpenGL ES 3、OpenGL ES的弃用,只是针对苹果内部系统底层API依赖而言,并不是想让iOS开发者从此不使用OpenGL ES。只是角色变成了第三方,毕竟它的跨平台以及稳定是很难让现有的开发放弃,而这几点Metal目前很难做到 4、目前大多数类似百度地图、高德地图和音视频处理的项目组已经很庞大了,暂时不会迁移到Metal,所以只学习Metal是不够用的 5、所以学习需要一步一步的走OpenGL -> OpenGL ES -> Metal,这个也是亲身体会,之前尝试过上来就学GPUImage或者是OpenGL ES,但是仅仅停留在会用,但是不知道原理,所以先要打好基础
本篇文章的目的
-
快速了解图形API
-
快速了解OpenGL下专业名词
1、图形API
1.1 图形API简介
-
OpenGL(Open Graphics Library):是一个跨编程语言、跨平台的编程图形程序接口,它将计算机的资源抽象称为一个个OpenGL的对象,对这些资源的操作抽象为一个个的OpenGL指令。
-
OpenGL ES(OpenGL for Embedded Systems):是OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计的,去除了许多不必要和性能较低的API接口。
-
DirectX:是由很多API组成的,DirectX并不是一个单纯的图形API。最重要的是DirectX是属于Windows上一个多媒体处理API。并不支持Windows以外的平台,所以不是跨平台框架。按照性质分类,可分为四大部分,显示部分、声音部分、输入部分和网络部分。
-
Metal:Apple为游戏开发者推出了新的平台技术,该技术能够为3D图像提高10倍的渲染性能。Metal是Apple为解决3D渲染而推出的框架
1.2 图形API的目的是解决什么问题
简单的说就是实现图形的底层渲染
-
比如在游戏开发中,对游戏场景/游戏任务的渲染
-
比如在音视频开发中,对于视频解码后的数据渲染
-
比如在地图引擎,对于地图上的数据渲染
-
比如在动画中,实现动画的绘制
-
比如在视频处理中,对于视频加上滤镜效果
本质:就是利