苹果在今年的 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 的魔力。

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

  1. Spring Cloud 2020.0.0 正式发布,对开发者来说意味着什么?

    作者 | YourBatman 在线教育领域资深架构师,Spring Framework 开源贡献者 冷冷 云集架构师.开源项目 pig 负责人.Spring Cloud Alibaba Commit ...

  2. 网络营销专员浅析网络营销优化对企业来说意味着什么?

    在现阶段下的网络营销环境下,越来越多企业注意到互联网市场的存在意义,许多企业都委托专业网络公司进行网站建设.网站优化与网站运营,通过网络技术的力量为企业将线上营销利润最大化.但是越想要越没有,急功近利 ...

  3. [大数据文章之其一] 大数据对你来说意味着什么?

    日常前言 五月六月,又陷入反反复复的项目 Bug 中了.讲道理,分析日志是越来越熟练了,代码水平其实没有很大提高,毕竟改 Bug 嘛,大多只是在原有代码的基础上,添加或者修改一些业务逻辑.虽然改原生代 ...

  4. Jonathan Bryce:OpenInfra峰会,一场开发者与用户的技术盛宴

    "我们希望这个峰会,是一个社区技术交流性质的峰会,而不是市场宣传的峰会.另外,我们希望峰会把整个社区的开发者和用户能聚集在一起,在我们峰会的平台上,进行技术和用户案例的交流."Jo ...

  5. iOS8 对开发人员来说意味着什么?

    今天凌晨.Apple WWDC2014 iOS8 正式推出. 或许,对于广大iOS用户来说,iOS8的创新并非特别多. 但对于开发人员来说,影响却将会是无比巨大的! 正如Apple官网上的广告:Hug ...

  6. 取消漫游费,移动通信服务资费对农村用户来说不公平

    三大电信运营商发布公告称,自2018年7月1日起,将取消流量"漫游"费,新老手机用户的省内通用流量升级为国内流量,看起来这对于国内手机用户来说是一件好事,不过这对于农村用户来说却未 ...

  7. 对于微机用户来说 为了防止计算机,计算机二级MSOffice考试巩固习题

    小伙伴们,趁着还没有考试,赶紧来练习下题目吧.下面是CN人才网为您精心整理的2017计算机二级MSOffice考试巩固习题的全部内容,希望可以帮到您.如果您喜欢的话可以分享给身边的小伙伴们! 计算机二 ...

  8. 安全对你来说意味着什么

    安全是我们这个行业的代言词,我们为安全而生.当你踏入这个网络安全领域的时候,你可能会思考一个问题:安全对与我和企业来说意味着什么? 个人经历 我接触安全领域是在高一的时候,刚开始喜欢一些 hack 题 ...

  9. ClickHouse CTO空降中国开发者和用户沙龙,B站、小红书、携程、阿里云携手分享ClickHouse实践

    ClickHouse由于其性能方面的突出优势,正在分析型数据库领域掀起一波新的技术浪潮.ClickHouse有哪些最新的特性?如何帮助企业实现降本提效?如何在海量数据场景下落地实践? 3月25日,CS ...

最新文章

  1. undo表空间文件丢失恢复(4)--无备份无recover的情况下恢复
  2. 《Drupal实战》——1.9 小结
  3. OpenCV 读取一张图片并显示和保存
  4. 灾备理论-可靠的异地灾备
  5. linux下的c语言控制灯闪烁,C语言实现LED灯闪烁控制
  6. MTK 驱动(63)---MTK TP驱动移植
  7. 再见Windows C++
  8. 岭回归、LASSO与LAR的几何意义
  9. Java学习笔记——final
  10. OpenCV-特征提取与检测(04、亚像素级别角点检测)
  11. oracle设置自增字段,oracle序列
  12. 【QT】QT网络编程简介
  13. 自然语言处理(七)——n元语法模型计算句子出现概率
  14. youtube下载利器
  15. android屏幕刷新显示机制 前肩 后肩的解释
  16. 简洁风个人主页(1) html 静态布局
  17. 【C语言】第五章 - 操作符
  18. 计算机桌面图标有双影,win7旗舰版桌面图标出现重影怎么办 win7旗舰版桌面图标没有了如何恢复...
  19. alpine linux 简介
  20. Linux Kernel Development读书笔记

热门文章

  1. html5video标签属性,H5中video标签那些属性和方法
  2. java隐藏与覆盖_Java 隐藏和覆盖
  3. 如何实现消息功能_如何实现微信小程序的轮盘抽奖功能
  4. .net 数字转汉字_收藏!小学生汉字拼音学习工具。
  5. 点乘 线性代数_如果看了这些还不懂线性代数,你就来锤我和广坤
  6. 蓝宝石显卡bios_这操作竟能让显卡性能暴涨?原来不是黑科技,小白都会
  7. mysql connector api_mysql8 参考手册-Connector/J使用X DevAPI进行连接压缩
  8. java数组转对象_java将对象数组列表转换为POJO
  9. CTSC2017APIO2017
  10. 【codevs1250】Fibonacci数列,矩阵乘法入门