×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
虚拟现实原理与开发:基于 Unity 的 VR 技术实现

虚拟现实原理与开发:基于 Unity 的 VR 技术实现

1星价 ¥77.4 (7.1折)
2星价¥77.4 定价¥109.0
暂无评论
图文详情
  • ISBN:9787121444845
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:其他
  • 页数:272
  • 出版时间:2022-11-01
  • 条形码:9787121444845 ; 978-7-121-44484-5

本书特色

围绕Unity 2020 LTS 及其配套的通用渲染管线(URP)展开,介绍SteamVR,硬件开发平台则以HTC VIVE 为主,讲解完整项目的制作流程虚拟现实是通向元宇宙的非常重要的入口和体验场景之一。目前无论是虚拟现实还是元宇宙,均处于行业 发展初期。对于开发者,虚拟现实技术尚存在一定的门槛,零基础的朋友对于项目制作流程尚存在疑虑, 所以出版本书的目的在于为初学者解答以上问题,并带领大家从零开始制作一个VR项目,*终希望大家能创造属于自己的虚拟世界。 在虚拟现实技术的知识产品方面,邵老师可能是国内比较高产的创作者之一。同时,在线下服务方面,邵老 师在与我们的多次合作过程中,都能够为学员们提供系统且完备的知识结构,相信本书也能够给读者这样的 感受,介绍给各位有志于从事这个未来充满机遇的行业的初学者学习这本书。 孙逸君 | 上海交通大学媒体与传播学院培训中心主任 邵伟每年都在持续更新AR/VR开发实战课程,紧跟行业的发展。如果你还在寻找AR/VR开发实战的书籍, 邵伟的这本书非常适合。 刘卫华 | 映维网创始人 VR领域虽然有很多教程,但这本书很值得一看。作者多年的学习方法、实操经验都以一种显性化、结构 化、传承化的方式融汇到书里,极具针对性和实用性,使你像与高手对话,茅塞顿开。 李佳 | 极客邦科技内容总监 邵老师是我在VR开发领域的领路人,他的课程一如既往用心设计,实战性强。只要认真学习,“萌新”跟 着邵老师完整做两套案例就能得心应手。 小意思VR(姚舜) | B站知名UP主 邵老师在虚拟现实技术领域里深耕多年,是大家非常喜欢的专业老师,《虚拟现实原理与开发:基于 Unity的VR技术实现》这本新书非常不错。 崇慕 | Metacore CEO

内容简介

随着5G、人工智能、云计算等技术的发展,虚拟现实技术将在医疗、教育、工业等场景中发挥重要的作用。同时,它还是通向元宇宙的重要入口和体验场景之一。 因为Unity是当前业界领先的VR/AR内容制作工具,所以本书基于Unity编辑器对其进行讲解。本书主要分为两大部分:**部分讲解SteamVR 2.x Unity插件的功能,包括新引入的动作机制和Interaction System;第二部分以一个完整的VR项目为例,带领读者从零起步,从项目创建开始,到*终导出为可交付的应用程序。各章还会介绍在项目制作过程中涉及的核心技术,包括但不限于场景搭建、制作VR中的UI、使用第三方工具制作材质资源、烘焙场景的光照贴图、交互开发等。

目录

