ARKit教程03_第一章:Hello ARKit!

前言

对ARKit感兴趣的同学,可以订阅ARKit教程专题
源代码地址在这里

正文

增强现实(AR)是一种技术,无疑将在我们的数字进化中发挥重要作用,因为它开始将科幻小说变成科学事实。再加上最近对人工智能 (AI) (尤其是机器学习) 的兴趣激增,我们才刚刚开始了解这些技术如何协同工作,将现实世界与数字世界无缝融合。

对于一群生活在太空中飞驰的微小的蓝色球体上的灵长类动物来说,这还不错,嗯,让我们用视觉辅助来解释增强现实背后的基本概念。这是我的宠物变色龙, Elon——就像在Cham-E-Leon,能拿到吗?呃...我们继续。

坐着的宠物变色龙

Elon是个可爱的小家伙,你同意吗?事实是,Elon不是真的他实际上只是一个逼真的3D模型。

从左边的照片开始,你可以看到我的旧iPad封面。突然,变色龙的Elon,从稀薄的空气出现。当我移动相机时,伊隆一直呆着,然而,他的头和眼睛跟着我。当我离开他的观点时,他四处走动,以便能监视我。

这究竟怎么可能呢?是某种先进的绝地思维技巧吗?

增强现实

虽然很酷,但AR不是绝地思维的把戏。相反,错觉来自将虚拟内容叠加到来自相机的实时图像源之上。也就是说,AR 增强了(增强)现实世界(现实)。为了使错觉无缝,虚拟内容的位置、缩放和旋转会不断使用设备的实时运动数据在真实空间中移动时进行更新。

最终结果是什么?让你质疑自己现实的惊人效果。

让我们来看看它是如何工作的。

基于标记的跟踪

AR不是一个新概念;在过去的几年里,许多配备摄像头的现代智能设备已经能够做到这一点。这通常是通过使用跟踪卡和一种称为基于标记的增强现实的技术来实现的。

跟踪卡用作真实表面上的锚点;并一种特殊的算法分析摄像机数据,以确定卡的位置、比例和方向。然后,该跟踪信息用于投影、缩放和放置3D内容,这些内容叠加在摄像机的图像上。一个很好的例子是Om Nom Candy Flick,一个令人惊讶的有趣的增强现实游戏。

Om Nom Candy Flick

不幸的是,当卡离开摄像机视图时,跟踪丢失,破坏了整个 AR体验。AR 的下一个边界是创建不需要跟踪物理标记的 AR内容。

无标记跟踪

想象一下,你有一副神奇的眼镜,能够将虚拟 3D 元素叠加到你所看到的一切上。如果你把它们穿上,你可以无缝地将你的真实世界体验与那内容融合在一起,使一切看起来如此真实,以至于你几乎可以伸手去触摸它!

我会让你了解一个小秘密:那些神奇的眼镜已经存在,一个例子是微软HoloLens

HoloLens

然而,HoloLens远非神奇。相反,它是一个高度复杂的设备,能够跟踪你的一举一动。它还具有空间感知能力,这意味着它不仅看到并了解你周围的世界。它跟踪真实世界空间的移动,并积极绘制环境图,创建虚拟的 3D"世界空间"。

由于HoloLens是可穿戴设备,因此标准人机界面(如操纵杆或鼠标)无法很好地用于输入。因此,Microsoft 想出了一些聪明的方法供用户与虚拟内容进行交互:

HoloLens 交互方式
  • Gaze(目光):使用放置在显示中间的焦点立方体,它的作用类似于虚拟鼠标光标。你可以倾斜头部,将光标移到对象顶部,以便与对象进行交互。

  • Gesture(手势): HoloLens 可以识别用手进行的捏合手势,以模拟鼠标单击。

  • Voice(声音): 你还可以向 HoloLens 说出命令,就像使用 SiriMicrosoft Xbox Connect 一样。

HoloLens 是一个梦幻般的设备,但它并不完美。又大又笨,这与我们在科幻故事中承诺的动感太阳镜般的耳机相去甚远。此外,该设备仍然相当昂贵,这使得技术无法为大多数人所用。

然而,当苹果宣布ARKit时,这些进入壁垒就消失了。

ARKit介绍

