书籍简介:
书中首先介绍了虚拟现实发展概况和背景、虚拟现实系统硬件设备等虚拟现实入门知识,然后又介绍了C#基础、C#流程控制基础、C#面向对象、C#异常处理和简单案例等虚拟现实开发基础知识,最后通过三维虚拟样板间装修设计平台开发实例、沉浸式虚拟体验在《逃离废墟》中的应用开发实例、桌面级虚拟现实体验在汽车工业仿真中的应用等,深入讲解虚拟现实开发在不同领域的具体应用。
作者简介:
何伟,天津美院国际艺术教育学院讲师,北京工业大学软件学院特聘讲师,国家教育部教育管理信息中心ITAT教育工程IT专业资深讲师,87870虚拟现实网特聘行业专家,360蒲公英公开课主题演讲嘉宾,北京蓝数工坊数字科技有限公司创始人。
曾任职于各级电视台、影视广告公司和211高校等,先后完成数字CG项目数十项、数字可视化项目若干,以及博物馆、规划馆、展览展厅等整馆方案设计,如2010年上海世博会、2011年世纪园艺博览会等标杆性数字设计方案,2013年任《致命闪玩》院线电影影视后期及视觉特效项目总监。
从事CG制作和数字可视化领域多年,国内最早一批使用Virtools的技术人员。在虚拟现实、增强现实、可穿戴设备等人机交互领域有深入研究。在国内最早将Unreal Engine课程引入大学课堂,近几年,开始从事Unity以及Unreal Engine相关教学的职务,负责Unity和Unreal Engine课程大纲的建立与更新,组织Unity、Unreal Engine课程的编纂和修订。
主要讲授课程有:《运动捕捉技术基础与Motionbuilder软件应用》、《频道包装》、
《视听语言与视频制作》、《游戏引擎分析》、《游戏引擎应用课设》、《虚拟现实技术与应用》、《数字影视特效》、《数字造型》、《创意空间造型》、《C#编程基础》等。
2011年成立北京蓝数工坊数字科技有限公司,现阶段是一家提供虚拟内容制作和技术研发一站式解决方案的数字科技公司。蓝数工坊(BDS)公司专注于数字技术在前沿科技领域的应用和开发,坚持自主产品的研发与技术创新。研发的M立方(M)虚拟动态异形互动投影系统在国内属于领先技术,已被用于汽车发布会、舞台表现、晚会、博物馆等应用领域;公司开发中的B 虚拟运动馆系列产品,通过智能硬件传感技术,让运动器械和数字娱乐实现交互,在运动中娱乐,寻找到运动的乐趣,同时让家人共同参与,找寻在健康运动的同时回归家庭分享的快乐,相关产品即将面世。
出版时间:
2016年10月
章节目录:
第1章虚拟现实入门 1
1.1什么叫虚拟现实 2
1.1.1虚拟现实概念 2
1.1.2虚拟现实诞生的背景 3
1.1.3虚拟现实发展历史及大事件 5
1.2什么叫增强现实 9
1.3什么叫混合现实 10
1.4虚拟现实系统的三个基本特征 11
1.5虚拟现实系统的分类 11
1.6虚拟现实系统的组成 13
第2章虚拟现实系统的硬件设备 15
2.1虚拟现实输入设备 16
2.1.1三维空间跟踪器 16
2.1.2漫游和操纵设备 18
2.1.3手势接口 19
2.2虚拟现实输出设备 22
2.2.1图形显示设备 22
2.2.2三维声音显示设备 26
2.2.3触觉反馈设备 26
2.3虚拟现实硬件设备的几个问题 28
2.3.1虚拟现实设备的技术指标 28
2.3.2虚拟现实设备三大影响因素 29
2.3.3虚拟现实硬件设备未来发展 31
第3章虚拟现实开发工具综述 33
3.1虚拟现实开发软件及平台 34
3.1.1Virtools 34
3.1.2Quest 3D 35
3.1.3VR-Platform 36
3.1.4Unity 3D 36
3.1.5Unreal Engine 4 37
3.2语言类虚拟现实工具 38
3.2.1高级着色器利器:HLSL 38
3.2.2虚拟现实建模语言:VRML 38
3.2.3三维图像标记语言:X3D 38
3.3视觉类虚拟现实工具及应用 39
3.4触觉类虚拟现实工具 41
3.4.1Haptics 41
3.4.2Teslasuit 41
第4章虚拟现实项目的工作流程及注意事项 43
4.1虚拟现实项目的工作流程 44
4.1.1虚拟现实项目制作所需资料列表 45
4.1.2虚拟现实项目制作时间节点表 45
4.2模型制作规范 47
4.3材质贴图规范 48
4.4模型烘焙及导出 48
4.5文件备份标准 50
第5章虚拟现实的应用与展望 53
5.1VR应用领域综述 54
5.1.1VR军事应用 56
5.1.2VR医疗研究与应用 60
5.1.3VR艺术和娱乐领域应用 63
5.1.4VR虚拟旅游 69
5.1.5VR教育应用 73
5.2VR未来应用展望 74
第6章 C#基础介绍 77
6.1C#概述及其开发环境 78
6.1.1什么是C# 78
6.1.2C#与Unity的应用 79
6.1.3学习C#的准备工作 80
6.2变量 84
6.2.1什么是变量 84
6.2.2变量的数据类型 84
6.2.3变量的声明 90
6.2.4常量 90
6.3表达式与运算符 91
6.3.1表达式 91
6.3.2运算符 91
6.3.3运算符优先级 97
第7章C#流程控制基础 99
7.1语句顺序执行 100
7.1.1调试演示 100
7.1.2选择分支语句 101
7.1.3循环语句 105
7.2函数 108
7.2.1函数的由来 109
7.2.2定义函数 109
7.2.3函数的返回值与函数类型 110
7.2.4函数的调用 110
7.2.5函数的形参与实参 111
7.2.6Main()函数 11
7.2.7结构函数 114
7.2.8函数的重载 116
7.3字符串和数组 116
7.3.1字符串类string的使用 116
7.3.2可变字符串类StringBuilder的使用 119
7.3.3数组的定义 121
7.3.4数组类型 122
7.3.5数组的基本操作 125
7.3.6静态数组 126
7.3.7动态数组 128
第8章C#面向对象 133
8.1定义类 134
8.1.1类的定义 134
8.1.2构造函数和析构函数 137
8.1.3类的使用 140
8.1.4类的可访问性——访问修饰符 143
8.1.5嵌套类 145
8.2对象 147
8.2.1类和对象的关系 147
8.2.2对象定义 148
8.2.3对象的用法 14
8.3属性 152
8.3.1C#中的属性 153
8.3.2属性的组成 153
8.3.3属性的使用 157
8.4类的面向对象特性 159
8.4.1面向对象概述 159
8.4.2类的继承 159
8.4.3类的封装 162
8.4.4类的多态 163
8.5委托和事件 164
8.5.1什么是委托 164
8.5.2使用委托 165
8.5.3什么是事件 166
8.5.4事件的使用 166
第9章C#异常处理和简单案例 171
9.1异常处理 172
9.1.1异常处理概述 172
9.1.2异常处理语句 172
9.2Unity 3D简单案例 176
9.2.1Unity 3D 简介 176
9.2.2Unity 3D学习 177
9.2.3Unity 3D简单案例 177
第10章三维虚拟样板间装修设计平台开发实例 181
10.1概述 182
10.1.1 三维家装虚拟样板间装修设计的意义与价值182
10.1.2国内外虚拟样板间装修设计的发展 182
10.1.3 UGUI系统概述 188
10.2 虚拟样板间的策划及准备工作 192
10.2.1 虚拟样板间的交互设计 192
10.2.2 使用Unity开发前的准备工作 193
10.3在Unity中搭建场景 203
10.3.1导入模型、贴图及布置灯光 203
10.3.2创建UI布局 211
10.4设置摄像机 215
10.4.1设置自主摄像机 215
10.4.2设置自动游历摄像机 217
10.5 编写交互及UI功能脚本 219
10.5.1 更换地面及壁纸 219
10.5.2 创建新家具 227
10.5.3移动家具 229
10.5.4切换镜头及退出等UI控制 234
10.5.5家具交互开发 240
10.5.6样板间全景三维透视展示 243
10.6添加背景音乐 245
10.7发布程序 246
第11章沉浸式虚拟体验在《逃离废墟》中的应用开发实例 251
11.1概述 252
11.1.1VR沉浸式体验的意义与价值 252
11.1.2iTween插件 253
11.1.3 Oculus头戴式头盔 259
11.2 《逃离废墟》的策划及模型制作 262
11.2.1 《逃离废墟》项目开发背景与需求分析262
11.2.2《逃离废墟》的场景设计 264
11.2.3 使用Unity开发前的准备工作 265
11.3在Unity中搭建场景 273
11.4设置摄像机 276
11.4.1设计摄像机的游历路线 276
11.4.2设置自动游历摄像机 277
11.5添加背景音乐 281
11.6发布程序 281
第12章桌面级虚拟现实体验在汽车工业仿真中的应用 28712.1概述 288
12.1.1桌面虚拟现实系统的回顾 288
12.1.2桌面虚拟现实系统显示技术及其意义和价值289
12.1.3桌面虚拟现实系统的交互设备 289
12.1.4zSpace桌面级虚拟现实体验系统介绍 290
12.2项目策划 296
12.2.1项目开发背景 296
12.2.2项目需求分析 296
12.2.3项目UI设计 297
12.2.4交互功能设计 297
12.3项目插件及资源导入 298
12.3.1创建工程 298
12.3.2SDK和插件的下载与导入 299
12.3.3模型资源导入 300
12.4搭建场景 300
12.4.1开场场景搭建 300
12.4.2主场景模型和摄像机处理 303
12.4.3场景UI设计 304
12.5项目逻辑设计 305
12.5.1项目UI逻辑设计 305
12.5.2触控笔逻辑设计 314
12.5.3汽车逻辑设计 320
12.5.4场景管理类 326
12.5.5zView效果制作 330
12.6互动程序发布 337
第13章Unity与Arduino硬件传感器的VR赛车交互控制开发案例 341
13.1概述 342
13.1.1传感器的意义与价值 342
13.1.2Arduino单片机 343
13.2VR赛车项目开发的需求分析 343
13.3配置搭建虚拟现实赛车工程环境 347
13.3.1创建赛车模型和场景环境 347
13.3.2制作模型贴图 352
13.3.3调整Unity场景及赛车模型 355
13.3.4配置Oculus环境 359
13.3.5赛车仿真模拟系统与镜头控制 361
13.4Arduino环境搭建 371
13.4.1Arduino基本编码规则 372
13.4.2Arduino通信方式 373
13.4.3Arduino通信示例 373
13.5Unity与Arduino硬件传感器的VR赛车通信控制开发 374
13.5.1Arduino采集传感器数据 374
13.5.2Unity通信并解析摇杆数据 376
13.6发布程序 379
封面图: