• AR Foundation增强现实开发实战(ARCore版)9787302612186
21年品牌 40万+商家 超1.5亿件商品

AR Foundation增强现实开发实战(ARCore版)9787302612186

正版图书,可开发票,请放心购买。

51.8 4.8折 109 全新

库存21件

广东广州
认证卖家担保交易快速发货售后保障

作者汪祥春编著

出版社清华大学出版社

ISBN9787302612186

出版时间2021-03

装帧平装

开本16开

定价109元

货号11733880

上书时间2024-12-28

哲仁书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
汪祥春,计算机科学与技术专业硕士,全国信息安全标准化委员会虚拟现实与增强现实标准工作组成员(CNITSC)、中国增强现实核心技术产业联盟成员(CARA)、华为HDE(Huawei Developer Experts)、CSDN博客专家,申请AR/MR专利3项,拥有深厚的软件工程专业背景和十余年软件项目实施管理经验。著有《基于Unity的ARCore开发实战详细讲解》《AR开发权威指南——AR Foundation》《ARKit原生开发入门精粹——RealityKit+Swift+SwiftUI》。

目录

基 础 篇

第1章 AR开发入门 1

1.1 增强现实技术概述 3

1.1.1 AR概念 3

1.1.2 AR技术应用 5

1.2 AR技术原理 6

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与 ARCore 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 所需硬件和软件 17

1.5.2 软件安装 17

1.6 ARCore初体验 19

1.6.1 工程创建 19

1.6.2 工具包导入 21

1.6.3 工程设置 22

1.6.4 环境搭建 24

1.6.5 代码编写 27

1.6.6 调试准备 29

1.6.7 打包测试 30

1.7 AR应用调试 31

第2章 AR Foundation基础 36

2.1 AR Foundation体系架构 36

2.1.1 AR子系统概念 37

2.1.2 AR子系统使用 38

2.1.3 跟踪子系统 39

2.2 AR Session & AR Session Origin 40

2.2.1 AR Session 40

2.2.2 AR Session Origin 43

2.3 可跟踪对象 45

2.3.1 可跟踪对象管理器 46

2.3.2 可跟踪对象事件 47

2.3.3 管理可跟踪对象 48

2.4 会话管理 49

第3章 ARCore功能特性与开发基础 52

3.1 ARCore概述及主要功能 52

3.1.1 运动跟踪 53

3.1.2 环境理解 53

3.1.3 光照估计 54

3.1.4 ARCore的不足 54

3.2 运动跟踪原理 56

3.2.1 ARCore坐标系 56

3.2.2 ARCore运动跟踪分类 56

3.2.3 ARCore运动跟踪 58

3.2.4 ARCore使用运动跟踪的注意事项 60

3.3 设备可用性检查 61

3.4 AR会话生命周期管理与跟踪质量 62

3.5 ARCore扩展包 65

3.6 相机配置 66

3.7 会话录制与回放 68

3.7.1 AR Foundation录制与回放 69

3.7.2 ARCore扩展录制与回放 72

3.8 即时放置 78

功能技术篇

第4章平面检测与锚点管理 85

4.1 平面检测引导 85

4.2 平面管理 88

4.2.1 平面检测 88

4.2.2 可视化平面 89

4.2.3 个性化渲染平面 90

4.2.4 开启与关闭平面检测功能 95

4.2.5 显示与隐藏已检测平面 97

4.2.6 平面遮挡 99

4.3 射线检测 100

4.3.1 射线检测概念 100

4.3.2 射线检测详细讲解 102

4.4 可视化放置点 104

4.5 特征点与点云 106

4.5.1 特征点 107

4.5.2 点云 108

4.5.3 点云数据采集 109

4.6 锚点 113

第5章图像检测跟踪 118

5.1 图像检测跟踪基本操作 118

5.2 图像跟踪功能启用与禁用 123

5.3 多图像跟踪 124

5.4 运行时创建参考图像库 129

5.5 运行时切换参考图像库 130

5.6 运行时添加参考图像 132

5.7 脱卡 136

5.8 图像跟踪优化 137

第6章人脸检测跟踪 140

6.1 人脸检测基础 140

6.1.1 人脸检测概念 140

6.1.2 人脸检测技术基础 141

6.2 人脸姿态与网格 143

6.2.1 人脸姿态 143

