AR开发实战:利用ARkit+Unity 3D开发Pokemon GO
  • 推荐0
  • 收藏1
  • 浏览1.8K

AR开发实战:利用ARkit+Unity 3D开发Pokemon GO

员凯 (作者) 

  • 书  号:978-7-121-33470-2
  • 出版日期:2018-01-01
  • 页  数:300
  • 开  本:16(185*260)
  • 出版状态:图书立项
  • 维护人:田志远
电子书 ¥49.00
即将上市销售
纸质版 ¥79.00
本书主要介绍ARKit的原生API,分别从世界跟踪、场景理解、几何渲染、人脸跟踪4个方面详细叙述ARKit的功能,以及在Unity中接入ARKit的方法。并且在开始部分添加了使用ARKit所必需的一些基础知识,为了减少接受难度,本书只会叙述用到的知识点。本书的最后一部分介绍了EasyAR和Vuforia这两款AR SDK的功能和使用方法。
本书适合对ARKit感兴趣的iOS开发者,以及其他想要了解ARKit原生API的读者阅读。
帮助小白从零开始掌握AR开发的“利器”。完全依据ARKit官方文档;梳理AR的发展历史;细致讲述ARKit的原生API;从世界跟踪、场景理解、几何渲染、人脸跟踪4个方面详细叙述ARKit的功能;并特别讲解如何在Unity中接入ARKit
1966年,计算机图形学之父伊凡·苏泽兰开始研制一套叫作“达摩克利斯之剑”(The Sword of Damocles)的系统。自此,第一个VR设备系统诞生。
1990年,波音公司的研究者Thomas Caudell首次提出了AR一词。
2017年,苹果公司在2017 WWDC开发者大会上发布了自家首个AR SDK——ARKit。随后,Google也发布了一款AR SDK——ARCore。
感谢这些让世界变得更美好的人。
本书包含什么内容
现在市面上讲述与AR相关的开发基本以Unity、Unreal Engine调用第三方SDK为主,对于移动端原生开发的介绍极为罕见,如Apple的ARKit,几乎没有一本书籍来详细讲述它的相关知识。网上关于ARKit的介绍大部分以教程为主,并没有详细讲述它的内容及ARKit背后所包含的知识,这就导致大部分开发者看的时候觉得很新奇,使用的时候却很困惑,总有一知半解的感觉。而本书详细讲述了ARKit各方面的内容,并且增加了使用ARKit所必需的一些基础知识,有利于读者理解ARKit的内容。
本书分四大部分进行介绍。
第一部分:基础知识,包括图形学、数学、增强现实三个方面的内容,但只会讲述用到的内容,所以阅读起来会轻松一些。
第二部分:ARKit内容,分别从世界跟踪、场景理解、几何渲染、人脸跟踪4个方面来叙述,最后给出了应用实例。
第三部分:ARKit在Unity中的应用,讲述了在Unity中如何接入并使用ARKit的各项功能。
第四部分:其他SDK的使用,介绍了EasyAR和Vuforia两个AR SDK具有的功能及使用方法。
本书为谁而写
书中涵盖了ARKit几乎所有的内容,但在叙述时并没有引入太多的专业术语,而是以通俗易懂的语言讲解,因而显得不那么“严谨”。在叙述API时,使用了Objective-C语言来编写代码,而没有使用Swift语言,以便尽可能照顾到大部分开发者。所以,对于iOS开发者而言,本书具有很大的参考价值。当然,对于其他想学习AR开发或者想了解ARKit原生API的开发者来说,本书也值得阅读。
和其他书有所不同的是,在阅读本书时,书中包含的四大部分都可以独立阅读,不分先后顺序,但是在阅读某一部分内容时,建议按照既有的顺序进行阅读,因为每一部分内容都是以循序渐进的形式来叙述的。
支持
在编写本书之前,作者对AR也是零基础,但出于对AR有着很大的兴趣,就开始一步步学习,本书的内容才得以慢慢形成。在这其中,虽然花费了大量的时间来参考相关的书籍和资料,但受限于自身水平和时间因素,错误在所难免。读者在阅读过程中发现有任何错误信息,可以发至作者个人网站(http://www.nethanhan.com)。我们将竭力解决所有提出的问题,并向您表达谢意。
当然,作者也会持续修改书中可能出现的错误信息,并在个人网站中登出。书中包含的所有源码及例子都会放置在作者的GitHub(https://github.com/hanhan)上,如有需要,可以随时下载。如果在阅读过程中有任何问题,则可以通过作者的个人邮箱(nethanhan@163.com)取得联系。
致谢
本书附带的实例中的所有图片资源均来自赵静,她是一位优秀的UI设计师,同时也是我最好的朋友,在此向她致以最诚挚的谢意!也要感谢我身边的小伙伴,正是有了他们的陪伴,才有了本书的持续输出。还要感谢电子工业出版社的田志远编辑,感谢他在本书编写过程中不断给予我支持和鼓励,而且还提出了很多建议。
当然,最重要的是,感谢那些为AR/VR行业做出巨大贡献的人,正是他们的不断努力,才使这个世界变得更加美好。

目录

第一部分 基础知识
第1章 绘制图形 2
1.1 代码编写 2
1.2 CPU与GPU交互 4
1.3 状态准备 5
1.4 坐标转换 5
1.5 像素计算 6
1.6 硬件显示 6

第2章 图形学基础 8
2.1 笛卡儿坐标系 8
2.2 坐标空间 11
2.3 坐标系转换 12
2.4 硬件设备 13

第3章 数学基础 16
3.1 向量 16
3.2 矩阵 20
3.2.1 矩阵的定义 20
3.2.2 基本运算 21
3.2.3 运算律 24
3.2.4 矩阵的类型 27

第4章 增强现实基础 31
4.1 概念 31
4.2 结构组成 33
4.2.1 系统结构 33
4.2.2 关键要点 33
4.2.3 SLAM 34
4.3 发展历史 36
4.4 发展现状 39
4.4.1 AR硬件 39
4.4.2 AR软件 42

第二部分 ARKit内容
第5章 ARKit简介 47
5.1 ARKit概述 47
5.2 ARKit结构 49
5.3 ARKit使用 50

第6章 第一个AR应用 52
6.1 SceneKit 52
6.2 SpriteKit 56
6.3 Metal 60

第7章 世界跟踪 65
7.1 跟踪概述 65
7.2 模块结构 66
7.3 运行跟踪 67
7.4 ARConfiguration类 69
7.4.1 两者区别 71
7.4.2 使用示例 73
7.4.3 属性说明 74
7.5 ARSession类 75
7.5.1 持有的硬件 75
7.5.2 持有的数据 77
7.5.3 具备的能力 79
7.5.4 生命周期 80
7.5.5 处理输出 82
7.5.6 跟踪状态 84
7.5.7 中断和出错 86
7.6 ARFrame类 88
7.6.1 包含的内容 89
7.6.2 获取方式 90
7.6.3 属性和方法说明 91
7.7 ARAnchor类 93
7.8 ARCamera类 93
7.9 实例演示 98
7.9.1 新建项目 98
7.9.2 开始编码 99
7.9.3 运行效果 105
7.9.4 出错原因 106

第8章 场景理解 108
8.1 平面检测 108
8.2 ARPointCloud类 109
8.3 ARPlaneAnchor类 110
8.4 hit-test 111
8.4.1 概述 111
8.4.2 功能使用 114
8.4.3 ARHitTestResult类 114
8.5 ARLightEstimate类 116
8.6 实例 116
8.6.1 实例一 117
8.6.2 实例二 125

第9章 几何渲染 130
9.1 SceneKit 130
9.1.1 SceneKit概述 130
9.1.2 ARSCNView 133
9.1.3 ARSCNViewDelegate 135
9.2 SpriteKit 136
9.2.1 SpriteKit概述 136
9.2.2 ARSKView 137
9.2.3 ARSKViewDelegate 138
9.3 实例 139
9.3.1 实例一 139
9.3.2 实例二 150

第10章 人脸跟踪 155
10.1 概述 155
10.2 模块使用 156
10.3 各类说明 160

第11章 游戏 165
11.1 数字排列 165
11.1.1 新建项目 166
11.1.2 添加视图 166
11.1.3 添加数字 168
11.1.4 点击数字 169
11.1.5 调用加载 171
11.1.6 状态处理 172
11.1.7 运行效果 174
11.2 元素操作 175
11.2.1 新建项目 175
11.2.2 添加视图 175
11.2.3 添加手势 177
11.2.4 调用加载 182
11.2.5 添加平面 183
11.2.6 运行效果 185
11.3 捕捉萌宠 187
11.3.1 新建项目 187
11.3.2 添加元素 187
11.3.3 添加音效 191
11.3.4 添加模型 191
11.3.5 碰撞逻辑 194
11.3.6 粒子效果 195
11.3.7 调用加载 195
11.3.8 提示信息 196
11.3.9 运行效果 198

第三部分 ARKit在Unity中的应用
第12章 Unity环境 203
12.1 准备环境 203
12.2 环境说明 204
12.3 Hello Unity 207

第13章 使用ARKit 209
13.1 接入插件 209
13.2 远程调试 210
13.3 结构说明 214
13.4 使用操作 215

第14章 实例演示 218
14.1 管理跟踪 218
14.2 小游戏 223

第四部分 其他SDK的使用
第15章 EasyAR SDK 230
15.1 开发环境准备 230
15.2 EasyAR Basic功能 232
15.2.1 图片检测 232
15.2.2 播放视频 240
15.2.3 跟踪多个目标 245
15.2.4 二维码检测 248
15.2.5 云识别 252
15.3 EasyAR Pro功能 257
15.3.1 识别3D物体 258
15.3.2 录屏 263
15.3.3 SLAM 267

第16章 Vuforia SDK 272
16.1 开发环境准备 272
16.2 Image Targets 276
16.3 Cylinder Targets 278
16.4 Multi Targets 280
16.5 User Defined Targets 281
16.6 Cloud Recognition 282
16.7 Virtual Buttons 283
16.8 Text Recognition 284
16.9 VuMark 285
16.10 Object Recognition 285

读者评论

电子书版本

  • Epub

图书类别

相关图书

扣人心弦:游戏叙事技巧与实践

Evan Skolnick (作者) 李天颀 李享 (译者)

作者凭借多年一线游戏叙事开发经验,以及多年在GDC(Game Developers Conference,游戏开发者大会)上召开专题研讨会的经验,总结了一套完整...

¥79.00

创造高清3D虚拟世界:Unity引擎HDRP高清渲染管线实战

杨栋 (作者)

全书共11章,不仅包含HDRP入门基础,更通过剖析优秀案例对高清渲染管线的主体框架和各种特性进行阐述,如完全基于物理的光照和材质系统、体积光与雾效设置、光照烘焙...

¥198.00

基于物理的建模与动画

(US)Donald H. House, (US)John C. Keyser (作者) 叶劲峰 (译者)

本书基于原作者开设的一门关于物理建模的课程编写而成,概括地介绍了这一领域的知识,包括对粒子、粒子系统、刚体、约束系统、铰接体、流体等的模拟,还深入介绍了相关的数...

¥109.00

平衡掌控者——游戏数值经济设计

李磊 (作者)

本书由真正从事游戏行业工作的一线人员所著,书中的全部案例来自真实的游戏设计案例。全书一共分为7章,第1章介绍数值策划在职场中的发展路线,第2章介绍Excel在数...

¥55.30

我的世界:Minecraft模组开发指南

土球球 (作者)

《我的世界》(Minecraft)是一款风靡全世界的沙盒游戏,是目前 PC 游戏中畅销的游戏之一。作为一款拥有很大自由度的游戏,在社区中也存在一些基于 Mine...

¥48.30

游戏设计、原型与开发:基于Unity与C#从构思到实现(第2版)

Jeremy Gibson (作者) 姚待艳 刘思嘉 张一淼 (译者)

这是一本将游戏设计理论、原型开发方法以及编程技术巧妙结合在一起的书,目的是填补游戏设计与编程开发之间的缺口,将两者联系起来。随着Unity 游戏开发技术日趋成熟...

¥188.00