今年五月份开始,苹果的Metal图形接口悄悄开始支持C++开发.

笔者对此表示高度赞誉,类似于macBook pro回归支持了HDMI,非常务实的做法。

当然metal 支持c++开发的影响非常深远。

笔者前天看到这个消息,昨天晚上熬夜也将之前写的一些Metal代码,花了两个小时,快速改

成了C++版本。效果非常好。

苹果2014年开始推Metal,17年开始不更新OpenGL,然后给OpenGL开发者还造成了一定的恐慌,其实结果来看,8年时间,Metal推不动,苹果系统依然保留了OpenGL framework。

图形开发接口的重度用户,首先是游戏引擎厂商,但游戏引擎厂就那么两家。然后就是视频剪辑厂,但掰着手指头也能数得过来。所以对于普通开发者来说,学习Metal,似乎没什么大用。只能作为一种爱好。但爱好跟吃饭的技能相比,学习优先级就靠后了。

行业对Metal采用比较低,有很多原因,大致有以下几点。

1 OpenGL历史沉淀,接口友好。跨平台。

2 大量第三方库比如GLM/GLEW/ASSIMP等。

3 Metal没有比OpenGL快到30%~50%的程度。

4 mac电脑用户基数也就8%左右徘徊。

5 图形学本身还有一定难度,大部分同学OpenGL都没搞明白。

6 跨平台抽象层涌现,比如谷歌的Angle项目,MoltenVK,Qt的QRHI等。

7 苹果特立独行,主推swift,这个语言喜欢变,今年写的代码,可能过几年不能用了,

到时候要推倒重来。相反c++虽然很多人不喜欢,但c++天然跨平台,写的代码有积淀。

过几年出现一个新的比如VR平台,c++代码依然可以移植过去跑起来。所以这些原因,

C++依然是客户端软件开发的首选。

虽然以上各种各样的问题,但图形接口对音视频,视频剪辑,AR/VR开发的同学来说,

就非常重要了。苹果平台电脑设计,芯片领先,iOS庞大的用户基数,也不得不让很多

同学开始接触Metal。尤其是Metal开始支持c++开发的时候。

学习Metal,最开始都用Swift或者OC做开发,

Swift是一门非常魔性的语言,简洁高效合理。但你不敢大量用,因为你害怕着魔,

使用久了别的语言不会写了。OC跟Swift比起来,OC代码就太难看了,又乱又多。

幸好苹果终于推了c++版本的Metal。苹果终于回归了常识,跟行业大部队走了。

苹果强大的芯片设计能力,加上开发框架越来越友好,不再偏执。

那么行业大量的重量级软件,很快都会陆续支持原生Metal。

比如Blender, CAD软件,视频剪辑软件,游戏等。

小广告。

学习音视频,图像处理开发的同学。所有平台都有。

《音视频图像处理》

《音视频网络通讯》

两大主题。

看苹果Metal支持c++开发相关推荐

  1. 苹果要求全新App开发四月起必须支持“齐刘海”

    近日消息,苹果公司通过邮件告知应用程序开发者,从2018年4月起提交给App Store的所有新应用必须支持iPhone X的超级视网膜显示器.这意味着新应用程序的开发者必须确保它们适应"齐 ...

  2. 苹果Arm芯片适配开发 (Apple Silicon)

    文章目录 苹果Arm芯片适配开发 (Apple Silicon) Apple Silicon 1. 将macOS应用程序移植到苹果芯片上 1.1 创建一个移植计划 1.2 获取链接库的通用版本 1.3 ...

  3. mac怎么合并两个容器_看苹果表演黑魔法:macOS Catalina 文件和硬盘出现两个

    看苹果表演黑魔法 首先恭喜你成功升级到了最新的 macOS Catalina 10.15,普通用户可能在使用中感受不出特别的变化,但开发者在程序开发时会遇到一些奇怪的现象,因为苹果在新系统中使用了黑魔 ...

  4. 苹果笔记本不能用windows吗 如何让苹果电脑支持windows

    很多时候,Mac用户在网站上下载的资源都是windows系统专属资源,例如:exe格式的可执行文件.Exe格式的文件是windows系统上的可执行文件,Mac系统并不支持直接打开windows程序,所 ...

  5. 苹果拒绝支持PWA,有损Web的未来

    作者:Greg Blass 翻译:疯狂的技术宅 说明:本文是美国的资深开发者 Greg Blass 针对对苹果公司的激烈吐槽 英文原文:https://medium.com/philly-dev-sh ...

  6. android首页图片轮播效果,Android_Android自动播放Banner图片轮播效果,先看一下效果图支持本地图 - phpStudy...

    Android自动播放Banner图片轮播效果 先看一下效果图 支持本地图片以及网络图片or本地网络混合. 使用方式: android:id="@+id/banner" andro ...

  7. spring rmi_Spring远程支持和开发RMI服务

    spring rmi Spring远程支持简化了启用远程服务的开发. 当前,Spring支持以下远程技术:远程方法调用(RMI),HTTP调用程序,Hessian,Burlap,JAX-RPC,JAX ...

  8. Spring远程支持和开发RMI服务

    Spring远程支持简化了启用远程服务的开发. 当前,Spring支持以下远程技术:远程方法调用(RMI),HTTP调用程序,Hessian,Burlap,JAX-RPC,JAX-WS和JMS. 远程 ...

  9. “苹果压根不关心开发人员的利益”!

    苹果的生态"封闭"一直备受开发者诟病.近来,苹果最新的操作系统放弃了对32位应用程序的支持,致使一大批软件和游戏库无法在Mac上运行,引来了大批开发者的吐槽.此外,苹果还要求开发人 ...

最新文章

  1. 读一个文件的java程序_java 读文件的几种方法(一)
  2. sbt+Scala IDE建立Scala项目
  3. fileoutputstream 转 byte数组_Java:如何实现文件与数组的相互转换?
  4. php接收ajax转数组
  5. teams怎么去看谁在说话
  6. 拷贝boost::exception的测试程序
  7. 关于报错stale element reference: element is not attach
  8. poj 2342 树形DP
  9. linux7切断防火墙,Linux7关闭防火墙
  10. 利用python爬虫(part8)--Xpath路径表达式
  11. 汇编语言(三十二)之读写文件
  12. jbpm 和 drools_Drools和jBPM KIE A​​pps平台
  13. 说一下你对多态的理解?_如何去理解java中的多态?从jvm角度分析也许让你更清晰...
  14. 服务器2003系统无故重启,WINDOWS 2003 服务器自动定时重启的方法
  15. 二进制码和格雷码转换问题
  16. 微软成为雅虎财经2021年年度最佳公司
  17. Keras深度学习实战(20)——DeepDream模型详解
  18. 利用账号密码模拟登录新浪微博
  19. 3分钟为你的应用添加声波通讯功能
  20. SEO入门知识3:不能传递权重的链接

热门文章

  1. 用ul制作html表单,要利用 display属性把段落P、标题h1、表单form、列表ul和li都可以定义成行内块元素,其属性值为...
  2. ant Design 表单以及表单验证
  3. SEO外链软件-免费批量网站发布SEO外链
  4. 互联网行业人事频繁变动:高速发展之忧
  5. 中药材鉴别-方法:聚类;PCA 主成分分析;线性判别式分析;判别式检验
  6. React 界面样式设计
  7. 输入文本就可建模渲染了?!OpenAI祭出120亿参数魔法模型!
  8. VLAN(TRUNK端口 ACCESS 端口)
  9. 360网页html,360综艺频道-更新更全更受欢迎的影视网站-在线观看
  10. XV6 RISC-V 源码阅读报告之进程模型