6.2.2 人脸网格 145

6.3 人脸区域与多人脸检测 151

6.3.1 人脸区域 151

6.3.2 多人脸检测 155

第7章光影效果 159

7.1 光照基础 159

7.1.1 光源 160

7.1.2 光与材质的交互 160

7.1.3 光照模型 161

7.1.4 三维渲染 162

7.2 光照估计 163

7.2.1 光照一致性 163

7.2.2 光照估计实例 163

7.3 环境反射 167

7.3.1 立方体贴图 167

7.3.2 纹理采样过滤 168

7.3.3 AR Environment Probe Manager组件 169

7.3.4 使用环境反射 170

7.4 内置实时阴影 171

7.4.1 ShadowMap技术原理 172

7.4.2 使用实时阴影 173

7.5 Planar阴影 178

7.5.1 数学原理 178

7.5.2 代码实现 179

7.6 伪阴影 185

第8章持久化存储与多人共享 187

8.1 云锚点 187

8.2 ARCore云锚点使用实例 188

8.3 ARCore云锚点使用注意事项 195

8.4 Azure云服务概述 196

8.5 Azure空间定位点使用实例 197

第9章场景图像获取与场景深度 206

9.1 获取 GPU图像 206

9.1.1 获取摄像头原始图像 206

9.1.2 获取屏幕显示图像 208

9.2 获取 CPU图像 212

9.2.1 AR摄像头图像数据流 212

9.2.2 从 CPU中获取摄像头图像 213

9.3 边缘检测原理 222

9.3.1 卷积 223

9.3.2 Sobel算子 224

9.4 CPU图像边缘检测实例 226

9.5 Depth API概述 229

9.6 Depth API实例 232

9.7 场景深度应用场景 237

第10章相机与手势操作 239

10.1 AR场景操作 239

10.1.1 场景操作方法 239

10.1.2 场景操作实例 240

10.2 手势操作交互 242

10.2.1 手势检测 242

10.2.2 手势操作控制 244

10.3 XR Interaction Toolkit 247

10.3.1 对象放置 248

10.3.2 对象选择 252

10.3.3 对象操作 254

第11章三维文字与音视频 256

11.1 三维文字 256

11.1.1 文字单位换算 256

11.1.2 中文字体制作 257

11.2 三维声频 258

11.2.1 三维声场原理 259

11.2.2 RA声频使用 260

11.2.3 RA组件 260

11.2.4 使用 RA声频 262

11.2.5 声频效果设置 266

11.2.6 RA声频 API 268

11.2.7 运行时启用和禁用三维音效 268

11.2.8 使用回响营造空间感 269

11.2.9 三维音效设计原则 272

11.3 三维视频 273

11.3.1 VideoPlayer组件 274

11.3.2 三维视频播放实现 277

11.3.3 视频音效空间化 280

第12章 glTF与 Model Viewer 281

12.1 glTF概述 281

12.2 Model Viewer 284

12.2.1 Model Viewer使用实例 285

12.2.2 Model Viewer详解 288

12.2.3 使用 Model Viewer的注意事项 294

高 级 篇

第13章 Android与 Unity交互通信 299

13.1 Android与 Unity通信原理 299

13.2 Unity直接调用 Java代码 302

13.3 模块调用 312

13.4 继承 UnityPlayerActivity类 317

13.5 AndroidJavaProxy类详细讲解 320

13.6 订阅 Android广播 323

13.7 调用 so库文件 328

13.8 Android与 Unity交互注意事项 330

第14章设计原则 334

14.1 移动 AR带来的挑战 334

14.1.1 三维化思维 334

14.1.2 用户必须移动 335

14.1.3 要求手持设备 335

14.1.4 近脸使用 336

14.1.5 操作手势 336

14.1.6 启动应用 337

14.1.7 色彩运用 337

14.2 移动 AR设计准则 337

14.2.1 有用或有趣 338

14.2.2 虚实融合必须有意义 338

14.2.3 移动限制 338

14.2.4 心理预期与维度转换 338

14.2.5 环境影响 339

14.2.6 视觉效果 340

14.2.7 UI设计 340

14.2.8 沉浸式交互 340

14.3 移动 AR设计指南 341

14.3.1 环境 342

14.3.2 用户细节 343

14.3.3 虚拟内容 346

14.3.4 交互 352

14.3.5 视觉设计 357

14.3.6 真实感 362

14.3.7 三维音效 367

第15章性能优化 369

15.1 性能优化基础 369

15.1.1 影响性能的主要因素 369

15.1.2 AR应用常用调试方法 371

15.1.3 AR应用性能优化的一般原则 372

15.2 AR应用性能调试工具 373

15.2.1 ARCore性能调试功能 373

15.2.2 Unity分析器 375

15.2.3 帧调试器 379

15.2.4 UPR分析器 380

15.3 Unity分析器使用 382

15.3.1 CPU使用情况分析器 382

15.3.2 渲染情况分析器 383

15.3.3 内存使用情况分析器 383

15.3.4 物理分析器 384

15.3.5 音视频分析器 385

15.4 性能优化流程 385

15.4.1 收集运行数据 387

15.4.2 分析运行数据 388

15.4.3 确定问题原因 390

15.5 渲染优化 392

15.5.1 渲染流程 392

15.5.2 CPU瓶颈 393

15.5.3 GPU瓶颈 396

15.6 代码优化 398

15.6.1 内存管理 398

15.6.2 垃圾回收 399

15.6.3 对象池 404

15.6.4 常见影响性能的代码优化策略 405

15.7 ARCore优化设置 407

15.7.1 UI/UX优化 407

15.7.2 常用优化设置 407

15.7.3 AR应用开发的一般注意事项 408

参考文献 410



内容摘要
     第 3章 ARCore功能特性与开发基础 ARCore是一个高级 AR应用开发引擎,高内聚、易使用,特别是集成到 AR Foundation框架后,提供了简洁统一的使用界面,这使利用其开发 AR应用变得非常高效。 ARCore运动跟踪稳定性好,并且支持多传感器融合(如深度传感器、双目相机),性能消耗低,有利于营造沉浸性更好的 AR体验。本章主要阐述 ARCore本身的技术能力和与 ARCore扩展包相关的知识。 3.1 ARCore概述及主要功能 2017年 6月,苹果公司发布了 ARKit SDK,它能够帮助用户在移动端快速实现 AR功能。 ARKit的发布推动了 AR概念的普及,但 ARKit只能用于苹果公司自家的移动终端,无法应用到 Android平台。 2017年 8月,谷歌公司正式发布对标 ARKit SDK的 ARCorea,将 AR能力带入 Android平台, ARCore也是一套用来创建 AR的 SDK,利用该工具包可以为现有及将来的 Android手机提供 AR功能,它通过采集环境信息及传感器数据使手机 /平板具备感知环境、了解现实世界、支持虚实交互的能力, ARCore还为 Android和 iOS平台同时提供了 API,支持 AR体验共享。 ARCore主要做两件工作,即跟踪用户设备姿态和构建对现实环境的理解。 ARCore利用 SLAM技术进行运动跟踪并构建环境三维结构信息,除此之外, ARCore还支持检测平坦的表面(如桌面或地面)、估计周围环境的光照信息。借助 ARCore对现实世界的理解,我们能够以一种与现实世界无缝融合的方式添加虚拟物体、注释或其他信息,例如可以将一只打盹的小猫放在咖啡桌的一角,或者利用艺术家的生平信息为一幅画添加注释。 虽然 ARCore出现时间比 ARKit晚,但事实上 ARCore项目开展比 ARKit早,在 2014年,谷歌公司展示了其 Tango项目成果, Tango是谷歌公司基于 FlyBy公司 VIO技术发展起来的 AR技术,技术比 ARCore更复杂,融合了更多传感器,需要额外的硬件辅助实现增强现实,过高的门槛使消费者甚至开发者难以触及,这导致 Tango技术并未能大规模推广。苹 aARCore后来被更名为 Google Play Services for AR,本书遵循原名,仍使用 ARCore进行描述。 果公司的 ARKit SDK发布后,由于其基于现有移动终端硬件平台,不需要额外硬件支持,大大降低了 AR使用者的门槛,取得了良好的市场反响。为抢占技术高点,谷歌公司也迅速在 Tango的基础上推出了 ARCore,并提供了 Android、iOS、Unity、Unreal、Java多个开发平台的 API。 ARCore是在移动手机广泛普及的情况下,谷歌公司适应时代潮流推出的 AR开发工具,但其可以追溯到 Tango这个已经研究很长时间的 AR技术项目,事实上 ARKit也基于 FlyBy公司的技术,因此,ARKit和 ARCore技术同源且具有基本相似的功能。 ARCore 通过 3个主要功能融合虚拟内容与现实场景,即运动跟踪、环境理解、光照估计。这 3个功能是 ARCore实现各项 AR功能的基础,也是 ARCore技术框架中最重要的支柱。 3.1.1运动跟踪 在三维空间中跟踪设备运动并最终定位其位姿是任何 AR应用的基础, ARCore通过 SLAM算法采集来自设备摄像头的图像数据和来自运动传感器的运动数据,综合分析并估测设备随着时间推移而相对于周围世界的姿态变化,如图 3-1所示。通过将渲染三维内容的虚拟相机姿态与 SLAM算法计算出的设备摄像头姿态对齐,就能够从正确的透视角度渲染虚拟内容,将渲染的虚拟内容叠加到从设备摄像头获取的图像上,从而实现虚实场景的几何一致性,使虚拟内容看起来就像真实世界的一部分。 图 3-1ARCore运动跟踪示意图 3.1.2环境理解 ARCore通过检测环境特征点和平面来不断改进它对现实世界环境的理解,通过检查位于常见水平或垂直表面(如桌子或墙壁)上的成簇特征点构建平面,并确定平面的边界,利用这些数据信息就可以将虚拟物体放置于平坦的真实环境表面上,实现虚拟物体和真实环境无缝融合,营造虚实一致的体验,如图 3-2所示。 图 3-2 ARCore通过检测特征点和平面来改进对环境的理解 3.1.3光照估计 ARCore可以检测设备所在空间环境光的相关信息,估计光照强度和色彩,利用这些光照信息,可以使用与真实环境光相同的光照信息渲染虚拟物体,使虚拟物体和周边真实物体光照效果保持一致,提升虚拟物体的真实感,如图 3-3所示,处于强光中的虚拟猫模型和处于阴影中的虚拟猫模型光照效果保持了与真实场景中光照的一致性。 ARCore还可以估计光源的位置和方向,从而支持虚拟物体生成与真实光照一致的阴影,进一步提升虚拟物体的真实感。 图 3-3 ARCore光照估计效果示意图 3.1.4ARCore的不足 1. 运动跟踪失效 ARCore SDK提供了稳定的运动跟踪功能,也提供了高精度的环境感知功能,但受限于 视觉 SLAM技术的技术水平和能力,ARCore的运动跟踪在以下情况时会失效。 1)在运动中进行运动跟踪 如果用户在火车或者电梯中使用 ARCore,这时 IMU传感器获取的数据不仅包括用户的移动数据

