Ios OpenGL ES 2.0的学习曲线是否比Metal更陡峭?

Ios OpenGL ES 2.0的学习曲线是否比Metal更陡峭?,ios,opengl-es,opengl-es-2.0,metal,Ios,Opengl Es,Opengl Es 2.0,Metal,我对3D图形非常感兴趣,并听到许多开发人员对金属的狂言 使用过Metal和OpenGL ES 2.0的人能否评论一下学习曲线与OpenGL ES 2.0的比较 作为一名致力于忠实于iOS的初学者,Metal是比OpenGL ES 2.0更容易学习和掌握,还是因为它更先进而更难掌握 我希望这个问题对很多人都有用,因为我正试图找出从哪里开始。作为初学者,从更高层次的3D图形开始可能会更好。对于OS X和iOS,您可以根据3D场景的内容(几何体、材质(纹理/着色)、灯光和摄影机)来描述3D场景,并加载

我对3D图形非常感兴趣,并听到许多开发人员对金属的狂言

使用过Metal和OpenGL ES 2.0的人能否评论一下学习曲线与OpenGL ES 2.0的比较

作为一名致力于忠实于iOS的初学者,Metal是比OpenGL ES 2.0更容易学习和掌握,还是因为它更先进而更难掌握


我希望这个问题对很多人都有用,因为我正试图找出从哪里开始。

作为初学者,从更高层次的3D图形开始可能会更好。对于OS X和iOS,您可以根据3D场景的内容(几何体、材质(纹理/着色)、灯光和摄影机)来描述3D场景,并加载使用3D建模工具创建的资源。SceneKit是基于OpenGL(ES)构建的,因此它使用了许多相同的概念。随着您对这些概念的熟悉,您可以使用SceneKit一次一点地进入OpenGL世界:

  • 用于编写扩展SceneKit的GPU着色器代码
  • 用于编写替换SceneKit渲染的完整着色器,或编写对SceneKit渲染进行后处理的着色器
  • 使用&
  • 使用来编写在场景中工作的自己的OpenGL客户端代码
通过观看WWDC和的SceneKit视频,您将发现更多关于所有这些的信息


否则。。。OpenGL(ES)和Metal本身并没有非常不同的学习曲线。事实上,在某些方面,我认为金属比OpenGL更容易接近——例如,在GL中可以做的许多事情都隐含和难以预测性能成本,这些任务的金属类似物更清楚地了解它们对CPU或GPU时间的影响,并允许您决定何时完成昂贵的工作。


另一方面,金属是全新的——目前还没有很多第三方资源来帮助您学习金属。无论您是在Metal、OpenGL、DirectX还是其他平台/API中工作,学习3D图形的许多困难都非常相似。一旦你学会了重要的东西——有很多关于这方面的书籍和在线教程,但是StackOverflow并不是寻找它们的最佳方式——在特定平台上使用Metal或OpenGL ES是非常容易的。

来自OpenGL ES背景,我对Metal API有了很好的了解。我相信Metal的学习曲线更陡峭,不是因为它是一个新的API,而是因为它引入了开发人员以前不需要担心的低级构造

如果比较固定管道开放GL与面向着色器的开放GL味道(在Mobile:ES 1 .x与ES 2、x、3 x相比),最后用金属,你所拥有的是越来越强大的,越来越通用的API,从直观的构造(三角形、顶点、灯)中分离出来,这构成了开放GL的历史基础。


请记住,创建更可用的API并不是Metal的主要目标。此框架的目标是帮助开发人员消除驱动程序开销。

最新版本是OpenGL ES 3.0,尽管这不会对学习曲线产生太大影响,因为它是2.0的超集。