HTC Vive VR游戏开发实战(txt+pdf+epub+mobi电子书下载)


发布时间:2021-01-16 20:49:31

点击下载

作者:胡良云,王金柱

出版社:清华大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

HTC Vive VR游戏开发实战

HTC Vive VR游戏开发实战试读:

前言

我走得很慢,但是我从来不会后退。

I am a slow walker,but I never walk backwards.——美国第16任总统 亚伯拉罕·林肯

这本书不应该仅仅是一本讲开发的技术书籍,也应该是一本励志的书,就像林肯的人生一样,从开始的结结巴巴到美国总统。在这样一个艰难的过程中,他走得很慢,大器晚成,成为美国历史上最伟大的总统之一。

可能有人会问为什么要这么开篇呢?技术书籍为什么会是励志书?因为VR技术注定是一项大器晚成的技术,虽然我们目前已经取得了非常漂亮的成就,但是离真正的虚拟现实还有很长的路要走。这条路必然是充满坎坷的,开发是一件苦差事,程序员要克服重重困难才能实现想要的功能。

VR是什么?笔者期望虚拟现实可以像科幻片《钢铁侠》里面那样,不需要穿戴任何设备,或者仅仅穿戴十分轻薄的设备,拥有非常智能的可视化界面,通过手在空中划拉就可以很自然地操作,并且拥有智能的AI语音系统,使整个系统操作更加自然流畅。

要实现这样的虚拟现实,至少要等到2020年,这是一件非常励志的事情!

那么,总有人要写这本书,因为很多人需要它。胡某不才,组织了HTC Vive开发者联盟,随着时间的推移,VR越来越火热,VR开发的从业者和学习者也越来越多。由于之前在论坛上发过的几篇HTC Vive开发帖子广受关注,因此很多人慕名来向我请教一些技术问题,我也尽力帮助他们解决。但胡某分身乏术,有时也爱莫能助,毕竟我也需要工作。

所幸清华大学出版社的卞诚君编辑找到了胡某,诚邀我来写一部VR游戏开发的书籍,以帮助广大的开发者或学生掌握HTC Vive的开发技能,从而促进整个VR行业发展。我愿意做这件事情,所以毫不犹豫地应承了下来。

尽管胡某开发技术并非超群,奈何对HTC Vive情有独钟,以至于在其中投入了大量的精力。如果说能够对其发展带来一些帮助,胡某也定当略尽绵力,在所不辞。我将自己所得倾囊相授于此书,若有疏漏之处希望大家指正,我不希望因为自己的过失误人子弟。

这里简单介绍下我的编程生涯。我以前是一个PHP工程师,在IPG旗下的跨国公司Loweprofero公司上班,曾经热衷于网站开发,但因为热爱《黑客帝国》《盗梦空间》《刀剑神域》等科幻作品,所以常常关注一些前沿科技的发展,特别在意的是VR/AR/MR方面的技术革新,一有时间就会对这方面的技术进行研究。

曾利用业余时间自学了C、C++和C#,当然并未到精通的地步,那时尽力搜集一切编程相关的学习资料,囫囵吞枣一般吃进去,并不成体系。后来又接触到游戏引擎Unity 3D,更加有动力去学习,因为感觉梦想似乎并不是遥不可及。

直到后来,HTC Vive面市,我在一次论坛举办的开发者大会中首次体验到了它。在这之前,我已经体验过市场上各种各样的VR设备,但只有HTC Vive体验最佳,和我的梦想最为接近。那一天,我夜不能寐,心中所思所想尽是这一套设备。

后来我历经艰难困苦,终于跨行转为VR开发,由网友龙炳全的引见到了现在这家公司精诚机构从业。上司黄菲大哥也是一个对VR充满热情的人,他为我的情怀所感动,并且大力支持我做HTC Vive上的研究。

我所在的精诚机构专为房地产销售提供一站式的解决方案,从样板间到沙盘模型,从一体机、IPAD硬件到互动系统、沙盘灯光系统、VR看房系统等软件,满足房地产销售的一切需求。董事长胡治国先生十分看好VR的发展,积极投入到VR游戏开发和体验店实体的布局,致力于建立VR生态系统,打造全新的虚拟现实商业模式。

仿佛不知岁月,我沉浸于VR技术的研究,遇到过各种各样的开发难题,也走了不少弯路,但这些困难并不能阻碍我,也必将不能阻碍大家。

过去电脑只是个梦想,现在几乎人手一部智能手机,从某种意义上讲,智能手机是人类对于电脑想象的一个超越。它更小更轻、易于携带、更加智能,比艾伦·图灵(计算机之父)想象得要好太多,而且它和图灵所想一样,在某种程度上成了人类的伴侣。

过去VR或者虚拟现实也只是个梦想,现在我们还没有完美地实现它,但它已经近在咫尺,你能真切地感受到,而且可以更完美。就好比图灵机和手机的跨越,未来的VR将会变得轻薄,成为隐形眼镜,就贴在视网膜上。

它将会和AR混合成为MR,虚拟和现实合二为一,不分彼此。它甚至可以使用人体的生物电,作为能量供给;可以成为人类的第二个大脑;成为人类进化的催化物。

总之,VR带给我们无限可能,未来成了无限可能。