精彩内容

本书基于AR Foundation框架,采用URP渲染管线,讲述利用ARCore进行Android平台的AR应用开发,从AR技术概念、原理、理论脉络到各功能技术点、Android与Unity交互通信、设计原则、性能优化,对ARCore应用开发中涉及的技术进行了全方位的讲述,用语通俗易懂,阐述深入浅出。

本书共分三个部分:第一部分为基础篇,包括第1章至第3章,从最基础的增强现实概念入手,通过一个实例阐述了AR开发从软硬件准备、开发环境搭建、工程设置、发布部署全流程,探讨了AR Foundation框架的技术基础、常用组件,并着重探索了ARCore功能特性和运动跟踪原理;第二部分为功能技术篇,包括第4章至第12章,对ARCore功能特性各方面进行了详细探索讨论,从平面检测、图像检测、人脸检测到云锚点、光影特效等,全方位的进行了技术剖析、讲解、演示。并对AR场景管理、图像信息处理、3D文字声频视频等实用功能进行了阐述和使用操作讲解;第三部分为高级篇,包括第13章至第15章,主要阐述了Android与Unity交互通信、AR应用设计、性能优化相关主题,着力提升开发人员在AR应用开发时的实际应用能力和整体把握能力。

本书结构清晰、循序渐进、深浅兼顾,实例丰富,每个技术点都有案例,特别注重对技术原理和实际运用的讲述,力图解决读者在项目开发中面临的难点问题。

本书适合AR初学者、Unity开发人员、程序员、科研人员,也可以作为高校、大专院校相关专业师生的学习用书,以及培训学校的培训教材。



   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP