計算機視覺增強現實應用程序開發
內容描述
本書的內容主要包括Unity3D編程基礎,Unity核心組件介紹,常用插件和第三方SDK的使用簡介及相關的演示項目,項目都有詳細的代碼和功能介紹,均循序漸進地講解需要使用的工具的基本原理和使用方法,可以讓開發者在短的時間內瞭解相關領域的開發技巧。
目錄大綱
前言
第1章Unity 3D AR应用开发基础1
1.1 Unity 3D引擎简介1
1.1.1Unity 3D的下载与安装1
1.1.2Unity 3D操作界面简介6
1.1.3Unity 3D的基础组件与操作7
1.1.4Unity 3D的资源商店14
1.2Unity 3D编程基础14
1.2.1C#编程基础14
1.2.2C#面向对象编程基础24
1.2.3C#面向对象编程进阶26
1.2.4Unity 3D中的C#脚本30
1.3Unity 3D编程进阶32
1.3.1Unity 3D的设计模式32
1.3.2MonoBehavior的生命周期33
1.3.3控制GameObject的位置37
1.3.4控制GameObject的生成和销毁40
1.3.5处理Unity 3D中的物体碰撞43
1.3.6UI组件的使用45
1.4AR中常用的Unity 3D插件49
1.4.1视频播放插件:Easy Movie Texture50
1.4.2动画控制插件:iTween53
1.4.3手势控制插件:Easy Touch57
第2章使用Vuforia开发AR应用60
2.1Vuforia SDK简介60
2.1.1Vuforia SDK的下载与安装60
2.1.2创建App License Key62
2.1.3在SDK中输入App License Key63
2.2使用Vuforia SDK进行物体识别64
2.2.1图片识别64
2.2.2长方体识别70
2.2.3圆柱体识别73
2.2.4物体识别76
2.3使用Vuforia SDK制作AR视频80
2.3.1上传识别图80
2.3.2创建识别视频播放GameObject80
2.3.3创建识别图目标83
2.3.4编译运行程序85
2.4制作AR对战游戏87
2.4.1制作识别图87
2.4.2创建子弹87
2.4.3 创建玩家角色90
2.4.4创建敌人102
2.4.5将玩家和角色设定为Image Target104
第3章AR应用中的拓展功能实现110
3.1在Unity 3D中实现网络通信110
3.1.1计算机网络简介110
3.1.2搭建一个HTTP服务器111
3.1.3使用WWW从HTTP服务器获取图片112
3.2在Unity 3D中获取天气信息115
3.2.1通过网络API获取天气数据115
3.2.2使用GZipStream解压缩字符数组116
3.2.3在Unity中反序列化JSON数据117
3.3在Unity 3D中获取GPS信息119
3.3.1LocationService类119
3.3.2构建场景和UI处理逻辑119
3.3.3获取GPS数据120
3.3.4通过地理位置获取城市123
3.4在Unity中实现二维码的生成与识别126
3.4.1QR CodeBarcode Scanner and Generator简介126
3.4.2搭建工程场景127
3.4.2扫描二维码128
3.4.3生成二维码130
3.5在Unity 3D中实现动态资源加载132
3.5.1AssetBundle简介132
3.5.2如何创建AssetBundle132
3.5.3如何加载AssetBundle 134
3.5.4AssetBundle之间的依赖关系135
3.6在Unity 3D中实现热更新141
3.6.1热更新方案比较141
3.6.2XLua简介142
3.6.3如何使用XLua更新142
第4章使用OpenCV开发图像识别应用145
4.1OpenCV图像识别简介145
4.1.1OpenCV图像识别技术应用领域145
4.1.2OpenCV技术模块简介145
4.1.3OpenCV For Unity插件介绍147
4.2配置基础开发环境148
4.2.1开发环境要求148
4.2.2导入OpenCV For Unity插件包148
4.2.3配置OpenCV For Unity插件149
4.2.4运行OpenCV For Unity示例工程149
4.3面部识别152
4.3.1FaceTrackerSample扩展插件简介152
4.3.2场景搭建152
4.3.3编写面部识别脚本155
第5章使用ARToolkit进行AR开发160
5.1ARToolKit简介160
5.1.1ARToolKit是什么160
5.1.2ARToolKit特性简介161
5.1.3ARToolKit插件包导入161
5.1.4ARToolKit中的目录简介163
5.2搭建一个简单的AR场景163
5.2.1创建并设置AR Controller163
5.2.2创建并设置ARMarker165
5.2.3创建并设置AR Origin和AR Tracked Object165
5.2.4创建并设置ARCamera166
5.2.5运行场景168
5.3ARToolKit中的识别图简介168
5.3.1传统模板正方形识别图168
5.3.22D-Barcode识别图173
5.3.3多重识别图175
5.3.4特征点识别图177
5.4ARToolKit的进阶内容178
5.4.1AR Controller的运行机制178
5.4.2ARToolKit中性能问题的调查178
5.4.3ARToolKit的使用限制179
5.5跨平台开发的注意事项180
5.5.1插件已知问题180
5.5.2Android180
5.5.3iOS182
第6章Kinect应用开发183
6.1Kinect简介183
6.1.1Kinect是什么183
6.1.2Kinect功能特性简介183
6.2搭建Kinect的Unity 3D开发环境184
6.2.1硬件需求184
6.2.2安装DirectX185
6.2.3安装Kinect SDK186
6.2.4安装Kinect Unity插件188
6.3使用Kinect制作体感游戏190
6.3.1创建Kinect Manager190
6.3.2导入人物3D模型并创建Avatar190
6.3.3创建人物192
6.3.4创建敌人194
6.3.5为人物添加攻击处理197
6.3.6添加UI显示199
第7章HoloLens202
7.1HoloLens简介202
7.1.1Hologram简介204
7.1.2HoloLens硬件细节205
7.1.3HoloLens shell207
7.1.4使用MRC209
7.1.5HoloLens配件使用210
7.2HoloLens使用与开发环境配置210
7.2.1使用Windows Device Portal210
7.2.2安装HoloLens开发工具213
7.2.3HoloLens模拟器的使用213
7.3使用Unity开发HoloLens全息应用215
7.3.1配置适用于HoloLens开发的Unity工程215
7.3.2摄像机(Camera)设置219
7.3.3凝视(Gaze)功能实现220
7.3.4手势(Gesture)功能实现222
7.3.5语音输入(Voice input)功能实现225
7.3.6世界锚(World Anchor)与场景保持(Persistence)功能实现229
7.3.7空间音效(Spatial Sound)功能实现234
7.3.8空间映射(Spatial Mapping)功能实现235