前言
如今,我们正见证着虚拟现实(VR)的迅猛发展,这是一项令人激动的技术,它有望改变我们与信息、朋友和整个世界进行交互的基本方式。
什么是消费级虚拟现实?戴上一个头盔显示器(比如护目镜),你可以观看立体3D场景,你可以通过移动头部向四周看以及通过使用手持控制或动作传感器四处走动,你可以拥有完整的沉浸式体验。这就像你真的在某个虚拟世界中一样。
本书通过实战的、基于项目的方式教你使用Unity 3D游戏引擎开发虚拟现实的细节。我们通过一系列实战工程、循序渐进的教程,并使用Unity 5和其他免费或开源软件进行深入讨论。而VR技术正在快速发展,我们将试着获取基本的原则和技巧,以便使你能够让自己的VR游戏和应用程序具有沉浸感和舒适感。
你将学习如何使用Unity开发可以用Oculus Rift或者Google Cardboard这样的设备体验的VR应用程序。我们将涵盖技术上对于VR来说重要且可能独一无二的考虑。读完本书后,你将有能力用Unity开发丰富的、交互性的虚拟现实体验程序。
本书的主要内容
第1章介绍消费级虚拟现实(VR)中关于游戏和非游戏应用程序的新技术和新机遇。
第2章讨论如何构建一个简单的透视图场景。本章介绍了Unity 3D 游戏引擎和用于3D建模的Blender,并探索了世界坐标系和缩放比例的问题。
第3章帮助你配置项目以便运行于VR头盔,比如Oculus Rift和Google Cardboard(Android或iOS)。然后,我们深入了解VR硬件和软件如何运行的细节。
第4章探讨了场景中的VR摄像机与对象的关系,包括3D光标与基于凝视的射线枪。本章还包括使用C#编程语言编写Unity脚本。
第5章实现了很多VR的用户界面(UI)例子,包括一个平视显示器(HUD)、信息框,以及带有很多代码和说明的游戏中的对象。
第6章剖析Unity的人物角色对象和组件,它们用于构建我们自己的带有基于凝视的导航功能的第一人称角色。然后,我们将探讨拥有一个第一人称虚拟身体的体验,并考虑晕动症的问题。
第7章在我们通过若干个VR项目案例和游戏学习使用作用力和重力的同时,深入了解Unity的物理引擎、组件及材质。
第8章帮助我们构建一个3D架构的空间和实现虚拟的漫游。我们还讨论了Unity中的渲染和性能优化。
第9章利用全部的360霸诟髦窒钅恐惺褂?60岸嗝教澹渲邪ǖ厍蛞恰⑷巴肌⒄掌颉N颐腔固致哿怂堑脑怼?
第10章探讨了使用Unity 5的网络组件带VR功能的多玩家实现。我们还看了VRChat作为一个用于社交式VR的可扩展平台的例子。
第11章展望VR技术。
准备工作
在我们开始前,你将需要完成一些工作。随便吃点东西,一瓶水或一杯咖啡。除了这些,你还需要一台安装了Unity 3D游戏引擎的PC(Windows或Mac)。
你不需要超级性能的配置,因为Unity可以像猛兽一样渲染复杂的场景,而Oculus已经发布了推荐的PC硬件规格,你可以用较少的钱获取到。甚至一台笔记本就可以完成本书中的项目。要想获取Unity,访问,选择你想用的版本,点击Download Installer,然后继续按照说明操作即可。选择Unity的免费个人版本就行。
我们还可以选择使用Blender开源项目进行3D建模。本书不是关于Blender的著作,但是如果你需要的话,我们可以使用它。要获取Blender可以访问,根据你的系统平台按照说明下载。
建议拥有一台虚拟现实头盔显示器(HMD)以便试运行你的构建成果以及获取本书中项目开发的第一手体验。完全可以在一台台式机显示器上构建和运行所有的项目,但是乐趣在哪里呢?本书将涉及Google Cardboard和Oculus Rift的细节。
Google Cardboard是移动VR的一个示范,让你可以用智能手机运行VR应用。如果你有一台Android智能手机,你需要从Google获取Android开发工具;如果你有一台iOS设备,你需要从Apple获取Xcode开发工具(及授权)。具体细节在第3章有所介绍。
Oculus Rift 是一个关于Desktop VR的例子目前,Unity对Rift内置支持。然而,如果你有不同的头盔显示器,你可能还需要从厂商处下载一个Unity的接口包。具体细节也在第3章中进行介绍。
这应该就差不多了—一台PC、Unity软件、一台HMD,我们就准备好了!
目标读者
如果你对虚拟现实感兴趣,想要学习它的原理或者想创建自己的VR体验,那么本书适合你。不管你是否是程序员,是否熟悉3D计算机图形,或者有前两者的经验但对于VR是个新手,你都可以从本书中受益。使用Unity并不是重新开始,但你也不需要是一位专家。然而,如果你是Unity新手,只要你认为自己可以适应本书的节奏,就可以购买本书。
游戏开发者可能已经熟悉本书中的概念了,在学习了很多特定于VR的知识后把它们重新应用于VR项目。已经了解如何使用Unity的移动平台和2D游戏的设计师将会发现另一个维度!工程师和3D设计师可能理解很多3D概念,但是他们可以学习把游戏引擎用于VR。应用程序开发者也许会感激VR在非游戏用途方面的潜能,并且想要学习使用制作这类程序的工具。
出版在【华章出版社】 作者:
[美] 乔纳森·林诺维斯(Jonathan Linowes)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。