ARKit是苹果的移动AR开发框架。有了它,你可以创建身临其境的迷人体验,将虚拟 2D3D 内容与你周围的世界实时摄像机源混合在一起。

使 ARKit与其他 AR 框架(如 Vuforia)不同之处在于 ARKit 执行无标记跟踪。没错!无需跟踪卡。最重要的是,ARKit 可立即将任何具有 A9或更高处理器的Apple 设备转换为无标记AR的设备。想想看——此时此刻,数百万苹果用户已经拥有了一款精密的AR设备。

ARKit可以为你做什么?

如果你已经使用 Apple 的任何其他框架,你可能预计需要很长时间才能解决问题。但是,使用 ARKit,只需几行代码 – ARKit 为你承担了大部分繁重的工作,因此你可以专注于重要内容:创建身临其境且引人入胜的AR体验。

让我们来看看ARKit能为你做什么。

跟踪

HoloLens 类似,ARKit 通过真实世界空间实时跟踪设备移动。它使用来自设备的采样运动数据来自动更新虚拟内容转换。它通过在虚拟场景中移动虚拟摄像机的视点来匹配设备的视图来为此。

2D 图像和 3D 对象检测

ARKit 可以检测 2D图像和 3D对象,允许你将增强的内容叠加到对象上,如经典艺术作品。现在你可以给蒙娜丽莎一个微笑——迈克尔·安吉洛的大卫的裤子怎么样?:]

场景理解和持久性

为了实现无标记跟踪,ARKit创建和管理其检测到的表面的世界地图。ARKit中的特殊事件挂钩在每次检测到新曲面、修改曲面或移除曲面时都会触发。这使你能够对场景进行难以置信的控制,包括内容如何与这些曲面交互。

ARKit还可以加载和保存世界地图,以便快速识别以前的扫描空间。在多台设备上加载相同的世界地图时,你可以轻松地使用基本网络创建共享体验。

你还可以在多个 ARKit会话中保持虚拟放置内容的持久性。现在告诉我,我又把我的杯子放哪儿了?

光线估计

ARKit使用当前视频帧实时估计环境照明条件。然后,它可以自动调整虚拟内容的亮度级别以匹配环境条件,前提是虚拟内容使用基于物理的材料,你将在后面的章节中了解这些材料。

实时环境图

ARKit可以通过对即时空间进行采样来生成实时环境地图。这允许你为基于PBR 的对象提供逼真的反射,以及实时照明信息。

场景交互

ARKit还提供命中测试功能,可让你不受限制地与场景中的3D内容进行交互。你还可以将这种交互与传统基于触摸的手势结合使用,这是 Apple在其基于 AR 的应用程序的"人机界面指南"中推荐的。但是,由于你位于Apple 的生态系统中,因此没有什么能阻止你使用 Apple 的任何其他伟大框架,如 Core MLVision。你甚至可以使用 SiriKit并命令你的声音获得 AR 体验!

米制测量系统

为了计算场景中的距离和大小,ARKit 使用相当精确的米制测量系统。使用哪种图形 API 并不重要 , 在ARKit 中,1个单位等于 1米。

渲染集成

ARKit没有自己的图形API;它只为你提供跟踪信息和表面检测功能。虽然你仍在为场景中的图形提供功能,但 ARKit 可轻松与图形框架(如 SpriteKitSceneKitMetal)集成。

苹果与游戏开发社区的关系也导致了一些优秀的插件为流行的游戏引擎UnityUnreal的出现。

ARKit的局限性

尽管 ARKit 为移动设备上的用户体验提供了新的范例,但它具有一些限制性,会影响你开发ARKit 应用。

表面检测需要时间

表面检测和实际了解需要大量时间,几乎不是即时的。因此,你需要管理用户期望并引导他们完成应用的表面检测阶段。

运动处理滞后

过多的设备运动可能导致图像不顺畅和模糊,使 ARKit 难以理解其正在查看的内容。当真实场景变得不稳定时,ARKit处理也会变得有点不稳定。在那些崎岖不平的公路上慢下来是很重要的。

低光照条件

低光照条件存在问题。设备摄像头无法识别低光场景和人眼,这意味着ARKit 在低光照条件下将难以进行场景检测;它甚至可能无法识别任何表面。

