图书目录

目录

第1章虚拟现实技术概论1

1.1虚拟现实技术的产生与发展1

1.2虚拟现实系统的特征2

1.3虚拟现实技术的应用2

1.4虚拟现实的基础技术3

1.4.1双目立体视觉3

1.4.23D建模技术4

1.4.3自然交互技术4

1.5虚拟现实技术的分类5

1.6虚拟现实技术的最新发展6

1.7虚拟现实技术的应用前景6

第2章基于图像的虚拟现实: 全景虚拟现实技术8

2.1基于全景的虚拟漫游8

2.1.1全景拍摄8

2.1.2全景相机及其拍摄技巧9

2.1.3全景漫游9

2.1.4全景漫游的应用领域10

2.2全景漫游制作11

2.2.1导入全景图片11

2.2.2设置初始场景与默认视图11

2.2.3制作Tour Map12

2.2.4用皮肤功能实现导览13

2.3基于云平台实现全景VR展示15

2.3.1全景漫游的发布与展示15

2.3.2物体全景展示18

第3章基于建模的VR还原展示21

3.1SketchUp建模基本步骤21

3.1.1准备工作21

3.1.2SketchUp建筑架构21

3.1.3SketchUp细节刻画23

3.2Lumion材质及渲染基本步骤24

3.2.1SketchUp模型导入Lumion24

3.2.2Lumion材质赋予24

3.2.3Lumion细节刻画25

3.2.4Lumion动画渲染及VR全景26

第4章移动增强现实展示技术28

4.1基于Web及移动端的AR创作平台28

4.1.1Blippar28

4.1.2Vuforia29

4.1.3Vuforia的使用流程29

4.2AR Foundation及其使用30

4.2.1开发框架搭建30

4.2.2AR Foundation的Image Tracking 图像跟踪31

4.2.3AR Foundation的距离控制32

4.2.4AR Foundation的平面检测与物体放置32

4.2.5AR Foundation的3D物体识别跟踪33

4.2.6AR Foundation的人脸检测跟踪36

4.2.7阴影效果制作37

4.3基于绘画的AR立体海报制作37

4.3.1绘画准备37

4.3.2软件调试37

4.3.3静态AR海报39

4.3.4动态AR海报43

4.4微信小程序AR开发 43

4.4.1微信官方XRFrame开发指南43

4.4.2Kivicube插件快速入门44

4.4.3开发建议45

第5章基于AI的三维内容创建及网络发布46

5.1AI在三维创作中的应用46

5.1.1基于Nerf的三维扫描46

5.1.2基于文本生成3D47

5.2相关应用介绍47

5.2.1Luma AI47

5.2.23Dpresso48

5.3视频+AI生成3D模型的拍摄方法48

5.3.1手机环绕拍摄48

5.3.2旋转台拍摄模式49

5.43D Gaussian Splatting使用51

5.4.1核心概念简介51

5.4.2主流软件工具教学52

5.4.3推荐工作流程53

5.4.4官方 GitHub 项目简介 54

5.4.5基于全景相机与3D高斯泼溅实现三维重建54

第6章Cardboard VR开发55

6.1Cardboard 纸盒55

6.1.1裸眼3D55

6.1.2Cardboard55

6.2Unity56

6.3Node.js57

6.4Blender58

6.5Cardboard 纸盒的组装和调试59

6.6Unity导入Cardboard的场景和基本配置60

6.6.1资源包的导入60

6.6.2配置Android项目64

6.7手柄键位与输入管理器68

6.8Unity和Node.js的通信尝试71

6.9Blender建模与导入76

6.9.1软件下载76

6.9.2软件使用76

6.9.3模型导入78

6.10构建多人参与的元宇宙场景81

6.11官方例程81

6.12多玩家场景内容设计83

6.13玩家角色的构建83

6.14通信接口与服务器端的编写84

6.15角色运动84

第7章VR科普读物制作 87

7.1制作准备87

7.1.1Unity安装87

7.1.2VS软件安装87

7.1.3资源准备88

7.2科普读物设计88

7.2.1科普读物概念设计88

7.2.2明确工程任务88

7.3图片墙场景搭建89

7.3.1图片墙搭建89

7.3.2图片墙旋转设置89

7.3.3VR搭建准备 91

7.3.4VR场景搭建93

7.3.5VR视野旋转94

7.3.6图片交互效果(1)95

7.3.7图片交互效果(2)97

7.3.8VR端UI交互99

7.4模型场景搭建100

7.4.1模型的检索100

7.4.2模型的展示101

7.4.3辅助功能实现102

7.7.4手柄输入检测103

7.5场景切换设置105

7.5.1场景切换105

7.5.2场景切换中的信息传递106

第8章FPS类VR游戏开发109

8.1Unreal Engine与Blueprint109

8.2角色蓝图的创建——Pawn110

8.2.1蓝图的类110

8.2.2角色蓝图的组件110

8.2.3枚举类型的准备111

8.2.4关于GrabComponent的修改112

8.2.5关于TryGrab的修改112

8.2.6关于TryRelease的修改115

8.2.7相机与手部动画初始化116

