第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-an- oral-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合作之前的Valve Valve:打算用房子大小的设备杀入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 Rift Oculus(见图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 配上手柄和激光基站后的消费者版 Vive 1.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 补充道,“我们发布了这些设备后,它们就会像活物一般。这些硬件也会保持更新,我们将会照顾好它们,而不是发布新品之后就忘了它们。”