在此特别感谢公司精诚机构对我的支持,黄菲大哥在此之前就曾经建议我写一部书;同时还要感谢公司的同事们,尤其是引见我到精诚的龙炳全,没有他的话我也许无法从事所热爱的VR事业,也不会有这本书,所以要特别感谢他。特别感谢生我养我的父母,以及我的兄弟姐妹们对我的支持和鼓励,特别是姐姐,伟大的姐姐。还要感谢我的好朋友们,特别是潘寅冬,他总是像兄弟一样给予我帮助。最后,感谢我的恩师们,特别要感谢陈群老师和荣春鸿老师,她们对我的教育之恩和超越老师的关怀我从未言表,一直默默铭记在心。

原本这部书计划要写12个章节,但是写完前面6章以后发现已经超出了篇幅,所以不得不把后面讲虚幻4引擎的内容独立出来。当然,这里会提供虚幻4引擎的学习资料,UE4学习资料与视频可在百度云盘找到,地址为http://pan.baidu.com/s/1c2a8DnM。

虽然本书沁入编者的所有努力,但是由于水平有限,难免有疏漏之处,欢迎大家批评指正,如果遇到问题或者有更好的建议,敬请与我联系,我将全力提供帮助。我的QQ是604746493,如果不在线也可以给我发邮件,我会定时查阅QQ邮箱。

参与本书编写的除了封面署名人员以外,还有伍丰、叶静宇、凌东鑫、向春宇、肖攀、钟少华等人,在此要特别感谢他们对本书的支持。

路漫漫其修远兮,吾将上下而求索。胡良云2016年12月28日第1章绪论万事开头难。本章主要介绍VR是什么以及HTC Vive简介。只有从理论上认识VR,才能更快地应用到实践中,所以本章从理论入手,深入浅出地讲解什么是VR、其科学原理又是什么。同时也简要地介绍VR的兄弟AR和MR,通过对比让大家明白VR的重要性。HTC Vive是本书的核心,知道了VR是什么,就不难理解Vive了,它在本质上是我们实现VR的硬件,而本书的目的就是开发与之匹配的软件和内容。1.1 什么是VR

现实即幻象,只是非常稳定罢了。——阿尔伯特·爱因斯坦

VR是英文Virtual Reality的首字母缩写,直译为中文就是虚拟现实,含义是虚拟和现实前所未有的接近,几乎难以分辨。

其实什么是虚拟、什么是现实,我们不一定有相同的答案。看过《黑客帝国》的人都知道,主角开始沉浸在一个完全仿真的世界之中,矩阵模拟了他的所有感官。在那样的世界里面,你活得如此真切,既能感受到阳光的温暖,也能感受到微风拂面而过,还能享受到提拉米苏在舌尖味蕾上跳芭蕾舞……

如果真有这样一个世界存在,你还能分得清虚拟和现实吗?至少主角Neo(由基努·李维斯扮演)分不清,我们也不一定分得清。如图1-1所示,未来的VR眼镜可能就是这样的。图1-1 VR未来

可以说深受这部电影的影响,很多人都幻想着要创造一个接近于现实的虚拟世界,做那个世界的造物主,或者一个英雄。很多时候现实世界是无趣的,大家要依靠书籍、电影和游戏等虚拟产物来消磨时光,所以太多男人想要做英雄!

VR这种能够让虚拟无限接近于现实的技术强烈地吸引着大家,它可以使玩家置身于一个想象出来的魔幻世界或者模拟真实的世界,并且让玩家如同身临其境,和虚拟的对象产生交互,让人深度地沉浸其中。

VR人为地创造感官体验,目前主要是视觉和听觉,配合其他硬件设施还可以模拟触觉、嗅觉等体验。我们常常把这种感官上可以混淆现实的刺激称为沉浸式体验,因为它真的可以做到让玩家置身于异度空间中,并且无法自拔。

通过感官刺激来混淆真假属于欺骗大脑的行为。下面简单分析人类看待事物的原理或者说双眼的视觉机制。人之所以能够看到立体的景物,是因为我们的双眼可以各自独立看东西,左、右两眼有一定的间距,造成两眼的视角有些细微的差别,而这样的差别会让两眼看到的景物有一点点的位移。

左眼与右眼图像的差异称为视差,人类的大脑很巧妙地将两眼的图像进行融合,在大脑中产生出有空间感的立体视觉效果,如图1-2所示。那么,VR的视觉原理又是怎样的呢?图1-2 人眼成像原理

在虚拟现实的设备中大多数都采用了视差模式,通俗地讲就是“左右眼”,电影院的3D电影是将带有视差的双眼画面同时投射到幕布上,然后用3D眼镜来进行过滤分离,这样左右眼可以分别看到对应视差的画面,以达到视觉上的立体效果,如图1-3所示。图1-3 双目摄像头模拟人眼成像

虚拟现实采用类似的原理,把左右眼的视差画面分别渲染到两个对应的屏幕上,人类的双眼按照习惯采集画面并传递给大脑进行混合,从而实现立体视觉。所以我们可以很容易地发现VR设备里面都是两块小屏幕,上面渲染的其实是交错的同一个画面。

交错显示模式的工作原理是将一个画面分为二个图场,即单数描线所构成的单数扫描线图场或单图场与偶数扫描线所构成的偶数扫描线图场或偶图场。在使用交错显示模式做立体显像时,我们便可以将左眼图像与右眼图像分置于单图场和偶图场(或相反顺序)中,我们称此为立体交错格式。

