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

时间:2014-07-23 13:15:48

标签: ios opengl-es opengl-es-2.0 metal

我对3D图形非常感兴趣,并听到许多开发人员对Metal赞不绝口。

使用Metal和OpenGL ES 2.0的人是否可以评论学习曲线与OpenGL ES 2.0的比较?

作为一个致力于保持对iOS忠诚度的初学者,Metal比OpenGL ES 2.0更容易学习和掌握,还是因为它更先进而更难?

我希望这个问题对很多人有用,因为我想弄清楚从哪里开始。

2 个答案:

答案 0 :(得分:7)

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

您可以通过观看WWDC中的SceneKit视频找到有关所有这些内容的更多信息:What's New in SceneKitBuilding a Game with SceneKit


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

另一方面,Metal是全新的 - 目前还没有很多第三方资源可以帮助您学习它。无论您是使用Metal,OpenGL,DirectX还是其他平台/ API,学习3D图形的许多难题都非常相似。一旦你学到了重要的东西 - 有大量的书籍和在线教程,但StackOverflow并不是寻找它们的最佳方式 - 在特定平台上使用Metal或OpenGL ES的速度非常快容易。

答案 1 :(得分:5)

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

如果将固定管道Open-GL与面向着色器的Open GL口味(在移动设备上:ES 1.x与ES 2.x,3.x相比)进行比较,最后使用Metal,您所拥有的越来越强大,越来越强大通用API脱离了构成Open-GL历史基础的直观结构(三角形,顶点,灯)。

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