WWDC2023 Metal swift 头显ARKit支持c c++ 开发

news2024/11/19 23:36:09

1 今年WWDC,我们看见了苹果的空间计算设备,visionOS也支持了c c++ API.

这有什么好处呢,不是说能够吸引更多c c++开发者加入苹果开发者阵营,而是我们过去的很多软件,可以轻松对接到苹果的头显设备,让我们的软件支持苹果头显全新的交互。

例如我们过去的游戏引擎,用c#开发,或者别的语言开发的,那我们就可以很轻松写一个c c++版本的插件,让游戏引擎支持ARKit空间计算,以及交互逻辑。

过去开发的3D建模设计软件的,数字绘画软件的,大概率这种软件用的是c++开发,我也很容易将我的软件适配新的苹果头显设备。过去一些著名的U框架啊,也很容易轻松适配苹果头显的交互逻辑。如今我们看见了一个更加开放的苹果,对于开发者这在过去是不可想象的。

2 苹果iOS开发左手swift右手 c c++

苹果公司从08年开始,主推自己的object-c,oc其实类似c++,在c语言基础上实现了一套面相对象的框架。后来呀,oc慢慢发展自动内存回收,也是逐渐想降低iOS开发者的门槛。经过不断发展,oc其实后来已经非常简单易用了,但是苹果还是觉得oc这门语言啊,过于复杂,于是开始搞swift这种类似python的脚本语言。

苹果公司很多新的框架,主推的开发语言都是swift。 比如苹果从2014年开始推的自家取代OpenGL下一大图形API Metal, 首选的开发语言都是swift。 但是swift这种全新的开发语言有个什么问题呢,每年都在变。一直到去年的swift5.0才慢慢稳定。一门开发语言一直变,意味着你去年写的代码,升级到几年的版本可能就用不了了。这是让开发者很头疼的。

同时整个行业,在图形学领域,基本上都是c++的天下,过去二三十年,3D图形学领域,大量的第三方库,框架,工业级软件,都是c++。 于是你就会发现,苹果推自家的Metal,从2014年开始,快10年了,很难推动。 很多行业级别的软件比如Blender,之前都想用Vulkan的跨平台解决方案。苹果最后自己着急了,开始自己出钱,出程序员,出设备,给Blender写基于Metal的渲染器。

同时在2022年,正式开放了c++版本的Metal,一向高高在上的苹果,也发现自己推一个东西,很难跟整个行业开发者对抗。当应用开发很难有什么创新,进入深水区的时候,苹果也没办法。

今年的swift新版本,直接就可以在swift中使用c++。为啥很多程序员都喜欢用c++,因为c++代码天然跨平台,十年前的代码,拿到今天依然可以跑。不会像一些新的语言不断变。所以大量行业级别的基础库,首选c++。

3 做iOS Android开发会点c c++ 

 做iOS开发,安卓开发,大部分时候你写界面,做上层应用基本用的是oc swift java,  做应用开发啊,工资天花板本身比较低啊,极少有互联网公司有30多k的,行业天花板平均在25k上下。

但是做iOS Android开发程序员你熟练使用c c++,你的天花板,上可以到七八十k。 为什么要学c c++呢,因为学了c c++,我们就有能力去写TCP/UDP这些网络通讯底层应用,同时大量的第三方库,历史上都是c c++写的。

比如OpenGL,FFmepg,OpenCV等.做移动手机开发,我们需要学习的绝大多数时候其实是c语言,c语言相对于c++稍微简单一些。对c++的要求并没有那么高,因为你并不是专业做c++开发的,大多数时候都是做c++应用开发,并不是让你去写什么中间件级别的软件。

比如安卓上,你熟练使用c c++, 就能够利用NDK开发对接使用大量的第三方库。甚至自己写一些库,sdk交给别的上层应用开发者去调用。

我们这里说的要求低,其实就是需要你会一些基础c++,比如类,对象,继承,多态,重载,STL标准库,模版等等,掌握这些然后去做c++应用软件开发,就简单很多。c++语言本身比较复杂,但我们可以只使用其中一个子集。比如对于c++标准,大多数时候,使用到c++03 c++11即可,别的东西,基本上就不需要去研究那么深入了,这样就相对简单多了。

VR AR MR开发时代,音视频,图像处理开发技术,尤其是OpenGL ES是最基础的技术。

这里给大家推荐我个人的音视频,图像处理开发系列课程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/653648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年协议转让研究报告

第一章 概述 协议转让作为中国企业破产法中的重要程序之一,已经在实践中得到广泛应用。在协议转让过程中,债务人与债权人或其他相关方通过协商达成一致,将特定的资产或权益进行转让,以实现债务清偿或债务人的破产清算。协议转让的…

RRC重建比率高问题分析和优化方法

PART01 1、重建概述 RRC重建(RRC connection re-establishment)是UE处于RRC_CONNECTED状态,因为一些移动性管理或底层链路故障,导致连接中断,UE发起的空口资源重新建立的过程,以继续空口的RRC连接。重建是…

[CSP-S 2021] 回文

[CSP-S 2021] 回文 题目描述: 给定正整数 n 和整数序列 a1​,a2​,…,a2n​,在这 2n 个数中,1,2,…,n 分别各出现恰好 2 次。现在进行 2n 次操作,目标是创建一个长度同样为 2n 的序列 b1​,b2​,…,b2n​,初始时 b 为空序列&…

【SpringCloud入门】-- SpringCloud优质组件介绍

目录 1. SpringCloud优质项目 2. 介绍SpringCloud优质项目 SpringCloudConfig(Spring) SpringCloudBus Eureka Hystrix Zuul Archaius Consul SpringCloudForCloudFoundry SpringCloudSleuth SpringCloudDataFlow SpringCloudSecurity SpringCloudZookeeper Spr…