若使用快门立体眼镜与交错模式搭配,则只需将图场垂直同步信号当作快门切换同步信号,即显示单图场(即左眼画面)时,立体眼镜会遮住使用者的一只眼睛,而当换显示偶图场时,则切换遮住另一只眼睛,如此周而复始,便可达到立体显像的目的。

画面交换的工作原理是将左、右眼图像交互显示在屏幕上。使用立体眼镜与这类立体显示模式搭配,只需要将垂直同步信号作为快门切换同步信号即可达成立体显像的目的;而使用其他立体显像设备则需将左右眼图像(以垂直同步信号分隔的画面)分送至左右眼显示设备上。

计算机屏幕只有一个,而我们却有两只眼睛,又必须让左、右眼所看的图像各自独立分开才能有立体视觉,所以可以通过3D立体眼镜让这个视差持续在屏幕上表现出来。

通过控制IC送出立体信号(左眼→右眼→左眼→右眼→依序连续互相交替重复)到屏幕,并同时送出同步信号到3D立体眼镜,使其同步切换左、右眼图像,换句话说,左眼看到左眼该看到的景象,右眼看到右眼该看到的景象。

3D立体眼镜是一个穿透液晶镜片,通过电路对液晶眼镜开、关的控制,开可以控制眼镜镜片全黑,以便遮住一眼图像;关可以控制眼镜镜片为透明的,以便另一只眼睛看到该看到的图像。

3D立体眼镜可以模仿真实的状况,使左、右眼画面连续互相交替地显示在屏幕上,并同步配合3D立体眼镜,加上人眼视觉暂留的生理特性,就可以看到真正的立体3D图像,如图1-4所示。图1-4 双目立体视觉原理图

我们在这里顺带简单讲下和VR相关的AR和MR。所谓的AR和VR不同,VR是完全的虚拟空间,在那里你基本上与世隔绝;而AR是建立在现实的基础上,将计算机生成的虚拟图像嵌套到现实图像之中,形成虚拟和现实混合的视觉体验,所以AR(Augmented Reality)被称为增强现实。MR(Mixed Reality)被称为混合现实,把计算机生成的物体混合到真实世界当中,也是VR和AR的结合点。混合现实能把真实世界和虚拟世界融合在一起,生成新的环境和视觉图像,让真实物体和数字物体实时共存并进行互动。混合现实存在于物质世界或虚拟世界,是现实和虚拟混合的产物。

如图1-5和图1-6所示,AR、MR和VR将会成为改变未来世界的三大技术。我们在这里重点掌握针对HTC Vive设备的VR开发技术。如果要用一句话来总结VR到底是什么,那么VR就是沉浸式的可自由交互虚拟空间体验,既可以是极度真实的,也可以是充满想象的。图1-5 AR增强现实图1-6 MR混合现实1.2 HTC Vive简介

本节介绍我们所针对的开发VR设备HTC Vive。相信很多购买本书的读者已经体验过这套设备了,有的甚至已经购买了一套或者几套。

这里针对那些对HTC Vive不太了解的读者进行一波简单的介绍。已经比较了解的读者可以自行跳过。

首先,我们来到HTC Vive的官网https://www.htcvive.com/cn/,可以看到Vive是由HTC和Valve联合开发。Vive结合了激情、天赋和创新,通过一流的技术和内容实现了虚拟现实的承诺。

HTC主要负责Vive的硬件方面,Valve主要负责配套的软件。在这之前不少人已经知道了这两家是非常有实力的公司,他们都在各自的领域取得了非凡的成就。

Valve所建立的Steam平台受到广大玩家的喜爱,这一次Valve将Steam平台和VR结合到了一起,并开发出了SteamVR来配套Vive设备,后面我们将详细介绍SteamVR。

接着,你可以看到基于Vive和SteamVR开发出的优质VR体验。如图1-7所示,你可以看到非常棒的游戏体验,而这些就是我们将要开发的游戏内容。图1-7 Vive游戏体验

借助精准的移动追踪和自然的操控手柄手势,体验空间定位游戏。借助前置摄像头,在需要时打量一下真实世界。无须摘下头戴装置即可打开应用程序和游戏。这是完全的沉浸式虚拟现实体验。

现在Vive官方还提供了全方位的服务,从购买到安装一条龙,你可以在https://www.htcvive.com/cn/setup/下载对应的设置向导和软件,以及设置视频和详尽的用户指南。1.3 HTC Vive诞生记

HTC和Valve是如何走到一起并共同创建Vive的?这期间历时四年多,接下来我们看看其中的曲折,似乎每一个美好事物的诞生都是历经这样的坎坷,即使是当事人回想起来也不乏有趣的地方。

如图1-8所示,许多Vive原型机陈列在HTC的旧金山设计工作室的展示桌上。图1-8 Vive原型机

这篇文章参考了一个国外开发者的博客(https://www.engadget.com/2016/03/18/htc-vive-anoral-history/),我觉得有必要在这本书中讲一下这段有趣的历史故事,所以就翻译了。在Vive诞生之前很久的一段时间,软件开发商Valve和手机生产商HTC都想往虚拟现实VR方向发展。2012年,VR开始慢慢地走回大众的视野。这一切开始于同年的5月,当时id Software的John Carmack演示了运行Doom 3的修改版Oculus Rift。接下来的一个月,他将Rift带到了受众更广的E3游戏大会。到了8月,Palmer Luckey在Kickstarter上线了Oculus的众筹活动,这次众筹打破了纪录。几乎一夜之间,Rift从让人好奇的原型机变成了一个真正令人激动的实物。在这一切发生的时候,Valve已经开始着手于自己的解决方案了。1.3.1 与HTC合作之前的ValveValve:打算用房子大小的设备杀入VR。

Valve早期在原型机上的努力是有迹可循的。在2012年的时候,它开发了一套简单的HMD(头显)系统,只要有一个摄像头和几个AprilTags就能确保定位追踪。如图1-9所示,AprilTags就好像是大一点、简单点的二维码,被广泛地运用在AR技术、相机标准和机器人中。Valve对这个实验不是很保密:当Oculus在Kickstarters上的众筹活动抢占各种头条的时候,这家公司在《纽约时报》上展示了它们的VR实验。

在它的追踪能够正常运行之后,新的问题又出现了:HMD上的图像依然模糊不清。在Valve实验的时候,这家公司意识到,对于游戏而言,短暂余辉屏是必需的。在这样的情况下,这意味着屏幕模组点亮背光只能花费1ms,而关闭背光只能花费9ms,以避免出现残影。为了证明它的理论,它最开始创造了一个能让你观察另一个三维空间的“望远镜”;然后它设计了一个定制的板材,将高帧率、低余晖的图像显示在现成的AMOLED屏幕上。图1-9 AprilTags提示余晖指显示残留的光辉,余晖时间表示图像残留的时间。余晖效应是指眼在观察景物时光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称为“后像”。视觉的这一现象则被称为“视觉暂留”。

如图1-10所示,这些背光板被嵌入了“又大又丑的头盔”(引用Valve Chet Faliszek的原话),继续测试。“我们想要的效果就在那儿,但我们并不确定它是否存在。”Faliszek表示。Valve的这个团队爱上了这个“房间大小”的、可在里面自由移动的VR设备。我们担心的是其商业化和质量的问题。毕竟没有人愿意将自己的墙壁弄成那样,我们也没有与之相配套的输入解决方案。看来,还缺点什么。图1-10 早期的VR原型机(Stuart Isett/The New York Times)1.3.2 与Valve合作之前的HTC深陷泥沼中的HTC:以VR为新方向。

在2013年以前,HTC是一家智能手机公司,但它的野心不止于此。“当时我们深知VR与智能手机行业的早期十分相似。”HTC VR方面的副总裁Daniel O'Brien解释道,“这是一种新的媒介,我们很清楚它就要来了。我们必须站在其前沿。”那意味着HTC要做原型机以及其他相关的事物。

因HTC One系列而出名的设计师Claude Zellweger当时正朝着这个方向推进。“我一直以来都受命于前CEO周永明——寻找智能手机以外的,能够将公司引领至新方向的新技术,之后建立了前沿概念团队。”

前沿概念团是一个不大的团队,但它孵化出了像潜望镜的Re Camera(见图1-11)和可穿戴设备Re Grip,但目前为止它孵化出来最有潜力的是Vive。期初,它被命名为Re Vive——一个独立于深陷泥沼的智能手机公司的新产品——但Re这个前缀渐渐从公司的市场宣传中淡去。周永明在辞去CEO职务后,接管了这个团队,并将团队重命名为“HTC未来发展实验室”。图1-11 HTC Re Camera

这个团队在试过了AR和VR技术后,才决定选择VR作为他们的主要发展方向。但是当三星抓住这个机遇将自己的旗舰手机和光学眼镜结合起来之后,HTC很快就放弃了“将VR与手机相结合”的这个想法。“我们认为它应当是一个完全不同的产品类型,需要有独立的解决方案,”现在已经是公司设计部门的一把手Zellweger表示道,“从那以后,我们就再也没有想过要将手机的屏幕作为VR设备的显示屏了。”最后HTC采用了以前在智能手机上相同的策略:尽早准备好,朝着高端方向去。

按照Zellweger的说法,HTC很巧合地和Valve走到了一起。1.3.3 The Oculus RiftOculus(见图1-12)与Valve和平分手。

到了2013年的时候,Valve的努力使得VR中的实时追踪更接近成功了。尽管Valve已经搭建好了基础,但它不打算自己做出一个设备来。为什么不呢?大众已经用他们的钱包给出了答案——Oculus筹集的资金达到了240万美元。在2014年1月的时候,Valve宣布它将和Oculus在追踪技术上共同合作推进“PC驱动VR”。它表示自己没有发布VR硬件的计划,但它也注释道,“这个计划在将来可能会有所改变”。图1-12 Oculus的头盔显示器

很明显,在某一个点上Oculus和Valve开始分道扬镳了。它们的分歧点可能在“VR应该是什么样”:Rift和Vive带来的体验肯定是不同的。Facebook收购Oculus暗示了在这几个月里Oculus切断了与Valve的沟通,这迫使Valve不得不去探索其他的路径。没有人知道其中的详细原委。我们只知道,在那年1月的时候,Luckey告诉媒体Valve的技术是“世界上最好的VR展示模型”,而到了春季的晚些时候,Valve和HTC的合作已经确定下来了。

关于那次会晤的细节没有公之于众。Zellweger将之描述为“Cher and Gabe”之间面对面的对话,Cher and Gabe分别代指HTC的联合创始人王雪红和Valve的联合创始人Gabe Newell。最后的结果,大家现在也知道了。1.3.4 HTC和Valve最终走到了一起Valve联姻HTC(见图1-13),Vive初现雏形。

协议签署完之后,开发者版设备的研发就开始了。“接下来的一周我们去了一趟Zellweger在旧金山的设计办公室,配置了一个贴满AprilTag的房间,”Faliszek说道,“当时他们(HTC)已经有一些关于头戴设备应该是什么样的设计稿。行动力实在是高。”

Zellweger回忆当时快节奏的情形说道:“我们反复地提出想法。那是与Valve沟通VR产品视觉形象的关键时刻,当时的设计还融入了追踪技术的早期形态……每个人都认为这样做出的产品一定很棒。”图1-13 在绘制原型稿时展示HTC设计想法的一块白板

尽管它在公众面前展示的Demo依然基于2012年开发而来的系统,但是Valve已经开始摈弃基于AprilTag不实用的系统。然后两个备选解决方案被提出来了:点追踪和激光追踪。点追踪的方案和你想象中的一模一样。控制器和头盔被点覆盖,一个静止的摄像头使用机器的视野来实时确定那些点的位置。第二个方案是激光追踪,将控制器和头盔上的点换成传感器,当然还需要单独的激光发射基站。

激光追踪能够提供最高的精准度,但是为了确保它能在房间大小的空间内正常工作,它对头盔会有很苛刻的要求——激光基站的发射器会快速旋转,并发出覆盖整个房间的激光,其中内建的LED还会以60次/秒闪烁。头盔上的传感器会检测各种光线,然后通过传感器接收激光和LED的时差来确定自己的位置。为了让测算更精确,头盔上需要布满大量不同朝向的传感器。

得知激光追踪是必需的技术之后,HTC开始脚踏实地研发开发者版本的设备。之后Valve拿出了一套激光追踪的原型。原型机能够正常使用,但外表粗糙不堪,还有暴露在外表的电线。Zellweger的团队必须将之转化成产品。从一开始,他们就利用3D打印技术来确定传感器的朝向,快速开始设计。在这个过程中,原型机在Valve总部、HTC旧金山的办公室以及台湾的工程团队之间往返了数次。“我们可以调整头盔,但我们决不能在追踪技术上做任何妥协。”O'Brien解释道,“追踪必须是完美的。”功能高于形态的原则在早期的原型头盔中就能看出端倪来。比如,使用3D打印模型的存在是为了测试传感器的朝向。尽管原型机毫无设计感可言,但它已经初具头盔的形状了。1.3.5 研发手柄控制器手势控制与手柄结合(见图1-14)。

一开始Valve的VR控制器完成度是比较低的。第一次在公众亮相的控制器只是在Steam控制器顶部加上了像大型‘龙与地下城'骰子一样的物体。在激光追踪系统方面的尝试也遵循简单的原则——直接将像触角一样的传感器加装到了游戏控制器上。但是这个团队很快意识到他们需要一些不同的事物。图1-14 早期VR控制器的两种尝试“这是历史上让人类重新开始的时刻,”Faliszek解释道,“我们说到,‘我们不需要X、Y、A、B等按键,我们要把创造的事物变得特别。’”Valve和HTC要做出来的控制器是两种既存的产品混合物——它有着2010版Sony PlayStation Move一样的基本形态,却增加了来自于Valve Steam控制器的精准输入和激光追踪传感器。

从第一代产品起,这个控制器就提供了优雅的解决方案。但是它们一开始并不是那么美观。第一代原型机是一圈电缆加装在一对弹簧夹板上的,当时是为了测试激光追踪系统使用的。很快它进化成了第一次在公众亮相的样子——由于它独特的外形,被称为“sombrero(墨西哥卷)”,。“墨西哥卷”没有太多的按键,显然它在一开始受到了很多开发者的抱怨。“他们一开始会说‘没有太多按键啊’,”Faliszek回忆道,“但是到了第二周之后,他们会说‘我不需要那么多按键啊,搞不好我连一个都用不到。’”大多数的常规操作在之前是需要一个按键来完成的,不过现在能用手势解决掉。Faliszek举了一个例子,以前需要“按I键打开道具栏”,现在只需要把手伸到背后,就好像真的从背包里取道具似的,这一手势就可以完成操作。1.3.6 Vive背后的开发者

在HTC和Valve开始合作后不到6个月内,他们就准备好与其他人分享这个版本的设备了。在2014年10月24日的时候,Valve邀请了一部分开发者拜访在华盛顿Bellevue的办公室,“我们让他们签署了保密协议,以确保他们能保守秘密,”Faliszek笑道,“这让人人都感到疑惑,但他们还是来了。”

在出席了第一次会议之后,开发者们给出了很多建议。他们坚持认为HTC和Valve不应该划分产品线——不要让消费者选择180°追踪或者360°追踪、是否与手柄绑定销售。一个产品只需要有一种配置。“我们也一直在考虑这个问题,”Faliszek说,“这次开发者们的建议更加坚定了我们的想法。”

2014年12月,第一批被称为“-v1”的开发者套件出厂,它们是由Valve的员工亲手制作、亲手递送和亲手安装的。过了一周后,HTC的生产线开始运转,越来越多的工厂机器也被送到开发者手上。

作为一家智能手机制造商,HTC在产品信息遭曝光上有着“丰富的经验”。所幸的是,Vive没有遇到这样的问题。“参与其中的有20多家公司,但没有一家泄密,”O'Brien说道。为什么呢?Faliszek将之归结于开发者们的“同志情谊”。由于拥有开发包的人有限,因此Valve为他们单独安排了一个隐秘的开发者论坛,这样他们就能交流开发经验、互相帮助了。

社区的好处在于开发者可以很自然地指出其他人在开发过程中出现的错误,但当一个开发者展示自己的开发成果时,其他人更多的是赞扬而不是挖苦讽刺。如图1-15所示,Vive手柄控制器凝聚着开发者的智慧,这些不断地促使着开发工作的推进。图1-15 Vive手柄控制器1.3.7 Vive惊艳亮相

在开发者们参与进来后,Vive项目保持快速的开发进度。HTC和Valve选定MWC 2015作为产品的首次亮相。第二场则选在了两周后专注于游戏的GDC 2015上。无论从哪一个方面来说,这次亮相都是成功的。如图1-16所示,试过无数个VR模型的记者们都被房间大小的Demo和头部以及控制器的精确追踪而折服。随后推广计划就被定了下来。在一年之后,正式开放预订MWC和GDC上展示的消费者版本。

值得一提的是,在这期间HTC Vive还经历了一次迭代,从Pre开发者版升级到了消费者版。第一眼看上去两者并无太大差别,但凑近一看,两者最明显的不同在于对细节的把握。最终版要比Pre版轻一些、小一些,头带也经过了一次重新设计。这些修改将设备的重心更多地靠近了脸部——这一点很重要,因为在移动的时候,设备会更加稳固。传感器也被藏起来了,镜片和头带的调整机制也得到了改进。最后,线缆更轻了,但依然显眼。虽然在移动的时候没有那么碍事,但依然能感觉到它们的存在。图1-16 在MWC 2015上试用Vive的记者

除了提升舒适度之外,在过去的一年里,头盔又增添了新功能:前置摄像头和麦克风。前置摄像头是出于安全考量加入的,以保证用户在使用设备的时候能与外界沟通。只需按下按钮,Vive就能够在你潜入虚拟世界的时候展现外部的情况。在最开始的时候,前置摄像头是计划之中的,但是无奈当时前置摄像头不工作。“于是我们只能在晚些时候再添加这一功能。”O'Brien表示。

有了麦克风,用户无须摘下设备即可接听电话。Pre开发者版其实也有麦克风,如图1-17所示,但是因为HTC在软件上没有弄好,所以在2月份公布售价的时候,没有补充说明麦克风的存在。图1-17 配上手柄和激光基站后的消费者版Vive1.3.8 Vive发售后的复盘

Faliszek、O'Brien和Zellweger都坦言,开发Vive的过程几乎没有遇到任何麻烦。鉴于Valve和HTC从两年前才开始合作,在这么紧张的时间内拿出产品也算是顺风顺水了。头盔、控制器以及基站已经走上产品线了。现在他们只需要售卖设备了。

假设Vive能够大卖(HTC没有公布具体的销售数字,但是他们连整个四月的存货都售空了),多久之后消费者需要将他们的设备升级到“第二代Vive”呢?一台主机能够坚持8年,一台顶级的游戏PC能够保持5年内不落伍,一台智能手机只能保证2年。HTC和Vive都不愿意透露出他们未来的计划,但是他们都坚信Vive能坚持很久。

这两家公司本可以造出一个更好的VR头戴设备——我们丝毫不怀疑这点,比如其单眼1200×1080的分辨率还能提升。但是瓶颈并不在于头盔,而是驱动它的PC。设备对于GPU的要求已经够高了——AMD Radeon R9 290或者NVIDIA GeForce GTX 970。这些显卡即使在发布数年之后,价格依然和PlayStation或者Xbox持平。“我们的想法是选一款超级高端的硬件作为标准,一年后就能够有足够的人负担起使用Vive的成本了。”

如图1-18所示,第二代Vive设备一定会出现。“到了特定的时刻,你肯定想要增加分辨率,”Faliszek承认道,“我们一定会从中学到一些东西,也一定会找出有意思的事情,但你不能草率地发布一款新品。”当PC显卡足以驱动90帧/秒的高分辨率画面时,我们很可能会看到一款新的Vive,但那也不意味着早期的用户会被抛弃。图1-18 Vive头盔的设计“我们已经明确地表示过了,”O'Brien坚定地说道,“消费者版一旦发售,我们就会更新Pre、v1、v1s版的开发者套件。我们已经设计了能够向后兼容的系统,也一定会持续地维持它们。”Faliszek补充道,“我们发布了这些设备后,它们就会像活物一般。这些硬件也会保持更新,我们将会照顾好它们,而不是发布新品之后就忘了它们。”第2章游戏引擎工欲善其事,必先利其器。本章主要介绍两款主流的游戏引擎,即Unity 3D和Unreal4 Engine。它们是我们开发VR游戏最重要的工具,各有优势。我们需要根据项目需求来选择适合的游戏引擎,这样才能做到事半功倍。2.1 Unity 3D引擎简介

Unity是一款端到端的游戏引擎,为创作多平台游戏与交互性体验提供一切所需的功能。在2016年7月28日发布了5.4.0f3版本,本书将使用这个版本来开发。

如图2-1所示,Unity提供了不同的购买方式,分别是个人版、加强版、专业版和企业版,你可以访问Unity官方网站https://store.unity.com/cn查看详细的区别。本书将采用免费的个人版来开发,以便于大家学习。图2-1 Unity商店

这里简单介绍下Unity 5.4版和VR相关的一些特点。新版本在图形和渲染上做了如下改进:● 更好的多线程渲染。● 用GPU实例来减少Draw Call次数,我们把Unity每次准备数据并

通知GPU渲染的过程称为一次Draw Call。● 改进了低层次图形特性,例如纹理贴图数组、计算着色器等。● 美术方面主要做出了两个大方向的改进:一是利用尺寸控制、新

的触发器模型和更好的光照Light Probe Proxy

Volumes(LPPV),使得粒子系统更加自如;二是引擎内置了对

动作向量的渲染支持。● VR方面的改进:引擎内置了更多平台的VR支持和更好表现。

Unity的下载、安装以及操作非常简单,本书不做引擎上的教学,所以读者必须先学会使用引擎才能继续学习VR方面的开发。

本书将在附录中提供大量的Unity 3D引擎学习资料,读者可以自行参考学习。2.2 虚幻4引擎简介

Unreal Engine 4又叫虚幻4引擎,我们一起打开网页浏览器到虚幻4引擎官网去看一看什么是虚幻4引擎,网址为https://www.unrealengine.com/zh-CN/what-is-unreal-engine-4。

如图2-2所示,虚幻4引擎是开源免费的,你可以免费注册加入Epic Game组织,在Github上获取引擎的源码。官网中“If you love something,set it free!”(爱他就给他自由)这句话有多重含义,读者可以自己去体会。图2-2 虚幻4引擎官网

虚幻4引擎是由游戏开发者制作并供游戏开发者使用的一整套游戏开发工具。从二维的移动平台游戏到主机平台的大作,虚幻4引擎赋予你启动项目、发布项目、不断成长完善并脱颖而出所需的一切功能。

你可以使用虚幻引擎技术制作你想完成的任意内容,无论是需要思考的解谜应用程序还是开放世界的动作游戏,都可以按你所需来完成。因为学生、独立开发者和大型团队都使用虚幻4引擎,所以它永不过时。

使用虚幻4引擎,你仅需学习一个引擎和一种工作流程,就能在现在和未来满足所需。从移动平台项目到超级高端的主机和PC游戏,虚幻引擎是全球独立游戏开发人士和专业游戏开发者的选择。

这些都是官方的介绍,本书将会使用4.12.5版本来进行VR开发。

同样的,引擎的下载、安装和操作都不是本书的主题,如果你想使用虚幻4引擎来开发VR,那么你必须要学会该引擎。

如果你是虚幻4引擎的新手,建议直接跳到前言先学习如何使用虚幻4引擎。当然,如果你看了目录,本书将先介绍Unity 3D引擎的VR开发,再介绍虚幻4引擎的VR开发。所以读者可以根据目录来寻找适合自己的内容进行学习,对于已经熟知的内容可以跳过,这样可以节省自己的学习时间,从而更加高效地获取知识。2.3 选择适合的引擎

之所以要介绍以上两种引擎,目的在于选择适合的引擎来开发。游戏引擎很多,然而并不是每一种都适合你的项目。

那么,这里的适合是什么意思呢?我们姑且把引擎看作工具,它既可以是一把锄头,也可以是一把扳手,或者是一把剪刀……首先要看它是否适合你使用,如果你是一个园丁,你拿着锄头种花花草草的就比较适合,也许你用着不太顺手,或者你不喜欢园丁这个职业,那么你也许会选择其他工具。然后要看你想要创造什么,如果你要缝制一套时装,那么你会毫不犹豫地选择剪刀,因为这就是你需要的工具。如果你选择了扳手,那么它将对你毫无帮助,甚至有可能扎到你的脚。

同理,也许这两个引擎都不是你想要的,那你可以毫不犹豫地把本书扔到一边。至少本书帮你明白了你需要的是什么,这很重要。

读者应根据自己的特性来选择引擎。如果你擅长C#编程,那么Unity 3D就可能比较适合你。如果你擅长C++,那么你可以放心大胆地选择虚幻4引擎。你也可以采用双引擎制动,根据项目来选择引擎。在双引擎制动的前提下,如果是移动端的项目,建议使用Unity 3D;如果项目在渲染上面有极高的要求,就建议使用虚幻4引擎。

有一点是非常明确的,即引擎只有为某一个项目独家定制的才是最适合的,而开发一款引擎需要耗费大量的成本,尤其是时间成本。

同样的,掌握多个引擎也是有代价的,术业有专攻,长期使用一个引擎可以使开发者更加专注,对引擎的理解也会随着时间增长而更加透彻。而且引擎的迭代更新是非常频繁的,也许你在阅读本书的时候又有了新的版本,不过还是建议你使用本书所使用的版本进行学习。

从长远来看,选择一个引擎作为自己的本命引擎,长期去学习和专研是可行的。这里简单对比分析一下两个引擎的特点,希望对你的选择有所帮助。

使用Unity 3D的开发者很多,而且它有一些开放式的架构,使得开发者可以制作插件。插件的帮助是非常巨大的,有时候一个插件可以节约你大量的开发时间,这使得Unity开发非常有效率。

相应的,Unity的其他资源也非常广泛,你可以找到大量的开发文档、教学视频、场景模型等资源。在Github开源社区也有很多Unity开源项目可以学习,大大降低了学习Unity的门槛。

虚幻4引擎在渲染方面的卓越表现也吸引了大量的开发者,其中包括一部分Unity用户,虚幻甚至在开发文档中公开欢迎Unity的开发者转移到虚幻引擎的阵营。

虚幻甚至采用了多语言的机制来迎合开发者,你可以看到半中文的引擎操作界面和中文的开发手册以及越来越多的教学视频。

如果你是一个Unity的使用者,那么在学习虚幻的时候会更加轻松快速——虽然两个引擎有很多不同的表现,但是在操作上有很多相似之处。

在渲染风格上,虚幻引擎的画面更加写实,而Unity带有一种特别的风格,有点像印象派的作品。建议选择Unity来开发一些充满想象力的幻想风格的项目,选择虚幻4引擎来开发一些效果比较贴近真实的现实模拟游戏。

先不必急于选择一个引擎来做开发,可以列出一个表综合分析一下哪个引擎更适合所要做的项目。第3章SteamVR磨刀不误砍柴工!本章介绍HTC Vive开发中最重要的基石SteamVR,只有充分理解SteamVR,才能在开发中得心应手,创造最佳的虚拟现实体验。这里从理论到实践,层层递进地介绍,以便于读者更好地理解并应用到实战中。希望读者能够循序渐进,从理论到代码,再从代码到应用。这是一个需要耐心的过程,就像是上山砍柴之前磨刀的过程一样,足够的耐心可以把刀磨得很锋利,这个过程是十分重要的!3.1 SteamVR简介

这里简单介绍SteamVR是什么,后面再深入到引擎、代码、游戏案例里面去解析。为什么要如此深入地去了解SteamVR呢?因为SteamVR是HTC Vive开发中最重要的基石,只有充分理解SteamVR,才能在开发中得心应手,创造最佳的虚拟现实体验。

说到SteamVR,我们不得不说一下Steam平台,它是由知名的游戏公司Valve所开发的游戏内容平台。相信很多爱玩游戏的朋友都接触过Steam,访问它的官网http://store.steampowered.com/,可以看到这个平台上数量庞大的游戏。

如图3-1所示,这是一款发布在Steam平台上比较流行的多人在线生存类游戏《一起闹饥荒》。Valve将OpenVR和Steam平台结合在一起开发出了SteamVR,这是一个非常有远见的战略,未来的VR内容平台必然是炙手可热的。图3-1 Steam平台《一起闹饥荒》

那么OpenVR又是什么呢?

OpenVR是由原本的SteamWorks更新而来的,是VR硬件和软件之间的桥梁,是开发者的API接口。OpenVR新增了对HTC VIVE开发者版本的支持,也包含Steam VR的控制器及定位设备的支持。相关的API是基于C++编程语言的接口,已有C++经验的开发人员可以直接学习。

你可以在Github开源社区(https://github.com/ValveSoftware/openvr)找到OpenVR开源代码库、开发文档和开发案例。开发文档说明(英文)针对主要界面解释使用方法,包含IVRSystem、IVRChaperone、IVRCompositor、IVRRenderModels及IVROverlay。从开发案例(hellovr_opengl、helloworldoverlay等)即可快速学习如何建立VR的方法,逐步修改成为自己的应用。由于范例使用了Visual Studio套件的项目格式,因此可自行到Microsoft网站下载或是直接使用编辑器查看.cpp。

在OpenVR的基础上有了SteamVR,我们这里再从理论上看一下SteamVR是如何结合HTC Vive工作的。

首先,HTC Vive提供了两个基站,我们将它们分别架设在一个空间的两端互为犄角,从而建立起一个定位空间。我们将这个空间称为Light House,因为在这个空间中布满了我们看不到的激光。

如图3-2所示,我们也可以把这个毫米级的激光定位系统叫作Fun House。它是我们的一个VR娱乐空间,你可以在里面体验到非常好玩的事物。图3-2 激光定位

如图3-3所示,你可以根据房间的大小得到不等的活动空间,最大12平方米。也就是说,两个基站连成一条对角线,最长为5米。图3-3 Light House

SteamVR会根据激光数据精确地定位头盔和两个手柄的位置,让玩家更精确地在游戏中进行交互,从而得到更棒的VR体验。

如图3-4所示,当你靠近这个Light House边界的时候就会触发SteamVR里面的CHAPERONE导护系统,它会将虚拟边界绘制成绿色的网格光墙,提示我们以免撞到现实中的物体。图3-4 CHAPERONE导护系统

当然了,SteamVR怎么能够少得了Steam呢,当你按下手柄上的System系统按钮时就会呼出Steam界面,如图3-5所示。图3-5 呼出Steam界面

以上这些就是SteamVR的简介了,我们将在后面深入研究。3.2 SteamVR Plugin解析

Valve为了让Unity的开发者更好地开发出VR游戏,在SteamVR的基础上为Unity开发出了SteamVR Plugin。有了这个插件,就再也不用担心我们开发不出好玩的VR游戏了!同时,为了大力支持开发者研发出更多的VR内容,这个插件是免费提供给广大开发者的。

先打开Unity 5.4版本游戏引擎,然后打开资源商店,在搜索栏中直接输入SteamVR Plugin就可以找到它,接着单击下载。在完成下载后单击“导入”按钮,如图3-6所示。图3-6 SteamVR Plugin

导入后会弹出一个小窗口,里面有一些VR相关的必备设置,直接单击Accept All即可,最后会弹出一个You made the right choice对话框,单击OK按钮就完成了插件的导入。因为操作非常简单,这里就不截图了。

完成导入之后,你会发现在Assets文件夹下多了一个SteamVR文件夹,在该文件夹下有一个叫作quickstart的PDF文件。我们将其打开,里面有一个快速开始的简单教程。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载