5

I'm very interested in 3D graphics and heard many developers raving about Metal.

Can someone who has worked with Metal and OpenGL ES 2.0 comment on how the learning curve compares to OpenGL ES 2.0?

As a beginner who aims to stay loyal to iOS, is Metal easier to learn and master than OpenGL ES 2.0 or is it harder because it is more advanced?

I hope this question will be useful to many as I am trying to figure out where to start.

4

2 回答 2

7

作为初学者,从更高级别的 3D 图形开始可能会更好。适用于 OS X 和 iOS 的SceneKit让您可以根据内容描述 3D 场景——几何、材质(纹理/阴影)、灯光和相机——并加载使用 3D 建模工具创建的资产。SceneKit 建立在 OpenGL (ES) 之上,因此它使用了许多相同的概念。随着您熟悉这些概念,您可以使用 SceneKit 逐步进入 OpenGL 世界:

通过观看来自 WWDC 的 SceneKit 视频,您将找到有关所有这些的更多信息:SceneKit的新功能使用 SceneKit 构建游戏


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

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

于 2014-07-23T17:17:20.167 回答
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 的主要目标。该框架的目标是帮助开发人员摆脱驱动程序开销。

于 2014-07-25T09:29:52.110 回答