🐻 OpenGL ES还有必要学吗还是一步到位到Metal?

1,780 阅读3分钟

本文为秋名山技术群聊天整理而来: 讨论metal和opengl es相关的东西,特此整理

以下为对话:

某A:

现在如果要学一下iOS下的图形api,OpenGLES还有必要学吗还是一步到位到Metal?

某A:

值得注意的是:

  • 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,但是仅仅停留在会用,但是不知道原理,所以先要打好基础

这文章内容还是19年5月份写的..我想知道现在市场上是什么情况了~~

某C

其实学一个,另一个也差不多,就是学会后你切换起来也不会费劲

某B

  • opengl es 我们通常会用c++或rust等跨平台语言封装一个库给iOS、Android使用,但部分特效还是和平台相关,所以iOS的opengl es api是有必要学习的。

  • opengl es 就我个人而言,上手难度大,毕竟是一个图形渲染框架,不是一门语言,理解起来比较晦涩,但好在资料较多,

  • metalkit 符合苹果的尿性,文档和资料都很容易理解,再加上有wwdc视频和一些专栏,非常适合初入者,结合GPUImage3 和 GPUImageByMetal 【我的】一起看,效果应该不错 还有: PixelKit

  • 现在直接用metal比较少,都是部分特效使用metal,大部分都是opengl es,这一点你可以扒几个图像的app包来确认

  • 等api熟练了之后,会发现都是数学问题,这个。。。。(不过后期这些可以划分出算法工程师,他们写算法,你来实现),比如美颜:双边滤波、导向滤波。

某B

傅里叶 这个男人将伴随你的一生

最后

其实我最开始学的是opengles、过了好久也没什么结果,直到开始接触metal,才算是步入正轨,再返回去看opengles 大致也就懂了。如果你想入图像相关的领域,可以先试试metal。(纯属个人见解)

  • metal 对于ios开发而言,写几行代码就能看效果,正所谓:说一万句,不如一个demo来的实在。

  • gpuimage 写的很好,早起都是用的这个,作为壳子够你玩了。可以看看

    • gpuimage1 oc+opengl
    • gpuimage2 swift+opengl(夭折了)
    • gpuimage3 swift+metal(更新贼慢)

一入豪门深似海,浪花掏空英雄。

metal相关学习资料: