点击上方“CSDN”,选择“置顶公众号”

关键时刻,第一时间送达!

开发者怒了:苹果抛弃 OpenGL,我们就抛弃 Mac!

编辑:郭芮

审校:唐小引

苹果意欲淘汰跨平台图形技术 OpenGL 和 OpenCL

日前的 WWDC 大会上,为了推广自家的 Metal 图形技术,苹果宣布了一个不太好的消息:随着 MacOS 10.14 Mojave 的发布,后续版本中将停用 OpenGL 和 OpenCL 接口——很多开发者对此十分不满,特别是游戏开发者,这两种跨平台图形技术的停用将会大大提高移植游戏的难度,甚至有部分游戏开发商扬言要“放弃 macOS 平台”。

在 MacOS 10.14 的文档中,苹果表示使用 OpenGL 和 OpenCL 构建的应用还可以继续在 macOS 10.14 中运行(但是即使 macOS 支持 OpenGL ,其内置版本依然是 8 年前发布的 OpenGL 3.3 ,而不是去年发布的 4.6)。

不过苹果表示,这些“遗留技术”并不推荐使用。所以,所有使用 OpenGL 的游戏和应用建议转向 Metal ;同样,使用 OpenCL 进行计算任务的应用也建议采用 Metal 和 Metal Performance Shaders 。

很明显,苹果此举是想要大力推广 Metal 图形技术,来替换掉“古老”的 OpenGL 接口和 OpenCL 接口。

苹果力推 Metal 究竟意欲何为?

在讨论这个问题之前,我们先讨论 OpenGL、OpenCL 和 Metal 三个技术。

OpenGL 是一个关于图形 API 的详述定义,规定了很多函数和其参数返回型,以及要实现的行为和管线操作。其具体的实现由硬件厂商完成。目前,OpenGL 是行业领域中最为广泛接纳的 2D/3D 图形 API。在包含CAD、内容创作、能源、娱乐、游戏开发、制造业、制药业及虚拟现实等行业领域中,OpenGL 帮助程序员实现在 PC、工作站、超级计算机等硬件设备上的高性能、极具冲击力的高视觉表现力图形处理软件的开发。

OpenCL 是由苹果公司发起,业界众多著名厂商共同制作的面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境。便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多 CPU、GPU、Cell 类型架构以及 DSP 等其他并行处理器,在游戏、娱乐、科研、医疗等各种领域都有广阔的发展前景。

目前,OpenGL 和 OpenCL 接口都是游戏行业普遍应用的跨平台图形技术,特别是前者,十分受游戏开发商的欢迎。对开发商来说,OpenGL 不仅能够做到多平台通用,而且极大降低了多平台游戏开发的成本。

而 Metal,则是一种低层次的渲染应用程序编程接口,它是苹果公司 2014 年 WWDC 上为游戏开发者推出的新的平台技术。Metal 提供了软件所需的最低层,能够为 3D 图像提高 10 倍的渲染性能,保证软件可以运行在不同的图形芯片上。目前,Metal 已支持了很多用户熟悉的游戏引擎及公司,比如《现代战争》、《狂野飙车》等等。

在 6 月 5 日的 WWDC 上,苹果推出了最新的 Metal 2 图形技术,并且鼓励所有开发者和开发商采用这个技术。但是这一技术的推广很可能是要以替换掉 OpenGL 接口和 OpenCL 接口为代价的。

但是,Metal 2 图形技术在多平台通用、成本方面明显都不如 OpenGL 有优势,那为什么苹果还要顶着被游戏开发厂商“抛弃”的风险力推呢?

事实上,对于苹果来说,OpenGL 和 OpenCL 图形技术的使用一直存在性能发挥不够好的问题,远不用充分利用 MacBook 等一系列电脑产品的硬件配置,但是 Metal 2 图形技术在这方面的性能提升却非常显著。

因此,苹果想要弃用 OpenCL 和 OpenGL 的意图十分明显。近几年,苹果一直在推动 Metal API 在 MacOS 和 iOS 上的应用,而 OpenGL Stack 多年来却一直没有更新,已严重落后于 Khronos Group 的 OpenGL 4.x 。由苹果公司开发且拥有商标权的 OpenCL 发展得也并非一帆风顺,随着 macOS 的弃用,现在已经很难看到 OpenCL 出现在桌面应用中了。

所以,虽然苹果目前还没有明确表示会删除实际的 OpenCL 和 OpenGL 驱动程序支持,但时间估计也不会太久了。

事实上,在图形技术领域,OpenGL、OpenCL 和 Metal 三者之间的关系一直是极其微妙的。随着 Vulkan(和 OpenGL 一样,同样由 Khronos 集团开发)、CUDA(NVIDIA 推出的通用并行计算架构)、DirectX(微软推出的多媒体编程接口) 等市场角色的不断加入,正如@知乎用户(https://www.zhihu.com/question/279905495)所述,它们之间就无可避免地会有不断取代、消亡和进化的关系发生。

OpenGL 已停止更新,未来将由 Vulkan 接替。Vulkan 在 2015 年 GDC 上推出之初,就是旨在替代 OpenGL,以提高图形性能。

OpenCL 的未来也已经由 Khronos 作出决定,合并入 Vulkan。

macOS 官方支持的 OpenGL 最新版本只到4.1,在此之前很长一段时间停留在3.x。抛弃 OpenGL 早在预料之中。苹果的想法是依靠庞大的 iOS 设备和用户数反过来吸引 macOS 开发者(能不能成真另当别论)。另一个利好是抛弃 OpenGL 陈旧的历史负担,减少系统维护开发成本。

OpenCL 有点意思,因为它的原始创始者是苹果自己。对比 CUDA,OpenCL 开放跨平台的优势付出的代价是没有 NVIDIA 这类鼎力支持的厂商,开发调试过程极其复杂,生态圈也被 CUDA 远远抛开。苹果很长一段时间内倒是大力支持,还为此在 Mac 产品线上全线配备 AMD 图形卡,抛弃 NVIDIA(这是一个原因,最主要的是选择 AMD 成本更低,获得的主导权更大)。到 OpenCL 2.2发布时,Khronos决定未来将其与 Vulkan 融合。未来更新版本的、单独的 OpenCL 也将不复存在。

为什么不支持 Vulkan?自己一人说了算当然比一群人开会来的爽啊,问题是能不能做到像微软和 NVIDIA 那样自己爽大家也爽?难。

未来的标准,CUDA、DirectX、DirectCompute 没有主导权,Vulkan 不能自己说了算,Metal 当然被确立为自家官方未来的标准。

借由摒弃(OpenGL、CL)这几项标准这事,可以预测一下苹果未来工作站级别电脑会是什么情况——只能用于 macOS/iOS/tvOS 平台的 API,只支持此标准的操作系统,持观望和否定态度的广大开发者,大概率不支持此标准的 NVIDIA 等硬件厂商——没准下一代 Mac Pro 遭到的恶评比本代更多:圆柱体 Mac Pro 至少兼容性不是大问题。

所以,全平台兼容性终究是开发者们无法避开的问题了。

广大开发者,特别是游戏厂商该如何抉择?

那么苹果 Metal 2 图形技术的推出,会让广大开发者主动适配吗?面对跨平台移植和成本这两大因素,不同的厂商有不同的考量,以游戏厂商为例。

目前,其实已经有不少研发资源丰富的大厂商推出了基于 Metal 的 Mac 版游戏,包括耳熟能详的魔兽世界、杀出重围、见证者和尘埃拉力赛等。但这对于中小型厂商而言仍然是十分纠结的难题。

对于中小型游戏开发商来说,OpenGL 图形技术意味着多平台游戏开发成本的降低,而如果在 macOS 平台上单独采用 Metal 2 图形技术,则意味着开发成本会大幅上涨。“Mac 的市场份额实在太低了”、“维护 Metal 环境的成本明显高于 Mac 市场的潜力”、“把游戏转到 64 位并不困难(macOS 未来将不再支持 32 位应用),但是转到 Metal 是不可能的”......种种言论之下,厂商们会如何选择几乎一目了然了。

Vlambeer 公司的设计师 Rami 即表示:“Metal 和 DirectX 的问题非常相似,它们都不是跨平台的,我们不得不增加支持的图像引擎,某个平台独享的图形 API 令人感到痛苦。”

但是得益于 Windows 平台庞大的游戏用户数量,大部分游戏开发商都不会放弃 Windows 平台。然而 macOS 上的游戏用户数量远不如 Windows 等其他平台,所以在游戏开发产出比根本不合算的情况下,游戏开发者会放弃 macOS 平台也是不得已而为之的选择了。

写在最后

当年苹果与 Adobe 之间对于 iPhone 是否支持 Flash 的争论似乎已经过去很久了。当时,大家还对苹果的这一举动各执一词:有人认为 Flash 是落后的技术应该淘汰,也有人认为苹果放弃高性能的 Flash 是极为不明智的。

而现在,苹果又要移除 OpenGL 支持了。

无论开发者的态度是什么,是支持抑或是反对,苹果在其软硬件大一统的道路上都越走越远了,此次“舍弃”OpenGL 也只是其中的一小步而已。

而全平台兼容的难题,只能留给开发者们慢慢解决了。

苹果抛弃 OpenGL!相关推荐

  1. 苹果抛弃 OpenGL !

    ▌苹果意欲淘汰跨平台图形技术 OpenGL 和 OpenCL 日前的 WWDC 大会上,为了推广自家的 Metal 图形技术,苹果宣布了一个不太好的消息:随着 MacOS 10.14 Mojave 的 ...

  2. iphone5发布在即,那些被苹果抛弃的厂商

    俗话说,跟着大哥不愁吃喝,但是反过来,如果不被大哥看重,则有被大哥抛弃的危险.在苹果的世界里,它就是大哥,它乐意用谁就用谁,不乐意用谁就丢弃掉,这就是苹果的规则.在iphone5即将发布之际,让我们一 ...

  3. 苹果5s现在还能用吗_苹果抛弃英特尔,现在又抛弃微软,你的黑苹果电脑到底能用多久?...

    对于今年的WWDC来说.苹果最大的一个创新就是将会用自家的A12Z处理器.来取代目前自家Mac电脑上的英特尔处理器.在合作15年之后,苹果终于也痛下狠手.抛弃了英特尔处理器.但是苹果用户来说,这将是一 ...

  4. 苹果抛弃英特尔!TCL 怼格力 500 亿不够做芯片;高德地图上线叫车 | CSDN 极客头条...

    「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有料的新闻资讯,让所有技术人,时刻紧跟业界潮流. 快讯速知 李 ...

  5. itunes 备份路径 修改_被苹果抛弃的最不讨喜应用:iTunes兴衰史

    iTu​​nes 是自 2001 年推出以来使音乐产业发生革命性变化的音乐软件.但是经过近 20 年长跑,在 2019 年,它终于结束了自己的使命. 随着苹果推出 macOS 10.15 Catali ...

  6. 浅谈《Sky 光·遇》中的渲染技术

    分析顺序根据个人喜好和出现顺序,有想法或不同见解尽管留言 苹果为什么给Thatgamecompany三分钟 首先,别管用什么引擎,移动平台的图形API一般用OpenGL:苹果之前就推出了Metal打算 ...

  7. 苹果7支持快充吗_iPhone12的磁吸无线充到底怎么回事?是否支持苹果20W快充?

    原标题:iPhone12的磁吸无线充到底怎么回事?是否支持苹果20W快充? 根据发布会的消息,包括iphone12mini在内的四款机型均支持Magsafe磁吸无线充电功能和20W快充功能.关于iPh ...

  8. iPhone 之后,苹果还会带来什么?

    [CSDN 编者按]作为走在创新前沿的苹果,每一年都会带来一些令人称叹的产品.而就 I/O 设备(输入/输出)层面而言,苹果未来又有哪些新的战略及革新? 作者 | Byrne Hobart 译者 |  ...

  9. 苹果或在 WWDC 宣布放弃英特尔转向自研 5nm ARM 芯片,这次时机成熟了?

    整理 | 夕颜 头图 | CSDN付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 近日,据彭博社报道,苹果公司将在 WWDC 2020 上宣布自研 Mac ARM 芯片,产品将从英特 ...

最新文章

  1. 实时把你的脸变成名画,手机摄像头新玩法
  2. 相约转型新范式,第四范式2021发布会报名开启
  3. 协同旋转不变网格形变
  4. oracle 全表扫描 分区,oracle分区表全分区扫描问题
  5. 打印容器_3D打印:增材点阵结构在压力容器优化设计中的应用
  6. leetcode 90. 子集 II 思考分析
  7. C++实现String类
  8. java平台调试架构JPDA
  9. 卡函数or1200基于simple-spi的SD卡驱动
  10. word打开提示“所用加密类型不可用”
  11. weblogic too many open files 问题解决集锦
  12. RGB、CMYK、CIE Lab等几种常用颜色空间
  13. Windows搭建kms服务器
  14. 蓝筹股连环爆雷!这些蓝筹股哪些最容易爆雷?(最全名单)
  15. vue 点击按钮改变颜色
  16. 对话赫拉利与李飞飞:人工智能影响人类的四大问题
  17. 去除文件系统、只读等属性
  18. unity倍镜瞄准镜
  19. 【AI-CPS】【大数据】NeuSeer平台助力工业大数据服务商
  20. 镜头camera shot

热门文章

  1. 学计算机是为了什么演讲稿,求大学计算机协会职位申请书和演讲稿
  2. 水起泡器行业调研报告 - 市场现状分析与发展前景预测
  3. vue-router下的html5 history在iis服务器上的设置 vue去掉#
  4. Web 3.0 宣言:为什么 Web 3.0 至关重要
  5. 从 TDSQL 演进史,探索国产数据库发展规律
  6. 一行 Python 代码能实现这么多丧心病狂的功能?
  7. 从啥也不会的小白,如何成为合格的算法工程师?
  8. AR 圈最大收购案 Ubimax 10 亿“卖身”背后:究竟什么才是真正值钱的东西?
  9. A 股暴跌,户均亏 2 万!刚写好的辞职信又撕了……
  10. Async Python 竟不比sync Python 快,怎么回事?