虚拟现实正向游戏走来

编译: 启迪星云工作室 firefly

 
  随着计算机图形技术的飞速发展,虚拟现实(virtual reality)这个名词已经越来越多的为人们所熟知。但是实际上,很少有人真正见过或 者了解虚拟现实的最高水平是什么样的。虽然现在的电影电视甚至游戏中都大量的使 用了VR这样的名词,但实际上虚拟现实目前仍然只能在少数超级实验室里才能见到 。我们平常所见的那些3D场景,无论是影片中还是游戏中,最多只能算是“虚拟” ,但与“现实”的境界还相差甚远。虚拟现实不仅要求有实时的、逼真的、高解像度 的3D场景,而且需要有一套复杂的交互感应设备,以此来实现人与环境的现实融合 。当我们坐在一台普通的电脑面前,看着屏幕上的3D画面,用鼠标或者键盘来操作 角色的运动时,这称不上是虚拟现实,因为你看到的实际上仍然是一个平面的显示器 画面,你也没有置身于虚拟的环境之中。真正的虚拟现实必须是能够把观察者“放入 ”虚拟环境之中,并通过最自然的操作来完成输入输出。换句话说,在虚拟现实里, 你所能看到和听到的,只有计算机生成的三维场景,这需要一些特殊的显示设备,比 如头盔式的液晶显示器,同时还要有强大的计算机以及图形系统来生成实时的3D画 面,再伴以一些能够捕捉空间动作的传感器来进行输入输出操作。记得几年前我们在 国防科工委的某研究所接受培训,当时国家863计划人工智能课题组的首席科学家曾 给我们上过一堂课,讲的就是虚拟现实的发展。在一部片子里,我见过一些比较高级 的虚拟现实系统,它们可以使使用者身临其境的感受到一些建筑物的内部结构,并与 之发生互动。最有趣的是,当实验者带上一种特制手套时,他的视觉中会出现一个一 样的虚拟手,这个手的动作与现实中实验者的手部动作完全一样,包括所有的手指。 据那位专家讲,这种手套的机械结构并不复杂,但它需要一套很高级的算法做支撑。 而开发这套算法的人,据说是原来中科院计算机所的某个人。当时我们看到的虚拟现 实的画面,说实在的未必比现在游戏中的3D画面好,但它是实时的,这一点游戏比 不了。现在的游戏3D画面虽然也有很多的实时成分存在,但它受硬件条件的限制, 不可能做的非常细腻,总要采取很多的“投机”手法。比如多边形的数量在游戏中必 须受硬件机能的限制,而最真实的处理物体表面的光线与纹理特征的光线跟踪算法, 在游戏中也无法使用,因为那根本不是普通的PC机所能承受的。至于说头盔式显示 器或者动作捕捉设备则更加难以进入消费PC领域。
  虚拟现实技术几乎是所有发达国家都在大力研究的前沿领域,它的发展速度 也非常迅速。许多过去无法想象的事情正逐渐的变成现实。以下文字是国外某网站对 NCSA(美国国家超级计算应用中心)的一个研究人员进行的专访。他在NCSA中利 用大型计算机系统开发了一套称之为Cave的系统,这套系统被应用到了许多领域, 其中包括大家所熟悉的QuakeII游戏。经过Cave改编的QuakeII为使用者提供了无与 伦比的真实性,这种真实性是普通的PC机所无法比拟的。虽然我们现在还无法见到 或者使用这样的高级虚拟现实系统,但了解一下相信会有益处。我相信在不久的将来 ,这样的虚拟现实一定会真正的变成平常的现实。以下是专访的详细内容。 问:NCSA是什么?
   Paul Rajlich(NCSA的一位研究人员,Cave系统的开发者):NCSA就是国家超级计算 应用中心。它是由国家自然基金会(NSF)资助,建在伊利诺伊大学的一所附属研究 中心。我们所拥有的计算机是世界上最大的超级计算机之一,为世界各地的研究人员 提供服务。为了维持庞大的硬件费用,并且利用我们的优势探索新的技术领域,NCS A一个很大的工作内容就是开发各种应用程序。这些应用程序可以使我们的用户能够 更加有效的使用我们的计算设备。 问:你在这里做什么工作?
   Paul Rajlich:我是NCSA视觉与虚拟现实小组的程序员。我的工作是帮助科学家们理解他 们所处理的数据。我们这里有很多的仿真程序,它们在超级计算机上运行,产生海量 的数据。而使人们理解这些数据的含义的唯一办法就是把这些数据视觉化。这就是说 ,这些数据将被映射或转换成图形。如何完成这样的工作是一个完整的学科领域,称 之为“视觉化”。你必须选择合适的表达方式来将你在那些数据中寻找的规律变成可 以看见的东西。视觉化的一个大家所熟悉的例子就是我们在电视新闻中看到的天气预 报。 问:那么准确的说Cave是什么呢?它能干什么?
   Paul Rajlich:我很幸运,可以利用世界上最好的图形平台来开发我的应用软件!由于超级 计算机所产生的数据是如此的庞大。所以我使用了一台超级图形计算机来把它们变成 可以看见的图形。Cave是一套价值数百万美元的艺术级的虚拟现实系统。它可以描 绘出由真实的墙壁所构成的房间,包括你脚下的地板。无论你朝哪里看都是高解析度 的图象。你戴着LCD立体眼镜,这可以使图象整个的包围你的视线,非常类似于三维 的环幕电影,只不过这并非是电影。整个系统可以实时的彻底的与你发生交互并作出 响应。
  系统不仅有立体的全景图象,而且还有头部跟踪功能。这个功能的作用是系 统能够准确的测定你的头部位置,并知道你现在正在朝哪个方向观看。系统可以追随 你的视线实时的描绘出虚拟的场景,这样,你就不必象在普通的计算机3D图形应用 软件中(比如3D游戏)那样,去按键盘来转换你的视角了。你可以非常自然的运动 ,假如你想看下面,那就朝下看好了;假如想看看周围的情景,那就直接环顾左右。 这种通过转动头部来转换视角的能力,使得Cave的虚拟现实程度比那些仅仅拥有广 大的立体图象的系统更加优越。
  头部跟踪视角还能够提供更进一步的处理,称作“运动视差”。有研究表明 ,在景深透视中,运动视差要比立体感觉更加重要。实际上,在普通人群中有相当大 的一部分——大约又20%——甚至无法看出立体照片的立体效果(注:记得有段时间 街上到处出售的立体图象的画册吗?这里说的就是那种立体图象。)你每天都在使用 运动视差而可能并未察觉,当你转动你的头部时,近处物体的移动速度感觉上要比远 处的快,这就是运动视差。 问:这听起来是个非常强大的系统。这套系统的价格是多少?
   Paul Rajlich:一套Cave系统大约价值数百万美元。我们的机器采用的是SGI Onyx2 RealityMonster,这是最顶级的图形计算机。我们的机器有2个处理器,9GB的内存 ,四块InfiniteReality2图形卡(每一块的售价大约是10万美元),这些显卡的个头比 你机器中的主板还大。SGI是硬件图形加速领域的先锋,你有可能没听说过它,因为 它的硬件实在太昂贵了,一般主要用于电影特级效果或者某些顶级的专业领域,比如 Cave。然而,SGI为PC上的3D图形开发了很多硬件和软件。举例来说,OpenGL就 是其中之一。大多数廉价的PC图形卡都支持OpenGL的子集,这一子集是游戏所需 要的。实际上只有SGI自己的机器才能正确的完全运行所有的OpenGL函数,这些机 器运行得非常出色,特别是不用担心驱动程序方面有任何的问题,因为这些机器本身 就是建立在OpenGL之上的。 虽然Cave是运行在SGI的机器之上,但Cave系统本身是在位于芝加哥的伊利诺伊大 学内的电子视觉实验室开发的。第一套Cave诞生于那里。我们在NASA的Cave是第 二套Cave系统。现在全世界有40多套Cave系统。 现在,我要告诉你:在这篇专访中的Cave图片并不能反映Cave的本来面目,要了解 它的真实情况,你必须亲身尝试。我第一次见到Cave是在1996年,我简直惊呆了, 立刻就喜爱上了它。 问:我敢说这套系统不是专为游戏建造的,那么它通常是被用来做什么呢?
   Paul Rajlich:前面我已经提到过了,我们主要把Cave用于科研方面的视觉化应用。举个 典型的例子,一个专家利用超级计算机生成了海量的数据,现在他想解释这些数据的 意义。于是我们这个小组的成员就要帮助专家在我们的Cave上看到那些数据。我们 要为专家专门编写应用程序,帮助他通过图形的方式去交互的浏览那些数据。
  Cave的其他许多应用是建立虚拟原型以及辅助建筑设计。想象一下,假如 你要设计一辆轿车,建造一个全尺寸的模型是非常昂贵的,相比较而言Cave就比较 便宜,你可以在Cave上建造一个虚拟模型并随意观看。你可以一点一点的围着它转 ,从各个角度审视它,甚至可以走进汽车的内部,坐到驾驶员的位置上去观察。建筑 设计与此类似。想象一下,假如你是个建筑师,与其建造一个小比例的建筑模型,不 如利用Cave在你的虚拟建筑内走一走,在真正修建以前看看各处将来会是怎么样的 。虚拟现实的一个最大好处就在于,因为它是虚拟的,所以你可以很容易的改变自己 的尺寸。你可以变成一个巨人,也可以变成一只小耗子。你可以探索整个宇宙,也可 以钻进原子的内部。 问:你是怎么想到要用Cave重做一个游戏的?
   Paul Rajlich:我一看到Cave,首先想到的就是:这是个终极的游戏平台!我知道总会有 人去做这件事情,那么为什么不由我来做呢?我有很多理由去这么做。现在的游戏拥 有非常丰富的环境,而我们这些Cave的开发人员却缺乏类似的资源,也没有那么多 时间去为Cave软件开发同样水准的艺术图形。我知道,如果从游戏中引入这样一个 丰富多彩的世界,将能更好的展示出Cave的巨大潜能。与此同时,我还知道,假如 我去重建一个PC游戏,那么就等于重建了一个大家比较熟悉的环境,前来参观的人 们将看到一些曾经见过的景象,但在Cave上却会有一种全新的感受。这将更好的体 现出虚拟现实的潜能。 问:你为什么会选择Quake II呢?
   Paul Rajlich:我所做的第一个Cave程序实际上是Cave Doom(注:将Doom游戏移植到Cave系统上),那是我为虚拟现实课程而进行的假 期实习。到最后,我可以让主角在游戏第一章的关卡中走动了。我确实在游戏中增加 了一些怪物以及火箭发射器,然而,要让这些物体在真正的游戏中动起来,我就不得 不自己去做它们的3D模型。正如你所猜测的那样,这些东西看起来实在是很粗糙简 陋。嘿!我是个程序员,不是3D建模的专业人员。
  在Cave Doom之后,我开始作为一个研究助理在这里工作。随后我上完了研究生并成为NCS A一个全职员工。Cave Doom的演示程序非常流行,我把它向很多人演示过。后来我的弟弟Luke也来这里参 观,他看了我的演示之后的反应是:“这太酷了!不过Quake会比这更好!”于是我 接受了他的建议。 问:你是怎么做的呢?
   Paul Rajlich:我用Performer编写了一个游戏引擎。Performer是SGI建立在顶级OpenG L上的一套景象API。之所以使用Performer有两个主要的原因。其一是我想学习Perf ormer,第二是Paradigm Simulation公司的Rick Weyrauch已经做了一部分类似的工作,用Performer将Quake II文件转换成Performer格式。
  我继承了他的工作成果,并加以改进,使其能够与Cave系统的库函数相吻 合。Cave系统的库函数可以使Cave软件的开发变得更容易一些。有了转换过来的数 据,我就可以把Quake II的模型载入Cave系统,并在Cave里面看到它们了。
  接着,我开始开发游戏引擎。从本质上说,我是把原来游戏中的代码移植过 来,但我也对原来的引擎做了一些修改。之所以这么做,是因为Cave中的交互性与 普通的游戏界面有着本质的区别。即使我拿到了真正的游戏引擎(注:Quake II的引擎不是免费的),恐怕也不得不将其重写以适应Cave。比如,在CAVE QUAKE II中,你可以立即把枪指向你的视线所注意的方向,就象现实中的那样。
  最终的CAVE QUAKE演示程序并非是原来的Quake II了,但不管怎么说,它还是体现出了Quake II在Cave系统中的所应该具有的样子。它证实了头部跟踪视角的优越性。你可以想看 哪就看哪,只需要动动头部。而且连身体动作也如此。你想往下看,就低头往下看; 你想蹲下,就直接做蹲下的动作。转动头部就可以看清周围的每一个角落。我们所使 用的输入设备叫做“权杖”,也是可以跟踪定位的。在你的视线中,枪的位置就是你 手中的权杖的位置,而且被很好的定向。你所要做的,就是把权杖指向你要瞄准的目 标并按动按钮。 问:开发这套程序花了多长时间?
   Paul Rajlich:编制引擎的基础部分花了我大约三个月的业余时间。然而,从那以后我又花 了很多时间增加了越来越多的功能。现在,你可以玩单人游戏,也可以与另外一套C ave系统展开一对一的deathmatch对决。 问:你的程序与普通的游戏程序之间有多大差别?
   Paul Rajlich:从某些方面来说,Cave的程序设计与普通的游戏程序设计非常类似。图形 部分是一样的。两者之间唯一的区别恐怕在于,普通游戏的每一帧只需要从一个角度 进行渲染,而Cave却需要从八个角度进行渲染,这些角度取决于跟踪器的信号。这 也就是Cave需要极其强大的图形处理能力的部分原因。每只眼睛所看到的图象都包 括四层(总共八层),每一层图象都是最高分辨率即1280x1024。
  然而,在Cave程序中有一些实现上的难题是在普通游戏程序中所不会遇到 的。比如说,头部跟踪视角有时会产生一些冲突。假如在Cave中有一个物体,比如 前面有一堵墙,你无法阻止使用者穿墙而过,因为它是虚拟的,根本就不存在。要解 决这个问题,你就必须做到,当使用者朝那堵墙走去,当他们即将发生碰撞时,要使 整个虚拟世界的坐标顺着使用者的前进方向向后移,这样那堵墙就会始终保持在使用 者的面前。想想这会是个多么复杂的问题吧。(注:这段话反映出了虚拟现实游戏与 普通游戏的本质区别。在普通游戏中,游戏者处于游戏之外,操作着屏幕内的角色移 动。在通常情况下不可能发生穿墙而过这样的事情。而虚拟现实则不同,在那里,游 戏者与游戏角色是合二为一的,你自己的动作就是游戏主角的动作。计算机可以阻止 一个虚假的图象在墙壁前停止,但它无法阻止真人的行动。仔细想象一下的话,你就 会感受到两者之间的可怕差别。)
  当然,Cave系统是个多处理器的系统,它能够使成打的程序指令共享内存 并同步运行。 问:游戏工业界有哪些人参观过CAVE Quake II?他们都有什么看法呢?
   Paul Rajlich:我已经把我的程序给很多人演示过,其中包括一些游戏界的传奇人物,比如 Mike Kulas(Volition的总裁,天旋地转的制作人),Ed Boon(Mortal Kombat制作人),以及Mike Abrash(Quake I的程序员)等等。他们对此的评价都是非常积极的。我记得Ed Boon在使用Cave时曾经在一个虚拟的大坑前跪倒了下来,他意外的“掉了下去”。 这把他吓坏了。当他察觉到自己实际上是站在地板上时,便哈哈大笑起来。Mike Kulas来参观过两次,第一次是把Volition全公司的人都带来一起参观;第二次是在我 向Abrash做演示时自己来的。
  总的来说,每一个看过CAVE Quake II的人都很喜爱它。世界上大多数的CAVE网站都在运行这个Demo。在Cave Quake II中,你会看到真实尺寸的怪物。当一个巨大的怪物站在你面前,而你的脑袋才到它 的腰部时,你会感到一种巨大的压力!
  deathmatch则更加精彩!想象一下,当一枚火箭弹直朝你的面门飞来时的 感受,你不可能不感到恐惧。我见到过一些老年人在Cave游戏中试图躲避子弹的动 作,那真的是非常有趣…… 问:John Carmack(id Software的掌门人)是否知道CAVE Quake II?
   Paul Rajlich:我敢肯定他知道,但我没有听到过他的意见。Kulas和Abrash都是他的朋友 ,但我不知道他们是否和他谈起过这事。我确实收到过id Software发来的几页书面请求,而且我还与Paul Steed交换了各自的e-mails信箱。 问:你还用Cave做过其他与游戏相关的东西吗?
   Paul Rajlich:做过。Mike Kulas对Cave的印象非常深刻,所以他给了我一些Volition正在制作中的RPG游戏Su mmoner(召唤者)的素材。我花了几天时间编写了一个简单的Cave程序,使你可以 在游戏中的一个关卡中走动,这一关叫Wolong(卧龙?)。这是一个亚洲的村庄, 里面表现了一些将在游戏中使用的非常棒的艺术画面。Volition的一些美工到我这里 来观看效果,并对此感到非常新鲜有趣。 问:虚拟现实能为游戏做些什么?游戏又能为虚拟现实带来什么呢?
   Paul Rajlich:虚拟现实是一个交叉的学科领域。它综合了硬件、软件、行为学以及心理学 等多种学科。我相信,对虚拟现实的研究将为游戏提供更好的技术,使其变得更真实 和更有吸引力。
  与此同时,游戏也可以对虚拟现实提供巨大的帮助。游戏可以帮助虚拟现实 去产生更丰富的内涵。现在,谁还会去做那种只有几个场景的单调的游戏?正如我前 面所提到的,象我们这些为虚拟现实开发应用软件的人,一般都没有能力和时间去建 造一个能与现在的游戏相媲美的世界。游戏恰好可以填补我们这方面的不足。 问:听起来这好象是说,有一天我在自己家里也能用上这样的系统。什么时候虚拟现 实才能变得便宜一些?什么时候游戏与虚拟现实才会走到一起呢?
   Paul Rajlich:要使游戏与虚拟现实走到一起,首先必须是虚拟现实系统要变得更便宜并更 强大。我个人并不认为这是很遥远的事情。在NCSA的今天,我们所花费的数百万美 元就是为了占领几年后的技术前沿。从本质上说,这就是我们未来的样子。正象Willi am Gibson说的那样:“未来就在这里……只不过现在还无法被所有人分享。”
  我要特别指出,对于娱乐行业来说,类似于Cave这样的系统甚至在今天就 可以变得很廉价。就我在NCSA所做的工作来说,由于需要处理大量的数据,所以我 需要强大的计算能力,需要很高的输入输出带宽,需要极大的几何绘制能力,因此我 需要SGI Onyx2。而现在硬件几何加速已经出现在PC屏幕上了。GeForce 256提供了数百万的多边形装配能力。然而游戏程序一般来说更加看重的是纹理应用 ,因此现在最新的PC图形卡在纹理填充与渲染方面已经能够与高端的SGI卡相媲美了。
  所以,我觉得用于游戏的类似于Cave这样的系统已经距离我们并不遥远了 。事实上我正在开始研究一种称之为VisBox的系统,它与Cave有些类似。我现在能 说的也就这些了,不过以后你会得到更多的消息。
高晶 □ 葵花宝典 □ 来自网上的攻略