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

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是最基础的技术。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI 语音 - 人物音色训练

前情提要 2023-07-02 周日 杭州 阴晴不定 AI 入门三大项,AI 绘画基础学习,AI 语音合成,AI 智能对话训练,进入 AI 语音合成阶段了,搓搓小手很激动的,对于一个五音不全的我来说,这个简直了(摆脱…

DatenLord前沿技术分享 No.29

达坦科技专注于打造新一代开源跨云存储平台DatenLord,通过软硬件深度融合的方式打通云云壁垒,致力于解决多云架构、多数据中心场景下异构存储、数据统一管理需求等问题,以满足不同行业客户对海量数据跨云、跨数据中心高性能访问的需求。BSV的…

C国演义 [第四章]

第四章 全排列题目理解步骤树形图递归函数递归结束条件单层逻辑 代码 全排列II题目理解步骤递归函数递归结束条件单层逻辑 代码 全排列 力扣链接 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输…

【前端】导航栏html(ul+li)/css/js(jq)

引入jq <script src"https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script> css代码 <style>ul {list-style: none;margin: 0;padding: 0;}li {cursor: pointer;}.color-white {color: #FFFFFF !important;background-color: rgb…

Python工具箱系列(三十七)

二进制文件操作&#xff08;上&#xff09; python比较擅长与文本相关的操作。但现实世界中&#xff0c;对于非文本消息的处理也很普遍。例如&#xff1a; ◆通过有线、无线传递传感器获得的测量数据。 ◆卫星通过电磁波发送测量数据。 ◆数据中心的数万台服务器发送当前CP…

Eureka注册失败解决

根据查看网上资料发现是服务端自己自己注册了&#xff0c;所以需要自己关闭服务端注册 加上两行代码 fetch-registry: false register-with-eureka: false 即可注册成功

基于Java+SpringBoot+Vue前后端分离摄影分享网站平台系统

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

python爬虫-逆向实例小记-3

注意&#xff01;&#xff01;&#xff01;&#xff01;某数据网站逆向实例仅作为学习案例&#xff0c;禁止其他个人以及团体做谋利用途&#xff01;&#xff01;&#xff01;&#xff01; 案例分析 第一步&#xff1a;分析页面。查看响应内容&#xff0c;内容加密 第二步&am…

【周末闲谈】浅谈“AI+算力”

随着人工智能技术的飞速发展&#xff0c;“AI算力”的结合应用已成为科技行业的热点话题&#xff0c;甚至诞生出“AI算力最强龙头“的网络热门等式。该组合不仅可以提高计算效率&#xff0c;还可以为各行各业带来更强大的数据处理和分析能力&#xff0c;从而推动创新和增长。 文…

k8s中kubectl陈述式资源管理

陈述式管理资源的方法 1&#xff0c;陈述时资源管理集群资源的唯一入口是通过相应的方法调用的apiserver的接口 2&#xff0c;kubectl 是官方的ctl命令&#xff0c;用于与 apiserver 进行通信&#xff0c;将用户在命令行输入的命令&#xff0c;组织并转化为 apiserver 能识别…

【跨域认证】详解JWT,JWT是什么?

JSON Web Token&#xff08;缩写 JWT&#xff09;是目前最流行的跨域认证解决方案&#xff0c;本文介绍它的原理和用法。 一、跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 1、用户向服务器发送用户名和密码。 2、服务器验证通过后&#xff0c;在当前对话&…

Transformer面试题总结

1.框架 Transformer和seq2seq一样由解码器和编码器组成&#xff0c;用多头注意力替换编码器和解码器架构中最常用的循环层 1.1 编码器&#xff1a;编码器有一堆N6的相同层组成&#xff0c;每一层有两个子层&#xff0c;第一个子层包含多头注意力机制&#xff0c;第二个子层是前…

React环境安装配置

React环境安装配置 一、前提二、React安装 一、前提 安装本地React环境需要Node.js&#xff0c;如果具有Node环境跳过即可。如果没有安装则可参考该篇文章安装Node环境&#xff0c;点击查看 二、React安装 全局安装React 首先打开命令行&#xff0c;建议以管理员身份输入命…

Golang语言介绍、环境搭建以及编译工具( CDN 加速代理)

Go 语言是非常有潜力的语言&#xff0c;是因为它的应用场景是目前互联网非常热门的几个领域&#xff0c;比如 WEB 开发、区块链开发、大型游戏服务端开发、分布式/云计算开发。国内比较知名的B 站就是用 Go 语言开发的&#xff0c;像 Goggle、阿里、京东、百度、腾讯、小米、36…

人工神经网络太简陋了,《Science》揭露,神经元树突也隐含计算能力

本篇文章是博主在人工智能等领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅解。文章分类在学习摘录和笔记专…

[论文阅读] (31)李沐老师视频学习——4.研究的艺术·理由、论据和担保

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座&#xff0c;并分享给大家&#xff0c;希望您喜欢。由于作者的英文水平和学术能力不高&#xff0c;需要不断提升&#xff0c;所以还请大家批评指正&#xff0c;非常欢迎大家给我留言评论&#xff0c;学术路上期…

【微服务】什么是微服务?-- 全面了解微服务架构

What is Microservices — Edureka 您有没有想过&#xff0c;什么是微服务以及扩展行业如何与它们集成&#xff0c;同时构建应用程序以满足客户的期望&#xff1f; 要了解什么是微服务&#xff0c;您必须了解如何将单体应用程序分解为独立打包和部署的小型微型应用程序。本文将…

【Docker】基于jib插件,实现Docker部署springboot项目

文章目录 创建springboot项目jib插件介绍使用打tar包 Docker部署springboot项目 在工作中&#xff0c;作为一名后端开发人员&#xff0c;项目部署运维的事我们可能都要同时干&#xff0c;今天想跟大家聊聊关于springboot项目使用docker部署相关操作。后期还会跟大家分享docker-…

服务器垃圾怎样清理?C盘垃圾如何清理?

好多人都在问电脑垃圾如何清理&#xff1f;服务器的垃圾清理是系统维护中必不可少的一项任务&#xff0c;而C盘垃圾的清理同样也是必须要做的任务之一。那么&#xff0c;如何一键清理服务器垃圾&#xff0c;C盘垃圾如何清理呢&#xff1f;今天&#xff0c;我会以服务器助手为例…

动态ip与静态ip的概念、区别、应用场景

动态ip与静态ip的区别 前言一、介绍IP地址的概念和作用1.1、IP地址的定义1.2、IP地址的作用 二、动态IP和静态IP的区别2.1、动态IP和静态IP的定义2.2、动态IP和静态IP的特点2.3、动态IP和静态IP的优缺点比较 三、动态IP和静态IP的应用场景3.1. 动态IP的应用场景3.2. 静态IP的应…