8.2.8手部动画蓝图118

8.2.9瞬移120

8.2.10摇杆移动125

8.3道具蓝图的创建——枪械127

8.3.1手枪类蓝图设计127

8.3.2步枪类蓝图设计129

8.3.3冲锋枪类蓝图设计130

8.4人工智能蓝图的创建131

8.4.1AI动画131

8.4.2AI蓝图134

8.4.3AI枪械137

8.4.4AI行为树139

8.4.5AI Controller142

8.5开发环境143

第9章UE制作交互车145

9.1案例概述145

9.1.1编辑界面145

9.1.2成果预览145

9.1.3功能介绍145

9.2素材获取147

9.2.1具体目标147

9.2.2具体步骤147

9.3鼠标控制车门和后盖开关151

9.3.1具体目标151

9.3.2实现原理151

9.3.3具体步骤151

9.4鼠标实现视角控制166

9.4.1具体目标166

9.4.2实现原理166

9.4.3具体步骤166

9.5UI按钮更改车辆颜色172

9.5.1具体目标173

9.5.2实现原理173

9.5.3具体步骤173

9.6UI按钮实现环境光的开关186

9.6.1具体目标186

9.6.2实现原理186

9.6.3具体步骤186

9.7UI按钮实现车灯开关188

9.7.1具体目标188

9.7.2实现原理188

9.7.3具体步骤189

9.8UI按钮实现镜头切换196

9.8.1具体目标196

9.8.2实现原理196

9.8.3具体步骤197

第10章混合现实203

10.1混合现实与增强现实203

10.2混合现实产品204

10.3混合现实的应用场景204

10.4混合现实开发: Mixed Reality Toolkit205

10.4.1Mixed Reality Toolkit 205

10.4.2MRTK的核心功能206

10.4.3全息图与空间音效206

10.4.4混合现实MR场景的基本元素207

10.5HoloLens 2交互方式及实现207

10.5.1用手直接操作物体207

10.5.2按钮209

10.5.3语音反馈210

10.5.4滑杆反馈212

10.5.5案例: 通过滑杆改变物体颜色212

10.5.6基于BuildingBlock的交互设计213

10.6跨设备混合现实: Azure空间定位点216

10.6.1Azure空间定位点216

10.6.2空间定位点应用情形217

10.6.3创建及使用空间定位点217

第11章基于WebGL的VR、AR与MR218

11.1AFrame218

11.1.1基础语法218

11.1.2定义物体与动画219

11.1.3定义交互220

11.1.4事件侦听220

11.1.5基本体建模案例: 地球221

11.1.6全景展示案例222

11.1.7GLTF模型展示案例222

11.1.8基于AFrame的AR223

11.1.9四季原理AR案例224

11.2X3D与X3DOM225

11.2.1基本几何体 226

11.2.2基本几何体: 球体与星球228

11.2.3全景展示228

11.2.4动画228

11.2.5交互229

11.3Three.js 230

11.3.1基本几何模型的创建230

11.3.2使用Three.js创建3D场景232

11.3.3Three.js中创建灯光233

11.3.4Three.js加载3D模型文件234

11.3.5动画235

11.3.6交互239

11.4基于Three.js实现混合现实功能247

11.5使用Babylon.js创建HoloLens混合现实应用249

11.5.1创建基本 html标记249

11.5.2创建场景250

11.5.3添加3D元素250

11.5.4添加相机250

11.5.5添加灯光251

11.5.6添加互动251

11.5.7启用WebXR沉浸式体验252

11.6基于网页的协同式VR253

11.6.1VR协同对分布式网络的需求254

11.6.2VR在线协同的分布式数据库255

11.6.3用户管理和DB、ASP255

11.6.4分布式虚拟环境和Web255

11.6.5设计与实施255

11.6.6实施259

11.6.7每个参与者的拓展259

11.6.8教师教学演示过程260

11.6.9教师将权限交予学生260

11.7基于AI赋能3D Web开发261

11.7.1引言: AI在3D Web开发中的新角色261

11.7.2核心工具与技术栈261

11.7.3教程核心: AI辅助的开发工作流262

11.7.4场景搭建示例: AFrame (最快的方式)262

11.7.5场景搭建示例: Three.js (最灵活的方式)263

11.7.6场景搭建示例: X3DOM (声明式的方式)265

11.7.7AI 辅助交互与调试266

11.7.8总结: AI 驱动的开发新范式267

第12章混合现实录制、虚拟拍摄与虚拟直播268

12.1混合现实录制268

12.1.1面向Meta Quest的混合现实录制269

12.1.2面向Pico Neo的混合现实录制270

12.1.3开发支持混合现实录制的PicoVR游戏270

12.2虚拟拍摄272

12.2.1HTC VIVE MARS CamTrack272

12.2.2HTC VIVE MARS CamTrack设置273

12.3虚拟直播274

12.3.1虚拟直播的发展经历274

12.3.2强相关虚拟直播的受众——以ASOUL为例277

12.3.3弱相关虚拟直播的受众278

12.3.42D直播工作流278

12.3.53D直播工作流282

12.3.6虚拟直播企划的运营现状284