如果你在低光照条件下努力观察事物,ARKit发现它变得更糟十倍。

光滑的无纹理表面

光滑、无纹理的表面使 ARKit 难以检测和跟踪表面。表面纹理越大,ARKit 就越容易检测和跟踪这些表面的运动。

作为开发人员,你的工作是在使用启用AR 的应用之前确保用户了解这一点,否则当他们无法将虚拟家具放在抛光的黑色大理石地板上时,他们会感到沮丧。

幽灵效果

使用AR一段时间后,你可能会注意到一些虚拟内容违反物理定律。例如,虚拟内容可能通过真实世界的对象,就像鬼通过关闭的门一样。

由于这种情况可能会中断AR体验,因此最好鼓励用户在开阔的空间或干净桌面上使用应用程序。

ARKit 背后的技术支持

当你在 ARKit 的框架下查看时,你可能会惊讶地发现,有些技术非常熟悉,并且已经存在了一段时间。

ARKit使用Visual Inertial Odometry (VIO) 来跟踪设备的运动及其周围的世界。VIO 将来自摄像机传感器的基于 AVFoundation 的输入与通过 CoreMotion 捕获的设备运动数据融合在一起。如果你以前使用过这些框架中的任何一个,你将立即识别它们如何协同工作以支持 ARKit的场景识别和跟踪。

挑战

欢迎来到你的第一个挑战部分!你可能没想到这本书这么快就会面临挑战,是吗?

完成本书中的挑战将很好地帮助你完成 ARKit 之旅。这些挑战让你有机会应用你的知识,并确保你在继续前已掌握这些概念。如果你尝试一个挑战,并真正卡住,不要担心,解决方案是在项目文件中提供的。

由于这是你的第一个挑战,我们使其变得简单:快速阅读以下资源,并对其进行书签。由于单靠 GooglingARKit 上查找资源可能比较困难,因此我们为你策划了一份列表。

官方 ARKit 文档

这是苹果的ARKit文档官方网站。在这里,你可以找到有关ARKit及其相关技术的最新信息。

增强现实的人机界面指南

Apple 还提供一套人机界面指南,指导你在设计 ARKit 应用时的最佳做法。本指南将准确显示该做什么和不该做什么。不遵守这些准则可能会导致 Apple 拒绝你的应用提交。

官方WWDC 2017/2018 ARKit视频

Apple 总是将大量信息打包到他们的WWDC 演示文稿中 - 他们在 ARKit 上的视频也不例外,绝对值得观看一次。

使用 ARKit 的交互式内容

这是苹果的官方ARKit演示之一,它是获得一些与ARKit的实践经验的一个有趣的方式。按照链接并查找"下载示例代码"按钮。找到后,下载zip文件,提取内容并使用最新版本的 Xcode生成项目。然后,在具有 A9 处理器或更好处理器(iPhone SEiPhone 6s和更高版本)的物理设备上运行它。此时,你无法在模拟器上测试AR应用。

在这个演示中,你将见到变色龙Elon,但要小心 - 他总是在看!

在本演示中,你将了解有关创建共享 AR 体验的所有介绍。

要点

你已经到达第一章的末尾,并在创建你自己的启用 AR 的游戏和应用程序的旅程中迈出了第一步。

以下是你在本章中所做的简要概述:

  • 你了解了什么是增强现实,以及智能设备如何使用其车载摄像头和运动传感器实现 AR

  • 你发现了基于标记和无标记跟踪之间的差异。

  • 你被介绍到 ARKit。你了解了它是什么,它做什么,它的一些限制是什么。

你了解到 ARKit 不是图形库;因此,你知道 ARKit 不是图形库。相反,它是一个框架,为你做AR的繁重工作。

在下一章中,你将学习如何使用 Xcode 创建第一个 ARKit应用程序。

上一章 目录 下一章
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 155,770评论 4 358
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,116评论 1 286
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 105,656评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,372评论 0 201
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,704评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,166评论 1 204
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,535评论 2 306
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,259评论 0 193
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,882评论 1 236
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,218评论 2 239
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,760评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,126评论 2 249
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,667评论 3 228
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,935评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,644评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,171评论 2 265
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,119评论 2 258