ARKit之路
文章平均质量分 84
_DavidWang_
计算机硕士,全国信标委虚拟现实与增强现实标准工作组成员(CNITSC)、中国增强现实核心技术产业联盟成员(CARA)、华为HDE(Huawei Developer Experts)、Unity UVP(Unity Valuable Professional)、CSDN博客专家,主编国家级团体标准1项,参与国家级标准编写1项,授权和在审发明专利十余项,软件著作权若干。专注图形学/XR开发,著有《基于Unity的ARCore开发实战详细讲解》、《AR开发权威指南-AR Foundation》、《ARKit原生开发入门精粹》、《HoloLens2开发入门精要-基于Unity和MRTTK》等书籍6本。
展开
-
Unity与Android交互通信系列(6)
其原理依然是利用AndroidJavaProxy接口进行桥接,但通过Unity端注入action(Android端广播动作名称)参数,即由C#端控制需要注册的广播,Android端接收到广播之后,进行相应的数据处理(方便将这些数据传递到C#端),然后调用接口方法,触发C#端广播处理方法。通过使用该通用类,不仅可以注册自定义广播,也可以注册系统广播(可能需要权限申请),还可以一次性注册多个广播,界面简洁,使用简单。本节主要讲述广播订阅。原创 2024-06-17 21:18:24 · 554 阅读 · 0 评论 -
关于出版《AR Foundation增强现实开发实战(ARKit版)》(2023-04-05更新)
ARKit是苹果公司在前沿科技领域的重大技术布局,也是目前移动领域AR应用开发引擎标杆。得益于良好的软硬件生态整合,ARKit运动跟踪稳定性好、性能消耗低、功能特性丰富,利用它可以开发出令人惊艳的AR应用。ARKit支持iPhone和iPad设备,并且可以预见,其也必将支持即将面世的iGlass眼镜设备。 本书是《AR Foundation增强现实开发实战(ARCore版)》的姊妹版,讲述利用ARKit进行iOS/iPadOS平台的AR应用开发,从AR技术概念、原理、理论脉络到各功能技术点、实用技巧、原创 2022-09-11 21:51:24 · 3209 阅读 · 47 评论 -
ARMR视频教程合集(持续更新_20210818)
科学技术的发展拓展了人类感知的深度与广度,增强了人类对世界的认知能力。高速的数据流使信息的传递与获取前所未有的便捷,虚实融合技术的出现,开创了人类认知领域新的维度,推动着信息获取向 更高效、直观、更具真实感的方向发展。 增强现实(AR)、混合现实(MR)技术是将虚拟信息与真实世界融合展示的技术,其广泛运用了人工智能、三维建模、实时跟踪注册、虚实融合、智能交互、传感计算等多种技术手段,将计算机生成的文字、图像、三维模型、 音频、视频、动画等虚拟信息模拟仿真后,应用到真实世界中。AR/MR技术同时考虑了原创 2021-08-18 19:27:41 · 1597 阅读 · 3 评论 -
ARKit之路-LiDAR传感器(二)
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。(二)、虚拟物体放置 相对使用视觉SLAM技术恢复场景,LiDAR检测物理环境非常快速和准确,包括平面检测,对弱纹理表面也同样高效,并且不需要使用者移动设备进行环境扫描,因此,AR虚拟物体放置会非常迅速,这对自动放置虚拟物体非常有用,如使用AR Quick Look进行webAR物体展示时,可以大大提高用户的使用体验。在ARKit中,加入LiDAR传感器后,所有这些变化或者提升都自动完成(ARKit透明化了相关底层硬件的原创 2021-01-21 22:10:02 · 1496 阅读 · 4 评论 -
ARKit之路-LiDAR传感器(一)
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 第4代iPad Pro和iPhone12高端机型中新增了LiDAR(Light Detection And Ranging,激光探测与测距)传感器,该传感器的加入让移动设备获得了对物理环境的实时重建能力,因此可以实现诸如环境遮挡、虚实物理交互等利用单目或者双目计算机视觉扫描很难实现的效果,还可以有效弥补计算机视觉对弱纹理表面识别能力差的缺点,轻松实现对白墙、反光等物理表面的深度信息采集。 LiDAR工作原理与RADAR(R原创 2021-01-05 22:22:27 · 3700 阅读 · 12 评论 -
ARKit之路-AR截屏
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 截屏是移动手机用户经常使用的一项功能,也是一项特别方便用户保存、分享屏幕信息的方式。移动设备(包括iOS设备和Android设备)都具备方便高效的截屏快捷键。 但在AR应用中,使用者可能有不同于直接截屏的需求,如剔除屏幕上的UI元素,只保留摄像头图像和渲染的虚拟物体图像;开发人员有时也需要直接获取AR摄像头中的数据进行后续处理,即获取纯粹的不包括UI元素与虚拟物体的摄像头硬件采集的视频图像原始数据,如使用自定义计算机视觉算原创 2020-09-29 21:25:34 · 1122 阅读 · 5 评论 -
ARKit之路-Depth API
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 在配备LiDAR传感器的设备上,ARKit不仅可以进行场景几何重建,还向开发者开放了场景深度信息,利用这些深度信息,可以实现更加自然、无缝的虚实体验。并且,ARKit提供的深度信息是逐像素的,因此,可以实现非常精细的效果,如精确的控制特效的范围,营造与现实融合度非常高的虚实效果。 从ARKit中获取到的深度信息是指从设备摄像头到现实场景中各点的深度值,这些值每一帧都会产生,生成速率大于等于60FPS,即这些深度值是实时的,原创 2020-09-22 22:05:57 · 2353 阅读 · 31 评论 -
ARKit之路-RealityKit中的事件系统
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 苹果公司在2019年推出了一个名为Combine的声明性异步事件处理框架,通过采用Combine框架,可以集成事件处理代码并消除嵌套闭包和基于约定的回调,使代码更易于阅读和维护。Combine框架API都是使用类型安全的泛型实现,可以无缝接入已有工程,用于处理各类事件。 在Combine框架中,最重要的3个组成部分为:Publisher(发布者)、Subscriber(订阅者)、Operator(操作变换),它们之间的关系原创 2020-09-17 21:30:08 · 898 阅读 · 5 评论 -
ARKit之路-ARCoaching
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 通过前面的学习我们知道,ARKit建立环境理解需要一定时间,这个时间长短取决于用户设备摄像头采集的图像质量(可信的特征点数量)和空间计算结果,在这个过程中,使用者可能并不知道ARKit正在进行这个工作,特别是对没有AR应用使用经验的人而言,会让他们感到困惑和迷茫。因此,为消除使用者的焦虑,同时更快的建立环境跟踪,应该给予使用者视觉或者文字引导,指导他们进行下一步操作。 ARKit提供了一个名为ARCoachingOverl原创 2020-09-13 21:32:10 · 816 阅读 · 6 评论 -
ARKit之路-手势检测
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 智能移动设备的手势操作是使用者接受并已习惯的操作方式,在移动端AR应用中,对虚拟物体的操作也基本通过手势操作完成,本节我们将学习一些手势检测基础知识。需要注意的是本节中描述的手势检测是指用户在手机屏幕上的手指操作检测,不是指利用图像技术对使用者手部运动的检测。(一)手势检测定义 手势检测是指通过检测使用者在手机屏幕上的手指触控运动来判断其操作意图的技术,如单击、双击、缩放、滑动等等,常见的手势操作如下图所示。(二)A原创 2020-09-01 21:58:03 · 2127 阅读 · 0 评论 -
关于出版《ARKit原生开发入门精粹》(2021-03-24更新)
ARKit是苹果公司在前沿科技领域的重大技术布局,引领着移动AR发展方向,不仅面向iPhone、iPad,也面向即将面世的AR眼镜。RealityKit是全新的、专为AR渲染开发的高级框架,与ARKit高度集成,功能强大、界面简洁、高效易用,它与Reality Composer、Reality Converter一起组成了iOS AR原生开发的三剑客。借助于ARKit,我们不再需要单独且昂贵的设备就可以体验到AR带来的奇妙体验,使移动手机具备了另一种崭新的应用形式。 不仅如此,ARKit还是苹果公司原创 2020-08-28 22:01:47 · 2388 阅读 · 46 评论 -
ARKit之路-射线检测
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 Ray casting,直译为射线投射,通常我们根据它的作用称为射线检测。射线检测是在3D数字世界里选择某个特定物体常用的一种技术,如在3D、VR游戏中检测子弹命中敌人情况或者从地上捡起一支枪,这都要用到射线检测,射线检测是在3D数字空间中选择虚拟物体的最基本方法。 在AR中,当检测并可视化一个平面后,如果需要在平面上放置虚拟物体,这时就会碰到在平面上什么位置放置虚拟物体的问题,因为检测到的平面是三维的,而手机/平板显示屏原创 2020-08-24 21:34:30 · 1523 阅读 · 2 评论 -
ARKit之路-平面检测
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 平面检测是很多AR应用的基础,无论是ARKit、ARCore还是Huawei AREngine、SenseAR等SDK,都提供平面检测功能。在SDK底层中,计算机视觉算法根据摄像头图像输入检测特征点,并依据特征点三维信息构建空间环境,将符合特定规律的特征点划归为平面。 ARKit检测平面的原理:ARKit对从设备摄像头获取的图像进行分析处理,提取分离图像中的特征点(这些特征点往往是图像中明暗、强弱、颜色变化较大的点,因此,原创 2020-08-18 21:58:54 · 4527 阅读 · 14 评论 -
ARKit之路-ARSession执行流
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 在ARSession启动后,ARKit会为其提供不间断的视频图像流、视觉计算数据流、运动传感器数据流。在AR应用运行其间,不管用户有没有操作,ARSession都在执行其命令循环,我们称之为ARSession执行流,就像打开水龙头开关,水流就会源源不断的从水管中流出,不管有没有人使用,不管水杯有没有溢出。 在ARKit中,很多时候我们需要了解和监视特定事件的发生,以便进行相应处理。以水杯接水为例,在打开水龙头后,我们随时需原创 2020-08-11 21:14:38 · 835 阅读 · 0 评论 -
ARKit之路-ARSession生命周期管理与跟踪质量
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 ARSession整合运动传感器数据与计算机视觉处理数据跟踪用户设备姿态,为得到更好的跟踪质量,ARSession需要持续的运动传感器数据和视觉计算数据。在启动ARSession后,ARKit需要一点时间来收集足够多的视觉特征点信息,在这个过程中,ARSession是不可用的。在AR应用运行过程中,由于一些异常情况(如摄像头被覆盖),ARSession的跟踪状态也会发生变化,可以使用ARSessionObserver代理方法和原创 2020-08-09 11:17:53 · 864 阅读 · 0 评论 -
ARKit之路-Session管理
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 ARSession管理AR应用的全生命周期,包括采集处理运动传感器数据、控制虚拟摄像机与设备摄像头的对齐、执行计算机视觉图像处理等等,汇总整合所有信息后建立虚拟数字世界与现实世界的对应关系,处理AR应用开启、运行、停止全生命周期各项基础工作。(一)创建ARSession 每一个AR应用都必须包含一个ARSession,且只能包含一个ARSession,一般ARSession创建方法如下所示。1.let session原创 2020-08-08 22:17:31 · 924 阅读 · 2 评论 -
ARKit之路-运动跟踪原理
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 在前述文章中,我们对AR技术原理进行过简单学习了解,ARKit运动跟踪所采用的技术与其他移动端AR SDK一样,也是采用VIO与IMU结合的方式进行SLAM定位跟踪。本节我们将更加深入的学习ARKit运动跟踪原理,通过学习就会很自然的理解ARKit在运动跟踪方面的优劣势,并在开发中尽量避免劣势或者采取更加友好的方式扬长避短。(一)ARKit坐标系 实现虚实融合最基本的要求是实时跟踪用户(设备)的运动,始终保持虚拟摄像机与原创 2020-07-29 21:54:55 · 3894 阅读 · 3 评论 -
ARKit之路-简化AR调试
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 AR应用运行时需要采集来自设备摄像头的图像信息、设备运动传感器信息,并以此为基础来构建环境感知和估计设备姿态。AR应用目前无法在模拟器中进行测试,而必须采用真机进行测试,这导致AR应用的测试工作非常缓慢低效,特别是对需要进行现场验证的应用,如导航、实景增强类应用,需要亲自到现场测试,除了天候影响,这还是一个非常繁琐且费时费力的工作。 为解决这个问题,ARKit3引入了录制与重放Session的功能(Record &原创 2020-07-21 17:53:51 · 927 阅读 · 0 评论 -
ARKit之路-ARKit初体验
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 通过前面的学习我们知道,为更好的帮助开发者进行AR应用开发,苹果公司推出了全新的RealityKit框架,该框架也已经集成到Xcode11及以上版本中。在本系列中,我们只使用RealityKit + Swift + SwiftUI进行AR应用开发,因此需要将Xcode版本升级到11以上,MacOS版本升级到Catalina 10.15.3以上。 本节,我们将使用Xcode内置模板创建第一个ARKit应用,带领读者熟悉创建A原创 2020-07-13 21:58:39 · 971 阅读 · 0 评论 -
ARKit之路-RealityKit概述之二
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 RealityKit是一个全新的AR应用开发框架,有着独立的体系结构。RealityKit体系结构 RealityKit是一个高级的程序框架,提供了非常丰富的功能,但使用其进行AR应用开发却有着非常清晰的层次结构体系,如下图所示。 从上图可以看到,RealityKit中包含四类实体:ARView、Scene、Anchor、Entity,由这四类实体可以构建出所有AR功能。利用RealityKit进行AR应用开发,所原创 2020-07-09 20:59:15 · 2039 阅读 · 0 评论 -
ARKit之路-RealityKit概述之一
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 通过前面章节的学习我们知道,ARKit本身并不直接提供渲染功能,在ARKit3.0之前,AR场景渲染依托于SceneKit、SpriteKit、Metal或自定义渲染框架。这些第三方渲染框架并不是为AR应用开发而设计,如SceneKit设计处理3D渲染、SpriteKit设计处理2D渲染、Metal则是更底层的图形API,设计之初均未考虑AR应用,因此使用这些框架并非最合适的选择。 AR应用开发跟普通2D/3D应用开发最大原创 2020-07-06 22:05:26 · 4729 阅读 · 0 评论 -
ARKit之路-ARKit原理
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 ARKit提供如此出众AR体验的背后是苹果公司强大的软硬件整合能力和做到极致的用户体验,苹果公司的生态拥有其他企业无法比拟的优势,这不仅包括强大的硬件资源,还包括精细健壮的软件技术和追求完美的场景渲染。本节,我们主要学习了解ARKit的核心功能及ARSession、ARAnchor、ARFrame在AR应用发开中的关键作用,更具体的内容会在后续学习中进一步了解。(一)ARKit三大基础能力 ARKit整合了SLAM、计算原创 2020-07-03 22:05:56 · 2713 阅读 · 2 评论 -
ARKit之路-ARKit概述之二
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。 ARKit需要运行在iOS11以上的iPhone与iPad上。AR应用属于计算密集型应用,对计算硬件要求较高,就算在应用中什么虚拟对象都不渲染,AR也在对环境、特征点跟踪进行实时解算,因此设备需要足够强大的CPU来整合软硬件,才能确保达到优秀的性能和高效的实时计算渲染能力。为了更好的用户体验,运行ARKit的设备最低需要A9处理器,因此iPhone6s以前的设备将无法使用ARKit,另外由于移动端硬件设备资源限制,一些高级AR原创 2020-06-29 22:09:32 · 1107 阅读 · 2 评论 -
ARKit之路-ARKit概述之一
2017年,在WWDC(World Wide Developers Conference,苹果全球开发者大会)上,苹果公司正式推出了增强现实开发套件ARKit。ARKit一推出即在科技圈引发极大关注,一方面是苹果公司在科技界的巨大影响力,另一方面更重要的是ARKit在移动端实现的堪称惊艳的AR效果。ARKit的面世,直接将AR技术带到了亿万用户眼前,更新了人们对AR的印象,苹果公司也因此成为移动AR技术的引领者。 认真研究分析苹果公司的战略,可以发现,苹果玩AR是认真的,而且其决心绝不仅局限于ARK原创 2020-06-27 21:46:49 · 9657 阅读 · 2 评论