【Redis】孔夫子旧书网爬虫接入芝麻代理IP:代理IP利用效率最大化

背景: 之前用过芝麻IP,写过这几篇文章 《【Python】芝麻HTTP代理系列保姆级全套攻略(对接教程自动领取每日IPIP最优算法)》 《【Python】记录抓包分析自动领取芝麻HTTP每日免费IP(成品教程)》 《爬虫增加代理池:使用稳…

ICC2:自定义快捷键和菜单

把一些常用的功能放在一个菜单里是什么体验?直接放在工具栏里是不是更方便?那设置成快捷键呢? gui_create_menu 自定义菜单可以把工具常用的功能放到一个菜单里,用户也可以把“执行脚本操作”加到菜单里。 举例来说: 1)把Editor Toolbox放到Favorite菜单里,floorplan 操…

行业报告 | AIGC发展研究

原创 | 文 BFT机器人 01 技术篇 深度学习进化史:知识变轨 风起云涌 已发生的关键步骤: 人工神经网络的诞生 反向传播算法的提出 GPU的使用 大数据的出现 预训练和迁移学习 生成对抗网络 (GAN) 的发明 强化学习的成功应用 自然语言处理的突破 即将发生的关键…

MinGW-w64安装和使用_亲测有效

MinGW-w64 是什么!? MinGW-w64 是一个在 Windows 系统上运行的 GNU 编译器套件,支持 C 和 C 语言的编译。它包括了 GCC 编译器、GNU Binutils 和一些其他的工具。在 MinGW-w64 中 各个版本的参数含义如下: x86_64:表…

1.ORB-SLAM3系统概述

1.内容简介 本系列文章主要基于ORB-SLAM3代码、论文以及相关博客,对算法原理进行总结和梳理。 ORB-SLAM系列整体架构是不变的,都包含Tracking、LocalMapping和LoopClosing三个核心线程,中间伴随着优化过程。在ORB-SLAM3算法中比较突出的改进…

腾讯安全董志强:四大关键步骤促进数据安全治理闭环,提升企业免疫力

高速发展的数字时代,数据已成为推动产业发展的最重要生产要素之一,真正成为了创造经济财富的数字能源,守护数据资产的安全成为企业高质量发展不可回避的重要命题。 6月13日,腾讯安全联合IDC发布“数字安全免疫力”模型框架&#…

我被一家无货源电商培训公司骗了怎么办?

我是卢松松,点点上面的头像,欢迎关注我哦! 最近,一位被无货源电商培训骗的人找到了卢松松,她说: 老师,你好,我是被无货源电商课程骗了的受害人,走投无路了,想…

5个超好用的开源工具库分享~

在实际项目开发中,从稳定性和效率的角度考虑,重复造轮子是不被提倡的。但是,自己在学习过程中造轮子绝对是对自己百利而无一害的,造轮子是一种特别能够提高自己系统编程能力的手段。 今天分享几个我常用的开源工具库:…

大佬们都是如何编写测试方案的?

目录 1、背景 2、编写的方式 2.1 第一阶段:在需求评审开始前 2.2 第二阶段:在需求评审开始后,技术方案设计中 2.3 第三阶段:技术方案设计后 2.4 第四阶段:测试方案评审前 2.5 第五阶段:测试方案评审…

Opencv-C++笔记 (7) : opencv-文件操作XML和YMAL文件

文章目录 一、概述二、文件操作三、打开文件四、写入五、读写个人源码 一、概述 除了图像数据之外,有时程序中的尺寸较小的Mat类矩阵、字符串、数组等 数据也需要进行保存,这些数据通常保存成XML文件或者YAML文件。本小节中将介绍如何利用OpenCV 4中的函…

前端实现消息推送、即时通信、http简介

信息推送 服务端主动向客户端推送消息,使客户端能够即时接收到信息。 场景 页面接收到点赞,消息提醒聊天功能弹幕功能实时更新数据功能 实现即时通讯方式 短轮询 浏览器(客户端)每隔一段时间向服务器发送http请求,…

Google为TensorFlow设计的专用集成电路TPU3.0图片

Widrow也是在Minsky的影响下进入AI领域的,后来加入斯坦福大学任教。他在1960年提出了自适应线性单元(Adaline),一种和感知器类似的单层神经网络,用求导数方法来调整权重,所以说有“三十年神经网络经验”并不…

CI/CD 流水线 (FREE)

流水线是持续集成、交付和部署的顶级组件。 流水线包括: 工作,定义做什么。例如,编译或测试代码的作业。阶段,定义何时运行作业。例如,在编译代码的阶段之后运行测试的阶段。 作业由 runners 执行。如果有足够多的并…

Qt编写视频监控系统79-四种界面导航栏的设计

一、前言 最初视频监控系统按照二级菜单的设计思路,顶部标题栏一级菜单,左侧对应二级菜单,最初采用图片在上面,文字在下面的按钮方式展示,随着功能的增加,二级菜单越来越多,如果都是这个图文上…

openGauss数据库安装,配置连接 完整版Centos7

服务器版本:Centos7.6 || 7.9 数据库版本:openGauss-5.0.0-CentOS-64bit.tar.bz2 极简版 目录 修改系统参数安装环境安装openGauss数据库配置连接数据库使用navicat连接数据库 修改系统参数 ##修改 /etc/selinux/config 文件中的“SELINUX”值为“disa…

【网络安全】成功上岸深信服,这套面试题你肯定需要!!!

时间过得很快,回想起去年的这个时候,我也正在准备秋招,今天的我刚刚结束培训。 我的个人情况就读于某双非大学,信息与计算科学(大数据方向,校企合作,一个介于数学与计算机之间的专业&#xff0…