新書推薦:
《
失衡与重塑——百年变局下的中国与世界经济
》
售價:NT$
602.0
《
不被定义的年龄:积极年龄观让我们更快乐、健康、长寿
》
售價:NT$
352.0
《
南方谈话:邓小平在1992
》
售價:NT$
367.0
《
纷纭万端 : 近代中国的思想与社会
》
售價:NT$
500.0
《
中国古代文体形态研究(第四版)(中华当代学术著作辑要)
》
售價:NT$
765.0
《
朋党之争与北宋政治·大学问
》
售價:NT$
454.0
《
甲骨文丛书·波斯的中古时代(1040-1797年)
》
售價:NT$
403.0
《
以爱为名的支配
》
售價:NT$
286.0
|
編輯推薦: |
1)结构清晰。本书共分三部分:部分为基础篇,第二部分为功能技术篇,第三部分为高级篇。紧紧围绕ARKit开发,对其功能特性进行了全方位的讲述,并从实际应用角度阐述了AR应用设计原则、性能优化相关知识。
(2)循序渐进。本书充分考虑不同知识背景读者的需求,按知识点循序渐进,通过大量配图、实例进行详细讲解,力求使读者快速掌握AR Foundation框架下的ARKit开发。
(3)深浅兼顾。在讲解ARKit功能技术点时对其技术原理、理论脉络进行了较深入的探究,用语通俗易懂,对技术阐述深入浅出。
(4)实用性强。本书实例丰富,每各技术点都有案例,注重对技术的实际运用,力图解决读者在项目开发中面临的难点问题,实用性强。
|
內容簡介: |
本书基于AR Foundation框架,采用URP渲染管线,讲述利用ARKit进行iOS平台的AR应用开发,从AR技术概念、原理、理论脉络到各功能技术点、AR Quick Look、设计原则、性能优化,对ARKit应用开发中涉及的技术进行了全方位的讲述,用语通俗易懂,阐述深入浅出。 本书共分三部分:部分为基础篇,包括第1章至第3章,从基础的增强现实概念入手,通过一个实例阐述了AR应用开发从软硬件准备、开发环境搭建、工程设置、发布部署全流程,探讨了AR Foundation框架的技术基础、常用组件,并着重探索了ARKit功能特性和运动跟踪原理;第二部分为功能技术篇,包括第4章至第13章,对ARKit功能特性进行了全方位的详细探索讨论,从平面检测、2D图像和3D物体检测、人脸检测到持久化存储与共享、光影特效、人体动捕等,全方位地进行了技术剖析、讲解、演示,并对AR场景管理、图像信息处理、3D文字声频视频、AR Quick Look等实用功能进行了阐述和使用操作讲解;第三部分为高级篇,包括第14章至第15章,主要阐述了AR应用设计、性能优化相关主题,着力提升开发人员在AR应用开发时的实际应用能力和整体把握能力。 本书结构清晰、循序渐进、深浅兼顾,实例丰富,每个技术点都有案例,特别注重对技术原理和实际运用的讲述,提供实际工程实践解决思路和方案。 本书适合AR初学者、Unity开发人员、程序员、科研人员,也可以作为高校、大专院校相关专业师生的学习用书,以及培训学校的培训教材。
|
關於作者: |
汪祥春,计算机科学与技术专业硕士,全国信息标准化技术委员会虚拟现实与增强现实标准工作组成员(CNITSC)、中国增强现实核心技术产业联盟成员(CARA)、华为HDE(Huawei Developer Experts)、CSDN博客专家,拥有深厚软件工程专业背景,十余年项目实施管理经验,专注AR/MR开发,申请AR专利4项,软件著作权1件。著有《基于Unity的ARCore开发实战详解》《AR开发权威指南:AR Foundation》《ARKit原生开发入门精粹——RealityKit Swift SwiftUI》《HoloLens 2开发入门精要——基于Unity和MRTK》《AR Foundation增强现实开发实战(ARCore版)》。
|
目錄:
|
基 础 篇
第1 章 AR 开发入门 3
1.1 增强现实技术概述 3
1.1.1 AR 概念 3
1.1.2 AR 技术应用 5
1.2 AR 技术原理 5
1.2.1 传感器数据 6
1.2.2 前端里程计 8
1.2.3 后端优化 8
1.2.4 回环检测 8
1.2.5 建图 9
1.3 AR Foundation 概述 10
1.3.1 AR Foundation 与ARKit 11
1.3.2 AR Foundation 支持的功能 11
1.3.3 AR Foundation 功能概述 12
1.3.4 AR Foundation 体系架构概述 13
1.3.5 基本术语 13
1.4 支持的设备 15
1.5 开发环境准备 16
1.5.1 所需硬件和软件 16
1.5.2 软件安装 17
1.6 ARKit 初体验 20
1.6.1 工程创建 20
1.6.2 工具包导入 22
1.6.3 工程设置 24
1.6.4 环境搭建 26
目 录
IV AR Foundation 增强现实开发实战(ARKit 版)
1.6.5 代码编写 29
1.6.6 发布Xcode 工程 31
1.6.7 调试运行 34
1.7 Unity XR 模拟工具 36
1.8 ARKit 会话录制与重放 40
1.9 其他模拟器 42
第2 章 AR Foundation 基础 46
2.1 AR Foundation 体系架构 46
2.1.1 AR 子系统概念 47
2.1.2 AR 子系统使用 48
2.1.3 跟踪子系统 50
2.2 AR Session 和XR Origin 50
2.2.1 AR Session 51
2.2.2 XR Origin 54
2.3 可跟踪对象 56
2.3.1 可跟踪对象管理器 57
2.3.2 可跟踪对象事件 58
2.3.3 管理可跟踪对象 59
2.4 会话管理 60
第3 章 ARKit 功能特性与开发基础 63
3.1 ARKit 概述及主要功能 63
3.1.1 ARKit 功能 64
3.1.2 ARKit 三大基础能力 66
3.1.3 ARKit 的不足 68
3.2 运动跟踪原理 69
3.2.1 ARKit 坐标系 69
3.2.2 ARKit 运动跟踪分类 70
3.2.3 ARKit 运动跟踪 72
3.2.4 ARKit 使用运动跟踪的注意事项 74
3.3 设备可用性检查 74
3.4 AR 会话生命周期管理与跟踪质量 75
3.5 基于地理位置的AR 79
3.5.1 技术基础 79
3.5.2 实践 81
目 录 V
3.6 热管理 87
3.7 AR 轻应用 90
功能技术篇
第4 章 平面检测与锚点管理 95
4.1 平面检测引导 95
4.1.1 Unity 实现 95
4.1.2 ARKit 引导视图 99
4.2 平面管理 105
4.2.1 平面检测 105
4.2.2 可视化平面 106
4.2.3 个性化渲染平面 107
4.2.4 开启与关闭平面检测功能 112
4.2.5 显示与隐藏已检测平面 113
4.2.6 平面遮挡 115
4.3 射线检测 117
4.3.1 射线检测概念 117
4.3.2 射线检测详细讲解 119
4.4 可视化放置点 120
4.5 特征点与点云 123
4.5.1 特征点 123
4.5.2 点云 124
4.5.3 点云数据采集 125
4.6 锚点 129
4.7 平面分类 133
4.8 场景表面网格 136
4.8.1 场景几何 137
4.8.2 场景几何语义 141
第5 章 2D 图像与3D 物体检测跟踪 150
5.1 2D 图像检测跟踪 150
5.1.1 图像检测跟踪基本操作 150
5.1.2 图像检测跟踪功能的启用与禁用 155
5.1.3 多图像检测跟踪 156
VI AR Foundation 增强现实开发实战(ARKit 版)
5.1.4 运行时创建参考图像库 161
5.1.5 运行时切换参考图像库 162
5.1.6 运行时添加参考图像 163
5.1.7 脱卡 167
5.1.8 图像检测跟踪优化 169
5.2 3D 物体检测跟踪 171
5.2.1 获取参考物体空间特征信息 171
5.2.2 扫描获取物体空间特征信息的注意事项 174
5.2.3 AR Tracked Object Manager 组件 175
5.2.4 3D 物体检测识别跟踪基本操作 176
5.2.5 3D 物体检测跟踪启用与禁用 177
5.2.6 多物体检测识别跟踪 179
第6 章 人脸检测跟踪 182
6.1 人脸检测基础 182
6.1.1 人脸检测概念 182
6.1.2 人脸检测技术基础 183
6.2 人脸姿态与网格 185
6.2.1 人脸姿态 185
6.2.2 人脸网格 187
6.3 多人脸检测 192
6.4 BlendShapes 194
6.4.1 BlendShapes 基础 194
6.4.2 BlendShapes 技术原理 195
6.4.3 BlendShapes 的使用 197
6.5 同时开启前后摄像头 199
6.6 眼动跟踪 202
第7 章 光影效果 208
7.1 光照基础 208
7.1.1 光源 208
7.1.2 光与材质的交互 209
7.1.3 光照模型 210
7.1.4 3D 渲染 211
7.2 光照估计 211
7.2.1 光照一致性 212
目 录 VII
7.2.2 光照估计实例 212
7.3 环境反射 216
7.3.1 立方体贴图 216
7.3.2 PBR 渲染 217
7.3.3 反射探头 218
7.3.4 纹理采样过滤 218
7.3.5 AR Environment Probe Manager 组件 220
7.3.6 环境反射使用 222
7.3.7 性能优化 224
7.4 内置实时阴影 225
7.4.1 ShadowMap 技术原理 226
7.4.2 使用实时阴影 227
7.5 Planar 阴影 231
7.5.1 数学原理 232
7.5.2 代码实现 233
7.6 伪阴影 238
第8 章 持久化存储与多人共享 240
8.1 云锚点 240
8.2 ARWorldMap 241
8.2.1 ARWorldMap 概述 241
8.2.2 ARWorldMap 实例 242
8.3 协作会话 247
8.3.1 协作会话概述 248
8.3.2 协作会话实例 251
8.3.3 协作会话使用注意事项 255
8.4 Azure 空间定位点 257
8.4.1 Azure 空间定位点概述 257
8.4.2 Azure 空间定位点使用实例 257
8.4.3 Azure 空间定位点使用注意事项 266
第9 章 肢体动作捕捉与人形遮挡 267
9.1 2D 人体姿态估计 267
9.1.1 人体骨骼关节点检测 267
9.1.2 使用2D 人体姿态估计 268
VIII AR Foundation 增强现实开发实战(ARKit 版)
9.2 3D 人体姿态估计 273
9.2.1 3D 人体姿态估计基础 273
9.2.2 使用3D 人体姿态估计实例 284
9.3 人形遮挡 285
9.3.1 人形遮挡原理 286
9.3.2 人形遮挡实现 288
9.4 人形提取 289
第10 章 场景图像获取与场景深度 294
10.1 获取GPU 图像 294
10.1.1 获取摄像头原始图像 294
10.1.2 获取屏幕显示图像 296
10.2 获取CPU 图像 299
10.2.1 AR 摄像头图像数据流 300
10.2.2 从CPU 中获取摄像头图像 301
10.3 边缘检测原理 310
10.3.1 卷积 311
10.3.2 Sobel 算子 311
10.4 CPU 图像边缘检测实例 313
10.5 Depth API 316
10.5.1 Depth API 概述 317
10.5.2 Depth API 实例 319
10.5.3 场景深度应用场景 324
第11 章 相机与手势操作 326
11.1 AR 场景操作 326
11.1.1 场景操作方法 327
11.1.2 场景操作实例 327
11.2 手势操作交互 329
11.2.1 手势检测 329
11.2.2 手势操作控制 332
11.3 XR Interaction Toolkit 334
11.3.1 对象放置 335
11.3.2 对象选择 339
11.3.3 对象操作 341
目 录 IX
第12 章 3D 文字与音视频 343
12.1 3D 文字 343
12.1.1 文字单位换算 343
12.1.2 中文字体制作 344
12.2 3D 声频 345
12.2.1 3D 声场原理 346
12.2.2 空间声频使用 347
12.2.3 使用空间声频 347
12.2.4 运行时启用和禁用3D 音效 350
12.2.5 使用回响营造空间感 351
12.2.6 3D 音效设计原则 354
12.3 3D 视频 355
12.3.1 Video Player 组件 355
12.3.2 3D 视频播放实现 358
12.3.3 视频音效空间化 361
第13 章 USDZ 与AR Quick Look 362
13.1 USDZ 概述 362
13.1.1 USD 362
13.1.2 USDZ 363
13.2 USDZ 文件转换 363
13.2.1 USDZ Tools 363
13.2.2 Reality Converter 364
13.2.3 USD Unity 插件 366
13.3 AR Quick Look 概述 367
13.4 App 应用中嵌入AR Quick Look 370
13.5 Web 网页中嵌入AR Quick Look 374
13.5.1 选择支付样式 376
13.5.2 显示自定义按钮文件 376
13.5.3 自定义显示文字 377
13.5.4 自定义显示条目 378
13.5.5 自定义条目高度 378
13.5.6 事件处理 379
13.6 使用AR Quick Look 的注意事项 379
X AR Foundation 增强现实开发实战(ARKit 版)
高 级 篇
第14 章 AR 应用设计指南 385
14.1 移动AR 带来的挑战 385
14.1.1 3D 化思维 385
14.1.2 用户必须移动 386
14.1.3 要求手持设备 386
14.1.4 近脸使用 387
14.1.5 手势操作 387
14.1.6 启动应用 387
14.1.7 色彩运用 388
14.2 移动AR 设计准则 388
14.2.1 实用性或娱乐性 388
14.2.2 虚实融合必须有意义 389
14.2.3 移动限制 389
14.2.4 心理预期与维度转换 389
14.2.5 环境影响 390
14.2.6 视觉效果 390
14.2.7 UI 设计 391
14.2.8 沉浸式交互 391
14.3 移动AR 设计指南 392
14.3.1 环境 393
14.3.2 用户细节 394
14.3.3 虚拟内容 396
14.3.4 交互 403
14.3.5 视觉设计 407
14.3.6 真实感 412
14.3.7 3D 音效 416
第15 章 性能优化 419
15.1 性能优化基础 419
15.1.1 影响性能的主要因素 419
15.1.2 AR 应用常用调试方法 421
15.1.3 AR 应用性能优化一般原则 422
目 录 XI
15.2 AR 应用性能调试工具 423
15.2.1 DebugMenu 423
15.2.2 Unity 分析器 424
15.2.3 帧调试器 427
15.3 Unity 分析器使用 428
15.3.1 CPU 使用情况分析器 428
15.3.2 渲染情况分析器 429
15.3.3 内存使用情况分析器 430
15.3.4 物理分析器 431
15.3.5 音视频分析器 432
15.4 性能优化流程 432
15.4.1 收集运行数据 433
15.4.2 分析运行数据 434
15.4.3 确定问题原因 436
15.5 渲染优化 437
15.5.1 渲染流程 437
15.5.2 CPU 瓶颈 438
15.5.3 GPU 瓶颈 441
15.6 代码优化 443
15.6.1 内存管理 443
15.6.2 垃圾回收 444
15.6.3 对象池 449
15.6.4 常见影响性能的代码优化策略 450
15.7 ARKit 优化设置 452
15.7.1 UI/UX 优化 452
15.7.2 常用优化设置 452
15.7.3 AR 应用开发一般注意事项 454
|
內容試閱:
|
作为元宇宙技术底座人机交互中的重要技术,增强现实(Augmented Reality,AR)技术受
到了广泛关注,并迅速成为科技巨头和初创企业竞先入局的科技赛道。客观而言,元宇宙仍处
于行业发展的初级阶段,无论是底层技术还是应用场景,与预期的成熟形态相比仍有相当大的
差距,但这也意味着元宇宙相关科技和产业发展空间巨大。作为元宇宙中核心的增强现实技
术是实现虚实融合、新型人机交互模式的关键,必将在接下来的十年中获得长足进步和发展。
与VR 打造一个纯虚拟的数字世界不同,AR 技术是一种将虚拟信息与真实世界融合呈现
的技术,其广泛运用了人工智能、三维建模、传感计算、运动跟踪、智能交互等多种技术手
段,将计算机生成的文字、图像、三维模型、声频、视频、动画等虚拟信息按照几何一致性
和光照一致性原则应用到真实世界中,考虑了真实世界与虚拟信息的相互关系,虚实信息无
痕融合,从而实现人类对客观世界认知能力的增强。
ARKit 是苹果公司在前沿科技领域的重大技术布局,也是目前移动领域AR 应用开发引擎
标杆。得益于良好的软硬件生态整合,ARKit 运动跟踪稳定性好、性能消耗低、功能特性丰富,
利用它可以开发出令人惊艳的AR 应用。ARKit 支持iPhone 和iPad 设备,并且可以预见,其
也必将支持即将面世的iGlass 眼镜设备。
本书是《AR Foundation 增强现实开发实战(ARCore 版)》的姊妹版,讲述利用ARKit 进
行iOS/iPadOS 平台的AR 应用开发,从AR 技术概念、原理、理论脉络到各功能技术点、实
用技巧、设计原则、性能优化,对ARKit 应用开发中涉及的技术进行了全方位讲述,旨在帮
助开发者系统化掌握AR 开发的相关知识,建立ARKit AR 应用开发知识体系。
本书关注ARKit 功能特性的实际应用,但在讲解技术点的同时对其原理、技术背景进行
了较深入的探究,采取循序渐进的方式,使读者知其然更能知其所以然,一步一步地将读者
带入AR 应用开发的殿堂。
前置知识
本书面向ARKit 应用开发初学者和Unity 工程师,内容讲述尽力采用通俗易懂的语言、
从基础入门,但仍然希望读者能具备以下前置知识。
(1)熟悉Unity 引擎基本操作,掌握Unity 开发基本技能,能熟练进行一般性的模型导入
导出、属性设置、发布部署。
(2)熟悉C# 高级语言,掌握基本的C# 语法及常见数据结构、编码技巧,对常见游戏对
象代码操作、事件绑定等有自己的理解。
前 言
PREFACE
II AR Foundation 增强现实开发实战(ARKit 版)
(3)了解Visual Studio for Mac 开发环境,能进行基本的开发环境设置、功能调试、资源
使用。
(4)了解图形学。数字三维空间是用数学精确描述的虚拟世界,如果读者对坐标系、向
量及基本的代数运算有所了解会对理解AR 应用工作原理、渲染管线有帮助。但本书中没有
直接用到复杂数学计算,读者不用太担心。
预期读者
本书属于技术类书籍,预期读者人群包括以下几类。
(1)高等院校及对计算机技术有浓厚兴趣的专科学校学生。
(2)对AR 技术有兴趣的科技工作者。
(3)向AR 方向转行的程序员、工程师。
(4)研究讲授AR 技术的教师。
(5)渴望利用新技术的自由职业者或者其他行业人员。
本书特色
(1)结构清晰。本书共分基础篇、功能技术篇和高级篇3 篇。紧紧围绕ARKit 开发,对
其功能特性进行了全方位讲述,并从实际应用角度阐述了AR 应用设计原则、性能优化等相
关知识。
(2)循序渐进。本书充分考虑不同知识背景读者的需求,按知识点循序渐进,通过大量
配图、实例进行详细讲解,力求使读者快速掌握AR Foundation 框架下的ARKit 开发。
(3)深浅兼顾。在讲解ARKit 功能技术点时对其技术原理、理论脉络进行了较深入的探
究,语言通俗易懂,对技术阐述深入浅出。
(4)实用性强。本书实例丰富,每个技术点都配有案例,注重对技术的实际运用,力图
解决读者在项目开发中面临的难点问题,实用性强。
源代码
本书源代码请扫描下方二维码下载。
本书源代码
读者反馈
尽管笔者在本书的编写过程中多次对内容、语言描述的连贯一致性和叙述的准确性进行
审查、校正,但由于笔者水平有限,书中仍然难免存在疏漏,敬请读者批评指正。
致谢
仅以此书献给我的妻子欧阳女士、孩子妍妍及轩轩,是你们让我一直保持昂扬斗志,一
往无前,永远爱你们。也感谢清华大学出版社赵佳霓编辑对本书的大力支持。
编 者
2023 年1 月
|
|