新書推薦:
《
马拉松名将手记2:每个人都有自己的决战
》
售價:HK$
79.4
《
大家小书 译馆 骑士:历史与文化
》
售價:HK$
56.4
《
没有一种人生是完美的:百岁老人季羡林的人生智慧(读完季羡林,我再也不内耗了)
》
售價:HK$
56.9
《
日耳曼通识译丛:复原力:心理抗逆力
》
售價:HK$
34.3
《
海外中国研究·未竟之业:近代中国的言行表率
》
售價:HK$
135.7
《
我们为何建造(城市与生态文明丛书)
》
售價:HK$
89.7
《
算法经济 : 商业逻辑与人类生活的智能演进(生动呈现AI与算法的创新应用与商业价值)
》
售價:HK$
79.4
《
家书中的百年史
》
售價:HK$
79.4
|
內容簡介: |
这本书采用了亲身实践的方法使用Unity游戏引擎启动和运行虚拟现实。使用免费的SteamVR库,这本书中的示例代码与当前可用的主要虚拟现实头显示器兼容。该书还介绍了虚拟现实的一些主要问题,比如晕动病和性能问题,并提供了一些切实可行的方法来减少它们对虚拟现实体验的影响。
|
目錄:
|
译者序
前言
致谢
第1章 虚拟世界简介1
1.1 我们虚拟化多久了1
1.2 头戴式显示器诞生之前2
1.3 头戴式显示器的诞生2
1.4 消费者级VR的探索4
1.5 家用电脑式虚拟现实4
1.6 消费者级VR复出5
1.7 VR的缺点6
1.7.1 延迟6
1.7.2 抖动和拖尾6
1.7.3 纱窗效应7
1.7.4 晕眩7
1.7.5 期待哪些体验7
1.7.6 消费者级VR:Rift CV1和HTC Vive9
1.8 可以像内核一样进入电脑吗—VR面临的困难和挑战10
1.8.1 运动追踪和运动捕获输入设备10
1.8.2 触觉反馈11
1.8.3 视觉追踪11
1.8.4 空间和移动12
1.8.5 虚拟现实内容制作12
1.9 虚拟现实设计和发展13
1.9.1 计划:任何计划皆可行13
1.9.2 提前安排主要交互14
1.9.3 真人测试14
1.9.4 寻找合作与流程14
1.9.5 真实性不是绝对的14
1.10 本章小结15
第2章 硬件初始化设置16
2.1 配套硬件和软件需求16
2.1.1 HTC Vive推荐规格17
2.1.2 OSVR HDK推荐规格17
2.1.3 Rift推荐规格17
2.1.4 兼容性工具18
2.1.5 处理兼容性工具结果19
2.2 安装SteamVR21
2.2.1 安装Steam客户端21
2.2.2 注册Steam账户21
2.2.3 安装SteamVR21
2.3 安装提示22
2.3.1 运动追踪器独立安放22
2.3.2 整理物品腾出空间22
2.3.3 避开墙体23
2.3.4 什么是瞳孔间距及其重要性23
2.4 安装VR硬件24
2.4.1 HTC Vive安装介绍24
2.4.2 OSVR HDK安装介绍26
2.4.3 Rift安装29
2.5 设置SteamVR29
2.6 找到你的VR腿31
2.7 舒适体验VR的几点建议31
2.7.1 HTC Vive31
2.7.2 OSVR32
2.7.3 Rift32
2.8 保持健康的VR体验33
2.8.1 及时停止33
2.8.2 休息一下34
2.8.3 进食,饮水,快乐体验虚拟35
2.8.4 体验VR时不要弄伤自己!小心测试35
2.9 本章小结36
第3章 创建SteamVR Unity项目37
3.1 下载Unity并创建新项目38
3.2 Unity编辑器教学38
3.3 创建新的Unity项目42
3.4 下载适用Unity的SteamVR库42
3.5 VR视角的空间46
3.5.1 创建Unity新场景46
3.5.2 从示例文件中复制模型47
3.5.3 添加新的游戏对象47
3.5.4 将花园模型添加到场景中48
3.5.5 添加房屋模型49
3.5.6 设置VR摄像机装置50
3.5.7 VR环境比例52
3.5.8 调整花园模型比例53
3.6 SteamVR摄像机定位和重新定位54
3.7 项目保存和备份54
3.8 本章小结55
第4章 添加交互56
4.1 添加交互框架57
4.2 添加瞄准光标57
4.2.1 添加一个UI画布57
4.2.2 调整画布以适合VR场景57
4.3 添加VREyeRaycaster和Reticle组件到摄像机60
4.3.1 设置Inspector引用61
4.3.2 防止光标剪切62
4.4 在场景中添加门62
4.5 使门可以交互64
4.5.1 创建门控制脚本64
4.5.2 脚本分解66
4.6 门把手添加盒碰撞体69
4.7 DoorController组件设置引用70
4.8 保存工作71
4.9 本章小结71
第5章 构建头戴式显示器和游戏控制器用户界面72
5.1 制作主菜单场景72
5.1.1 打开示例项目72
5.1.2 创建画布进行用户界面绘制73
5.1.3 创建按钮74
5.1.4 添加UI滑块显示按钮进度75
5.2 编写C#按钮脚本79
5.3 添加VR_BUTTON组件引用以使用84
5.4 在按钮上添加文本标签以显示其作用84
5.5 测试按钮86
5.6 菜单场景中添加第二个按钮86
5.6.1 复制按钮86
5.6.2 更改文本标签86
5.7 添加按钮的行为86
5.7.1 添加Main Menu Controller游戏对象到场景中86
5.7.2 编写主菜单脚本87
5.7.3 事件函数添加到菜单按钮88
5.8 添加场景设置89
5.9 测试菜单90
5.10 保存工作90
5.11 本章小结91
第6章 使用SteamVR传送系统在虚拟世界中移动93
6.1 设置传送场景93
6.1.1 为传送地面位置创建碰撞器94
6.1.2 设置图层97
6.1.3 设置摄像机装置并添加组件97
6.2 编写C#脚本输入到传送器98
6.3 修改SteamVR传送器代码104
6.3.1 将DoClick更改为公共函数104
6.3.2 修改SteamVR传送器以使用LayerMask104
6.4 设置摄像机游戏对象上的组件104
6.5 可选的附加功能106
6.6 本章小结106
第7章 游戏中用头戴式显示器瞄准107
7.1 摄像机附加炮弹发射系统108
7.2 摄像机添加脚本用于获取玩家输入109
7.2.1 编写SprayInputProvider.cs脚本109
7.2.2 脚本分解110
7.3 喷壶添加发射脚本111
7.3.1 编写SprayShooter.cs脚本111
7.3.2 脚本分解112
7.4 在Inspector面板中设置组件113
7.5 运行游戏114
7.6 本章小结114
第8章 利用音频充分实现虚拟现实115
8.1 虚拟现实空间及其他115
8.2 常用术语115
8.2.1 环境音效116
8.2.2 监听器116
8.2.3 双耳音频116
8.2.4 单音声116
8.2.5 3D声116
8.2.6 多普勒效应117
8.3 音频源组件117
8.4
|
內容試閱:
|
2017年,我们站在一个新技术园区的门口。我们看着其产值,想弄清楚在那里建造什么,以及怎么建造,很明显还有很多东西需要去发现。虚拟世界中没有规律,没有组织,没有边界,也没有我们为他人构建的边界。从哪里到哪里取决于我们。我们只是在学习人们对虚拟现实(VR)的反应,虚拟现实可以做什么,它在娱乐、学习、康复、体验和开发中似乎有无数的可能性。即便是最基本的界面:我们的网络爱好者如何与虚拟世界互动,也尚未决定。在虚拟世界中什么感觉是自然的?我们如何移动、触摸物体、感受对象、操纵环境?有很多人可以使用创建虚拟内容的工具,它们的范围也从未像现在这样广泛,有更多的人提出了令人兴奋的新东西。在提供技术以适应这种新体验的竞争中,硬件制造商正以最快的速度运行,以使VR更好、更强、更快。无论跑得多快,技术都不会停止发展和变化,而是将继续前进。我们也学无止境。新技术层出不穷,当你读完这本书的时候,参与开发,并试着塑造虚拟现实的未来,当然这些取决于你。不要害怕打破常规,尝试使用不同于过去的与游戏或模拟交互的替代方法。你是一个有远见的人,可以帮助塑造未来的VR风景。未来的虚拟体验将建立在今天的经验之上,所以要不断实验和创造惊人的新事物!最后记住要玩得开心,照顾好自己,也与人交好!
准备工作
你的设置成本将是一台个人开发电脑和你想要插入的硬件,以及所选择的VR设备,让我们快速看看还需要准备什么。
Unity(可以在Unity商店http:www.unity3d.com上找到):Unity和所需的SDK可以免费下载。Unity Personal是一个完整的Unity版本,只是其中有一些附加说明。你可以用Unity Personal做这本书里的所有事情,只要你有一个VR头戴式显示器来测试。任何关于是否需要付费版本的Unity的问题,你都可以先尝试用免费的个人版本来调试,在投入金钱之前看看Unity是如何运作的。
Steam客户端:Steam客户端是免费下载的,你可以访问Valve Software的库和游戏商店。从本质上讲,Steam是一个允许你下载和购买东西的应用程序,但是在这本书中,Steam是一个用来下载和运行SteamVR的应用程序。
SteamVR:SteamVR是一个基于开源虚拟现实库的系统。它为VR提供了一个平台。SteamVR在Steam客户端下运行。Unity将通过SteamVR系统与VR硬件进行交互。
C#编程知识:再次重申,这不是一本关于学习如何编程的图书。我将解释所有的代码是如何工作的,但是你需要知道一些C#知识,有许多书籍是专门针对C#学习的。编程是一门庞大的学科,试图同时教编程和VR开发是毫无意义的。这本书讲的是虚拟现实体验,而不是学习编程。当然,我将尽我所能解释一切!
本书的读者对象
Unity已经用自己的指南和教程完成了一项令人惊叹的工作,所以如果你以前从未使用过这个引擎,强烈建议查看一下Unity文档并遵循指南来进行编辑器基本操作。本书中有一个基本的速成课程,但我没有详细说明。我将尽我所能勾勒出流程、键盘快捷键以及在哪里单击以使预料的事情发生,但这不是一本教授Unity的书。
这不是一本关于编程的书,也不是一本关于用正确或错误方法编写代码的书。我们假设读者对C#编程语言有一定的经验,但是对于VR或VR为主的开发来说可能是陌生的。我觉得有一点很重要,我是一个自学成才的程序员,我也明白,有更好的方法编写程序,所以这是一本关于概念的书,不可避免地会有更好的方法来实现一些相同的目标。本书中的技术和概念提供了基础,而不是任何主题的最终结果。运用这些概念,领会它们,按照你想要的方式去做。最重要的是,试着享受它!
|
|