第 1 章 SteamVR 基础交互开发 .................................................................................. 1
1.1 SteamVR 与相关 VR 硬件 .................................................................................. 1
1.1.1 HTC VIVE 硬件介绍 .............................................................................. 1
1.1.2 VR 手柄控制器按键介绍........................................................................ 3
1.1.3 HTC VIVE 开发推荐 PC 端规格 ........................................................... 4
1.2 OpenVR、SteamVR、OpenXR 相关概念 ........................................................ 5
1.2.1 OpenVR .................................................................................................... 6
1.2.2 OpenVR Desktop ..................................................................................... 6
1.2.3 OpenVR XR Plugin .................................................................................. 7
1.2.4 SteamVR 客户端 ..................................................................................... 8
1.2.5 SteamVR Plugin ....................................................................................... 9
1.2.6 OpenXR .................................................................................................. 10
1.2.7 OpenXR Plugin ...................................................................................... 11
1.3 在 Unity 中使用 SteamVR 插件 ....................................................................... 12
1.3.1 SteamVR 插件的获取 .......................................................................... 12
1.3.2 SteamVR Plugin 2.x 新版本的变化 ..................................................... 14
1.3.3 导入 SteamVR 插件 .............................................................................. 15
1.3.4 初次运行 SteamVR 应用程序 ............................................................... 17
1.4 SteamVR 2.x 中的动作 .................................................................................... 19
1.4.1 SteamVR Input 窗口 ............................................................................. 19
1.4.2 创建动作 ................................................................................................ 22
1.4.3 动作与按键的绑定 ................................................................................ 22
1.5 通过脚本获取动作的输入 ................................................................................ 26
1.5.1 声明和引用动作 .................................................................................... 26
1.5.2 获取动作输入 ........................................................................................ 27
1.6 Interaction System .............................................................................................. 30
1.6.1 Interaction System 的核心模块 ............................................................. 31
1.6.2 使用 Interaction System 实现位置传送 ............................................... 32
1.6.3 使用 Interaction System 实现与物体的交互 ....................................... 35
1.7 在 SteamVR 2.x 中使用自定义手部模型 ....................................................... 37
1.7.1 骨骼输入原理概述 ............................................................................... 37
1.7.2 自制模型设置 ....................................................................................... 39
1.7.3 SteamVR_Behaviour_Skeleton 组件设置 ............................................ 40
1.8 使用 Oculus Quest 学习 SteamVR 开发 ....................................................... 41
1.8.1 Oculus Link 简介 .................................................................................. 41
1.8.2 具体步骤及常见问题............................................................................ 42
1.8.3 建议使用的开发软件版本 .................................................................... 45
1.8.4 测试 ....................................................................................................... 47
1.9 SteamVR 开发常用脚本汇总 .......................................................................... 47
1.9.1 获取 Touchpad 键上触摸点的位置 ...................................................... 47
1.9.2 获取体验者位置 ................................................................................... 48
1.9.3 获取体验者某一个 Hand 的引用 ......................................................... 49
1.9.4 获取与当前游戏对象交互的手柄控制器 ............................................ 49
1.9.5 获取被交互游戏对象的信息 ................................................................ 50
1.9.6 手部在进入某区域时切换姿态 ............................................................ 50

第 2 章 VR 博物馆项目实战准备................................................................................ 52
2.1 项目软硬件准备 ............................................................................................... 52
2.1.1 项目硬件准备 ....................................................................................... 52
2.1.2 项目软件准备 ....................................................................................... 53
2.1.3 Unity 插件准备 .................................................................................... 55
2.1.4 为什么建议使用约定的软件版本 ........................................................ 55
2.2 URP 概述 ........................................................................................................... 56
2.2.1 URP 简介 ............................................................................................... 56
2.2.2 使用模板创建基于 URP 的 Unity 项目 ............................................... 57
2.2.3 将现有项目的渲染管线转换为 URP ................................................... 60
2.2.4 为什么没有使用 HDRP ........................................................................ 62
2.2.5 URP 学习建议 ....................................................................................... 63
2.3 材质、贴图与 UV ............................................................................................. 63
2.3.1 什么是材质 ........................................................................................... 63
2.3.2 基于物理的渲染:PBR 理论 ............................................................... 64
2.3.3 URP 中的材质 ....................................................................................... 65
2.3.4 什么是贴图 ........................................................................................... 67
2.3.5 PBR 常用贴图类型 ............................................................................... 67
2.3.6 什么是 UV ............................................................................................. 71
2.4 模型对接标准 .................................................................................................... 72
2.4.1 Unity 结合 Blender 进行模型处理的工作流程.................................... 72
2.4.2 模型 UV 准备 ........................................................................................ 75
2.4.3 模型对象的命名 .................................................................................... 77
2.4.4 确保模型使用的单位与 Unity 一致 ..................................................... 77
2.4.5 对模型设置合理的中心点 .................................................................... 78
2.4.6 使用布线合理且面数较低的模型 ........................................................ 79

第 3 章 烘焙光照贴图技术 ......................................................................................... 81
3.1 光照贴图 ............................................................................................................ 81
3.1.1 什么是光照信息 .................................................................................... 81
3.1.2 为什么要烘焙光照贴图 ........................................................................ 82
3.1.3 直接光照和间接光照 ............................................................................ 83
3.1.4 烘焙光照贴图的基本原理 .................................................................... 84
3.2 Lighting 窗口的参数介绍 ................................................................................. 85
3.2.1 窗口概览 ................................................................................................ 85
3.2.2 Scene 选项卡中的参数 ......................................................................... 86
3.2.3 Environment 选项卡中的参数 .............................................................. 95
3.2.4 Baked Lightmaps 选项卡 ....................................................................... 98
3.3 项目基础布光设置 ............................................................................................ 99
3.3.1 场景光照来源分析 ................................................................................ 99
3.3.2 制作玻璃材质 ...................................................................................... 100
3.3.3 调整 URP 配置文件的相关参数 ........................................................ 102
3.4 烘焙光照贴图 .................................................................................................. 105
3.4.1 应用临时材质 ...................................................................................... 105
3.4.2 设置游戏对象参与烘焙光照贴图 ...................................................... 106
3.4.3 设置 Lighting Settings 参数 .............................................................. 107
3.4.4 面光源的使用 ...................................................................................... 110
3.4.5 切换天空盒 .......................................................................................... 112

第 4 章 VR 写实材质技术 ......................................................................................... 115
4.1 Substance 材质的使用 .................................................................................... 115
4.1.1 概述 ...................................................................................................... 115
4.1.2 Substance in Unity 插件的使用 .......................................................... 116
4.1.3 在 Unity 中使用 Substance 材质 ..................................................... 117
4.2 使用 Substance 3D Designer 制作墙面材质 ................................................. 121
4.2.1 Substance 3D Designer 简介 .............................................................. 121
4.2.2 在 Substance 3D Designer 中制作墙面材质 .................................... 122
4.2.3 在场景中使用墙面材质 ...................................................................... 128
4.3 制作并应用木地板材质 .................................................................................. 129
4.3.1 在 Substance 3D Sampler 中制作木地板材质 ................................. 130
4.3.2 将材质导出为 Substance ................................................................... 134
4.3.3 将木地板材质应用到项目场景中 ...................................................... 135
4.4 下一步行动 ..................................................................................................... 136

第 5 章 实现项目的基本交互功能 ............................................................................ 137
5.1 实现基础 VR 交互 .......................................................................................... 137
5.1.1 导入 SteamVR 插件 .......................................................................... 137
5.1.2 实现在 VR 头显中查看场景内容 ...................................................... 138
5.1.3 将必要材质适配 URP ......................................................................... 139
5.1.4 实现位置传送功能 ............................................................................. 140
5.1.5 优化位置传送体验 ............................................................................. 142
5.1.6 整理场景游戏对象 ............................................................................. 144
5.2 实现对象的抓取 ............................................................................................. 144
5.2.1 为游戏对象添加合适的碰撞体组件 .................................................. 144
5.2.2 为游戏对象添加 Throwable 组件 ...................................................... 145
5.3 解决高亮轮廓在 URP 下的显示问题 ............................................................ 147
5.3.1 SteamVR 实现高亮效果的机制 ........................................................ 147
5.3.2 Quick Outline 插件的使用 ................................................................. 149
5.3.3 使用 Quick Outline 插件替换 SteamVR 的高亮效果 ....................... 150
5.4 使用 Skeleton Poser 组件设计抓取手形 ........................................................ 153
5.4.1 为可交互游戏对象添加 Skeleton Poser 组件 .................................. 154
5.4.2 编辑左手手形 ..................................................................................... 155
5.4.3 编辑右手手形 ..................................................................................... 157
5.5 使用 DOTween 插件实现佛像的浮动特效 ................................................. 158
5.5.1 获取 DOTween 插件 ......................................................................... 158
5.5.2 导入 DoTween 插件 ............................................................................ 159
5.5.3 编写脚本实现浮动特效 ...................................................................... 160
5.5.4 调整附加光源的阴影分辨率 .............................................................. 162

第 6 章 VR 中的 UI 技术........................................................................................... 163
6.1 制作文字介绍 UI ............................................................................................. 163
6.1.1 制作 VR 中的 UI 的一般流程 ............................................................ 163
6.1.2 为《蒙娜丽莎》画像添加文字介绍 .................................................. 165
6.2 使用 Prefab Variant 技术制作雕塑介绍 UI .................................................... 168
6.2.1 准备制作 Original Prefab 的游戏对象 ............................................... 169
6.2.2 创建 Prefab Variant .............................................................................. 169
6.2.3 编辑 Prefab Variant .............................................................................. 170
6.3 开发 UI 与体验者移动的动态交互 ................................................................ 172
6.3.1 编写 IntroTxtBasic 父类实现 UI 的自动显示和隐藏 ........................ 173
6.3.2 编写 IntroTxtRotate 子类实现 UI 永远朝向体验者 .......................... 176
6.4 使用 Curved UI 插件进行 UI 交互开发 ......................................................... 178
6.4.1 Curved UI 插件简介 ............................................................................ 179
6.4.2 Curved UI 插件与 SteamVR 2.x 的集成 ............................................ 180
6.5 解决 UI 交互与位置传送交互冲突的问题 .................................................... 184
6.5.1 存在现象 .............................................................................................. 184
6.5.2 解决思路 .............................................................................................. 184
6.5.3 实现方法 .............................................................................................. 185
6.6 使用 Modern UI Pack 插件制作项目 UI 界面 ............................................... 188
6.6.1 Modern UI Pack 插件概述 .................................................................. 188
6.6.2 Window Manager 简介 ........................................................................ 189
6.6.3 使用 Modern UI Pack 插件创建 UI 控件 ........................................... 191
6.6.4 为窗口添加 UI 控件 ............................................................................ 193
6.6.5 使用 TextMeshPro 在 VR 环境中显示中文 .................................... 200
6.6.6 制作 SettingWindow 中的内容 ........................................................... 207
6.7 开发系统菜单的交互功能 .............................................................................. 210

第 7 章 场景交互功能开发 ....................................................................................... 217
7.1 实现切换场景风格的功能 .............................................................................. 217
7.1.1 导入材质资源 ...................................................................................... 217
7.1.2 编写脚本来实现材质切换 .................................................................. 218
7.2 实现调节场景画质表现功能 .......................................................................... 222
7.2.1 实现原理 .............................................................................................. 222
7.2.2 获取 Slider 控件的数值....................................................................... 222
7.2.3 动态修改特效参数 ............................................................................. 228
7.3 开发绘画作品介绍的交互功能 ...................................................................... 234
7.3.1 交互设计思路分析 ............................................................................. 234
7.3.2 创建文字介绍 UI 并实现交互功能 ................................................. 234
7.4 开发作品的视频播放功能 .............................................................................. 240
7.4.1 Video Player 组件简介 ........................................................................ 240
7.4.2 创建视频播放载体 ............................................................................. 241
7.4.3 设置 Video Player 组件 ....................................................................... 242
7.4.4 实现视频播放控制功能 ...................................................................... 243

第 8 章 项目的导出 .................................................................................................. 248
8.1 提高照明参数烘焙光照贴图 .......................................................................... 248
8.2 UI 界面优化 .................................................................................................... 249
8.3 解决材质导出后不显示的问题 ...................................................................... 250
8.4 项目导出设置 ................................................................................................. 252

附录 A:Unity 2020 发行说明(XR 相关) ................................................................ 255
展开全部

作者简介

邵伟,Unity 价值专家(UVP),两届高通Qualcomm XR 创新应用挑战赛评委和技术导师,公众号“XR技术研习社”(ID:XRStudy)主理人,腾讯课堂同名银牌机构创始人。出版教材《Unity VR 虚拟现实完全自学教程》和《Unity 2017 虚拟现实开发标准教程》,录有《VR博物馆项目实战教程》、《SteamVR 2.x 交互开发指南》、《Pico VR 应用开发基础教程》、《HTC VIVE房产项目实战教程》、《HTC VIVE开发实例教程》、《VR写实材质技术实例教程》等在线课程,累计视频时长超过5000分钟,线上线下培训学员共计超3000人,目前专注于VR/AR技术教育工作。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航