Metal:对开发者和用户来说意味着什么

1649 篇文章 11 订阅
1623 篇文章 22 订阅

苹果在今年的 WWDC 开发者大会一下子给我们灌输了好几个新的名词。作为普通用户,我们从媒体的相继报道了解到了什么是 HomeKit,什么是 HealthKit,它们分别能为我们做些什么。可其中一个技术却鲜有报道,但是在 WWDC 发布会现场的演示却是给我们带来最深的印象。那就是苹果的新图形显示技术 Metal。

评论:30  查看:18544

何为Metal

撰文:Lydia
  苹果在今年的 WWDC 开发者大会一下子给我们灌输了好几个新的名词。作为普通用户,我们从媒体的相继报道了解到了什么是 HomeKit,什么是 HealthKit,它们分别能为我们做些什么。可其中一个技术却鲜有报道,但是在 WWDC 发布会现场的演示却是给我们带来最深的印象。那就是苹果的新图形显示技术 Metal。

  简言之,Metal 是苹果对图形处理器的新编程方法。苹果声称无需对硬件做出改变就能让图形显示性能提升,并称游戏即使在 60 fps 的帧速率下的画面更加细腻。听起来像变了场魔术。实际上的效果怎样呢?

Metal能释放硬件

撰文:Lydia
  总结地说,Metal 的确正如苹果所说的,它可以释放硬件的性能,即 A7 的“本质”。

  图形处理器本质上就是巨大的“状态机”。把它想象成一块巨大的古老的板,上面布满了开关和表盘,每个开关标注有特定的功能。并不是所有的功能都能一起使用,但你可以随时切换这些开关。你手动进行的切换和操作将决定了“系统的状态”。

  图形编程员的工作是打开正确的开关,然后用几何体填满处理器。这就是苹果在谈到 Metal 每帧能够处理的“描绘指令”(draw call)时所指的。

  使用 OpenGL,目前制作图像的标准是,编程员可以单独打开每个开关,单独调试好表盘。每次做出这些操作后,图形处理器就不得不检查一遍,这个巨大机器的状态是否可行。

  而使用 Metal 就不同了。编程员可以先定义好他们想要机器达到的状态,然后简单地应用这些状态即可。他们不再需要单独设置,而且要不偏不倚,正确设置。使用 Metal 的过程更像是从菜单选择你想要的食物。


Metal 让游戏开发者更容易地发挥设备硬件的性能

  从用户的角度来看,这些听起来跟他们无关紧要。但是最终效果将产生明显的改善。

Metal的魔力

撰文:Lydia
  Metal 是根据如今 GPU 和 CPU 的工作原理而设计的,尤其是针对苹果的 A7。A7 将 GPU 和 CPU 整合到一块芯片,共享一个内存池。

  OpenGL 更多是基于这样的理念,即 GPU 为单独的显卡。但现实是, GPU 和 CPU 共享一个内存池,在这种情况下,Metal 能释放更多性能。管理绘图必需的资源变得越来越简单和快速。许多效果,譬如倒影,要求绘制情景到一张图像,然后再把这张图像导入最终情景。Metal 简化了很多。


在 WWDC 大会上,游戏开发者展示 Metal 技术带来的惊叹效果


  现代 GPU 和 CPU 都内置多个核心——它们会走,会说,会跑,会跳,并能同时进行这些事情——Metal 提供一种方法,通过允许图形命令的多处理,来释放所有这些能力。相比之下,OpenGL 总是单线程的,不能使硬件的性能尽可能地发挥极致。

  Metal 释放的不仅仅是图形显示的性能,它还支持一种叫做“通用图形单元计算”的模式——是指,使用 GPU 运行一些没必要跟图形有关的软件。OpenCL,Mac 用户应该很熟悉,是一个面向异构系统通用目的并行编程的开放式免费标准,是用来编写执行 GPU 的软件的一种开源标准。Metal 将这种通用用途的图形编程功能带到 iOS。顾名思义,OpenCL 与 OpenGL 非常相似,所以 Metal 的设计对 OpenCL 同样有益,正如 Metal 对 OpenGL 的益处一样。这里来看,处理器共享内存也有很大的好处。


Metal 的好处很多,不仅仅只对游戏和图形显示有好处

  多线程访问也是一样的。利用 Metal 的通用计算能力,我们将开始看到 A7 发挥出意想不到的性能。一些从 OS X 移植到 iOS 的应用程序将能更好地利用 iOS 的 GPU,使软件完成前所未有的任务。

  听起来很牛逼。但是对普通 iOS 设备用户来说意味着什么呢?在某些情况下,Metal 的进步就像建造大型强子对撞机——我们实际上不知道会有何种机遇,但这是个勇敢的新世界,充满了无限可能。

  说实际的,用户肯定能看到一些好处,比如载入速度变快了,情景画面更细腻了,大量的应用程序可能都可以使用 GPU 作为一个计算平台。

Metal是重大策略举措

撰文:Lydia


已有几家大型游戏开发商承诺支持Metal

  当然,不是因为有了 Metal 就不费吹灰之力地实现这些。开发者需要采用新系统编写他们的软件。但好消息是,许多大型的 iOS 游戏公司已经做出这方面的承诺。Unreal 和 Unity 这两大游戏引擎也都已经表示将支持 Metal。因此,即使开发者自己不想去思考如何执行 Metal,只要使用这两大游戏引擎,就能让自己的软件得到提升。游戏开发者也不需要花精力去重新编写。

  另外,研究 Metal 也隐藏着苹果的策略。苹果需要自己控制自己的产品体验。与其把自己的命运跟科纳斯组织绑在一起,苹果宁愿自己掌握,以便在需要的时候尽可能快地改进 Metal。(科纳斯组织是是一个由成员资助的,专注于制定开放标准(Open standard)的行业协会,重点制定免费的API,使在各种平台和设备上创作或播放的多媒体可以得到硬件加速。OpenGL 和 OpenCL 都在其工作组内。)

  这是一个重大的策略举措,因为这标志着苹果认为他们拥有大量的开发者群体,设备使用的数量也足够庞大,这些资本足以支持苹果走自己的路。同时也意味着,苹果开始更认真地对待 iOS 游戏体验。在手游市场能否击退传统家机市场的争辩中,iOS 游戏体验还无法成为强有力的证据。现在看来,苹果似乎要扭转这个趋势。

  当然,这也不是说 OpenGL 或 OpenCL 要退出舞台,不再发挥作用。还将有许多应用更适合使用它们来编程。只不过 Metal 更适合现代芯片,如 A7。或许等我们看到 Metal 的魔力,我们才算真正看到 A7 的魔力。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值