OpenGL ES 2.0与Metal相比,学习曲线更陡峭吗?

5

我对3D图形非常感兴趣,听说许多开发者都对Metal赞不绝口。

有没有使用过Metal和OpenGL ES 2.0的开发者能够评论一下学习曲线的区别?

作为一个想要忠于iOS的初学者,Metal比OpenGL ES 2.0更容易学习掌握还是更难因为它更加先进?

希望这个问题对许多人有用,因为我正在努力找出从哪里开始。


1
最新的是OpenGL-ES 3.0,尽管它是2.0的超集,但这不会对学习曲线产生太大影响。 - user234736
2个回答

7
作为初学者,你可能更适合从较高级别的3D图形开始。 SceneKit 适用于 OS X 和 iOS,可让你根据其内容(几何、材质(纹理/着色)、灯光和相机)描述3D场景,并加载使用3D建模工具创建的资产。 SceneKit 建立在 OpenGL(ES)之上,因此它使用了许多相同的概念。当你熟悉这些概念时,你可以使用 SceneKit 逐步进入 OpenGL 的世界:
  • 使用着色器修改器编写GPU着色器代码,扩展SceneKit的功能
  • 使用自定义程序编写完整的着色器,替换SceneKit的着色器,或使用技术编写用于后处理SceneKit渲染的着色器
  • 使用几何源元素从您自己的顶点数据创建自定义几何体
  • 使用节点渲染委托编写自己的OpenGL客户端代码,可在场景中使用

您可以通过观看WWDC的SceneKit视频(“SceneKit有什么新功能”)(“使用SceneKit构建游戏”)来了解更多相关信息。


否则...OpenGL(ES)和Metal本身的学习曲线并没有非常不同。实际上,在某些方面,我认为Metal比OpenGL更易于接近--例如,许多在GL中可以执行的任务具有隐含且难以预测的性能成本,而这些任务的Metal模拟对它们对CPU或GPU时间的影响更加清晰,并允许您决定何时执行昂贵的工作。
另一方面,Metal是全新的--尚没有很多第三方资源可帮助您学习它。学习3D图形的许多困难之处在于无论您是在Metal、OpenGL、DirectX还是其他平台/API上工作,都非常相似。一旦您掌握了重要内容--有很多书籍和在线教程可供学习,但StackOverflow不是寻找它们的最佳方式--在特定平台上快速掌握Metal或OpenGL ES相当容易。

5

我来自OpenGL-ES背景,深入研究了Metal APIs。我认为Metal的学习曲线更陡峭,不是因为它是一个新API,而是因为它引入了开发人员以前不需要关注的低级构造。

如果您将固定管道OpenGL与着色器导向的OpenGL版本(在移动设备上:ES 1.x与ES 2.x、3.x)进行比较,最终与Metal进行比较,您会发现增强的API越来越通用化,脱离了Open-GL的历史基础构造(三角形、顶点、灯光)。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接