描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111608851
您是否是想要成为利用Google ARCore平台来创建沉浸式酷炫增强现实应用程序的移动端开发人员或Web开发人员?如果是,那么本书将帮助您直接进入ARCore的开发,并轻松且详细地创建一个AR应用程序。
本书主要介绍了如何实现ARCore的核心功能,从3D渲染的基本原理到更先进的概念,如光线照明、着色器、机器学习等。
首先将从在3种平台(Web、Android和Unity)上构建一个基本项目开始。接下来,介绍运动跟踪、环境认知和光线估计的ARCore概念。对于每一个核心概念,都将通过学习一个实际项目来应用和扩展ARCore特性,从学习三维渲染和光线的基础知识到探索更先进的概念。
读者可以编写自定义的着色器来照射AR中的虚拟对象,然后构建一个神经网络来识别环境,并利用ARCore在混合现实中实现更庞大的应用程序。在本书的后,还将学习如何实现运动跟踪和环境学习,创建动画和声音,生成虚拟人物,并在屏幕上模拟。
本书主要内容
•在Android、Web和Unity平台上构建和部署增强现实应用程序;
•实现用ARCore来识别和可视化对象,如点云、平面、表面和/或网格;
•利用Google ARCore和Java语言开发的OpenGL ES探索环境理解的先进概念;
•在ARCore中建立光线等级,并编写C#脚本来观测和传播场景中的光线变化;
•开发反映光线变化的图形着色器并绘制环境以实现在Unity/C#平台中放置对象;
•集成运动跟踪和Web ARCore API以及Google街景来实现一种AR/VR综合体验。
本书适合想要深入学习利用ARCore构建AR应用程序但在游戏或图形编程方面没有任何背景知识的开发人员阅读,另外,适合人工智能领域涉及人机交互、深度学习、AR、VR(虚拟现实)、MR的相关读者阅读。
原书前言
第1章 入门 // 1
1.1 沉浸式计算 //1
1.2 AR和 ARCore //2
1.2.1 运动跟踪 // 3
1.2.2 环境理解 // 4
1.2.3 光线估计 // 4
1.3 组织结构与安排 //5
1.4 小结 //6
第 2章 Android平台上的 ARCore //7
2.1 安装 Android Studio //7
2.2 安装 ARCore //9
2.2.1 在设备上安装 ARCore服务 // 10
2.3 构建和部署 //11
2.4 代码分析 //12
2.5 小结 //14
第 3章 Unity平台上的 ARCore //15
3.1 安装 Unity平台和 ARCore //15
3.2 在 Android平台上构建和部署 //18
3.3 远程调试 //19
3.3.1 连接测试 // 20
3.3.2 远程调试一个正在运行的应用程序 // 21
3.4 代码分析 //22
3.4.1 Unity平台更新方法 // 23
3.5 小结 //24
第 4章 Web平台上的 ARCore //25
4.1 安装 WebARonARCore //25
4.2 安装 Node.js //26
4.2.1 Node软件包管理器 // 26
4.3 示例分析 //28
4.4 调试 Android平台上的 Web平台应用程序 //29
4.4.1 连接 Chrome平台开发工具 // 29
4.4.2 通过 Chrome平台调试 // 30
4.5 三维和 three.js //31
4.5.1 理解左手或右手坐标系 // 33
4.5.2 三维缩放、旋转和平移 // 33
4.6 小结 //34
第 5章 真实世界中的运动跟踪 //35
5.1 深度运动跟踪 //35
5.2 三维声音 //38
5.3 共振音频 //39
5.4 基于 Firebase的跟踪服务 //42
5.4.1 设置数据库 // 43
5.4.2 连接测试次数 // 44
5.5 可视化运动跟踪 //45
5.6 练习 //47
5.7 小结 //48
第 6章 环境理解 //49
6.1 点云跟踪 //49
6.2 网格化与环境 //51
6.3 环境交互 //52
6.3.1 触摸手势检测 // 55
6.4 基于 OpenGL ES的绘制 //56
6.5 着色器编程 //58
6.5.1 着色器编辑 // 61
6.6 练习 //62
6.7 小结 //63
第 7章 光线估计 //64
7.1 三维渲染 //64
7.1.1 构建一个测试场景 // 65
7.1.2 材质、着色器和纹理 // 67
7.2 三维光线 //69
7.3 光线估计 //71
7.4 Cg/HLSL着色器 //73
7.5 光线方向估计 //76
7.5.1 环境光线更新 // 79
7.6 练习 //79
7.7 小结 //80
第 8章 环境认知 //81
8.1 机器学习简介 //81
8.1.1 线性回归原理 // 83
8.2 深度学习 //85
8.2.1 神经网络 -深度学习基础 // 86
8.3 神经网络编程实现 //87
8.3.1 神经网络脚本编程 // 88
8.4 神经网络训练 //94
8.4.1 激活警告 // 95
8.4.2 添加环境扫描器 // 98
8.4.3 反向传播原理 // 99
8.4.4 梯度下降原理 // 101
8.4.5 网络架构定义 // 103
8.4.6 环境的网络视角 // 105
8.4.7 练习 // 106
8.5 TensorFlow //107
8.6 小结 //108
第 9章 建筑设计的混合光线 //110
9.1 工程设置 //110
9.1.1 场景构建 // 112
9.1.2 修改基本场景 // 113
9.2 环境和放置内容 //116
9.3 UI构建 //119
9.3.1 按钮脚本编程 // 122
9.4 虚拟交互 //124
9.4.1 构建对象轮廓 // 126
9.4.2 椅子定位 // 129
9.5 光线和阴影 //132
9.5.1 打开阴影 // 135
9.6 练习 //137
9.7 小结 //137
第 10章 混合现实中的混合 //138
10.1 MR和 HoloKit //139
10.1.1 设置 HoloKit // 140
10.1.2 HoloKit如何工作 // 142
10.2 WRLD简介 //144
10.3 设置 MR中的 WRLD //146
10.4 地图导航 //147
10.4.1 从 AR切换到 MR //149
10.4.2 构建 SceneSwitcher //150
10.4.3 创建 SceneSwitcher预制件 // 151
10.4.4 修改 Wrld Map脚本 // 153
10.5 地图构建、GIS和 GPS //155
10.5.1 生成 Splash场景 //159
10.5.2 修正高度问题 // 162
10.6 未来发展 //163
10.7 练习 //164
10.8 小结 //164
第 11章 性能提升技巧和故障排除 //166
11.1 性能诊断 //166
11.1.1 Chrome平台开发工具 // 166
11.1.2 Android平台分析工具 // 168
11.1.3 Unity平台分析工具 // 170
11.2 性能提升管理技巧 //172
11.3 常见故障排除 //174
11.3.1 故障排除代码 // 174
11.4 练习 //177
11.5 故障排除技巧 //177
11.6 小结 //178
本书面向读者
本书面向想要深入学习利用 ARCore构建 AR应用程序但在游戏或图形编程方面没有任何背景知识的开发人员。尽管本书假定读者只具有高中程度的基本数学基础,但读者应至少熟练掌握下列一种编程语言: JavaScript、Java或 C#。
本书涵盖的主要内容
第 1章 入门 介绍了当前 AR应用程序需要掌握的基本概念,从而为用户提供满意的体验。在此,将学习运动跟踪、环境理解和光线估计等基本概念。
第 2章 Android平台上的 ARCore 介绍了基于 Android Studio的 Android平台开发,其中展示了如何安装 Android Studio以及建立个 ARCore应用程序。
第 3章 Unity平台上的 ARCore 讨论了如何安装和构建一个 Unity平台下的 ARCore应用程序。另外,还介绍了如何利用 Android平台开发工具来远程调试一个应用程序。
第 4章 Web平台上的 ARCore 介绍基于 JavaScript的 Web平台开发,并着重讨论了如何利用 Node.js来建立简单的 Web服务器。然后,本章还分析了 ARCore的各种示例模板,并讨论了在进一步开发中如何扩展这些模板。
第 5章 真实世界中的运动跟踪 在本章对前面所学内容进行了扩展,并在一个 Web平台示例中添加了真实世界的运动跟踪。该示例不仅展示了 3D概念的基本工作原理,而且还表明了 ARCore是如何跟踪用户动作的。
第 6章 环境理解 本章返回到 Android平台,着重分析 ARCore是如何理解用户所处环境的。将学习掌握 ARCore如何识别环境中的平面或表面,并为实现用户交互和可视化将其网格化。在此,讨论了如何修改着色器以实现从用户视角来测量和着色这些点。
第 7章 光线估计 阐述了光线和阴影在用户购买 AR体验过程中的作用。学习了 ARCore如何实现光线估计,以及如何照亮用户放置在 AR世界中的虚拟模型。
第 8章 环境认知 在此介绍了机器学习的基础知识,并强调了技术对于 AR成功的重要性。然后,建立了一个简单的神经网络,利用反向传播技术实现了监督式学习。在学习了神经网络和深度学习的基础知识之后,分析了一个展示各种形式机器学习的更复杂的示例。
第 9章 建筑设计的混合光线 涵盖了允许用户将虚拟家具放置在起居室或任何需要位置的 AR设计应用程序的构建。另外,还介绍了如何通过触摸在 AR中放置和移动对象,以及如何确定对象何时被选中。然后,扩展了第 7章 光线估计 中的光线和阴影,对虚拟对象提供实时阴影。
第 10章 混合现实中的混合 在此通过廉价的 MR头戴式显示设备引入了混合现实。 ARCore非常适用于这些廉价的头戴式显示设备,因为已能够跟踪用户并监视其内部环境。另外,还将分析如何将应用程序从传统的在 Unity平台下使用 3D WRLD API的地图绘制程序转换为 AR地图绘制程序,在此还提供了一种切换到 MR和 MR头戴式显示设备的功能。
第 11章 性能提升技巧和故障排除 这里介绍了在所有开发平台上检测应用程序性能的技术,然后讨论了性能的重要性及其对各种系统的影响。之后,介绍了一般调试和故障排除技巧,在此以一个涵盖了用户在本书中可能遇到的常见错误的列表来结束本书内容。
充分利用本书
为充分利用本书,以下是需要重点关注的内容:
. 读者需要精通下列一种编程语言: JavaScript、Java或 C#。
. 熟悉高中数学知识。
. 支持 ARCore的 Android平台设备。下面是检查列表的链接: https//developers.google. com/ar/discover/。
. 一台运行 Android Studio和 Unity平台的台式机,不需要专用的 3D显卡。
下载示例代码文件
可从 www.packtpub.com的账户下载本书的示例代码文件。如果是在他处购买的本书,可以访问 www.packtpub.com/support,注册后直接以文件形式发送给读者。
可以通过以下步骤下载代码文件:
1)在 www.packtpub.com上登录或注册。
2)选中
SUPPORT选项卡。
3)单击
Code Downloads & Errata。
4
)在搜索框输入图书名称,并按照提示进行操作。
文件下载完成后,请确保用以下版本进行解压缩:
. Windows系统下的 WinRAR/7-Zip。
. Mac系统下的 Zipeg/iZip/UnRarX。
. Linux系统下的 7-Zip/PeaZip。
本书的代码包还在 GitHub上托管,具体地址为 https://github.com/PacktPublishing/ Learn-ARCore-Fundamentals-of-Google-ARCore。一旦代码有更新,在现有的 GitHub代码库中也会相应更新。另外,还可以从 htttps://github.com/PacktPublishing/ 丰富的图书和视频目录中获得其他代码包。请注意查看!
下载彩色图片
本书还提供了一个包含本书中截图 /图表的彩色图片的 PDF文件。
译者序
增强现实( AR)技术是一种将真实世界信息和虚拟世界信息“无缝”集成的新技术,是将现实世界的一定时间、空间范围内很难体验到的实体信息 (视觉信息、声音、味道、触觉等 )与虚拟信息同时应用到真实世界,从而达到超越现实的感官体验。真实的环境和虚拟的物体实时地叠加到了同一个画面或空间同时存在。 AR技术,不仅展现了真实世界的信息 ,而且将虚拟的信息同时显示出来,两种信息相互补充、叠加。在 AR中,用户利用头戴式显示设备,把真实世界与计算机图形多重合成在一起,便可以看到真实的世界围绕着它。 AR技术包含了多媒体、三维建模、实时视频显示及控制、多传感器融合、实时跟踪及注册、场景融合等新技术与新手段。
本书着重介绍了 Google公司开发的 ARCore在不同开发平台(Android、Unity和 Web)下的应用开发。全书共分为 11章,首先介绍了 AR应用开发所需掌握的基本概念,其中包括运动跟踪、环境理解和光线估计等。随后分别从 Android、Unity和 Web开发平台上,介绍了 ARCore应用程序的构建和调试。然后着重分析了环境的理解、光线的应用和环境识别与学习。接下来,以建筑设计中虚拟家具的构建为例,详细介绍了如何在场景中放置和移动虚拟对象,并设置其阴影效果。另外,还介绍了混合现实( MR)的应用与开发,其中重点介绍了地图构建和 AR/MR的切换。后,介绍了应用程序性能的提升和常见故障的排除技巧。全书内容丰富,并提供了大量实际案例及详细分析。
本书作者具有丰富的实践经验,长期从事相关的应用开发和研究。全书主要由连晓峰翻译,贾涵、潘兵、叶璐、王炎、于健、曲东阳、蔡学鹏、于淼、郭卫平、王俊毅、张云、赵旭、刘鹏华、韩孝军等人参与部分内容的翻译和整理工作。由于译者的水平有限,书中不当或错误之处恳请业内专家学者和广大读者批评指正。
译 者
评论
还没有评论。