梦离我们并不遥远——访NCSA技术人员 启迪星云工作室 firefly 编译 2000年 第19期   随着计算机图形技术的飞速发展,虚拟现实(Virtual Reality)这个名词已经越来越多地为人们熟知。虽然现在的电影电视甚至游戏中都大量使用了VR这样的名词,但事实上虚拟现实目前只能在少数超级实验室里才能见到。我们平常所见的那些3D场景,无论是影片中还是游戏中,最多只能算是“虚拟”,与“现实”的境界还相差甚远。真正的虚拟现实必须是能够把观察者“放入”虚拟环境之中,并通过最自然的操作来完成输入输出。换句话说,在虚拟现实里,你所能看到和听到的,只有计算机生成的三维场景,这需要一些特殊的显示设备,比如头盔式的液晶显示器,同时还要有强大的计算机以及图形系统来生成实时的3D画面,再伴以一些能够捕捉空间动作的传感器来进行输入输出操作。   虚拟现实技术几乎是所有发达国家都在大力研究的前沿领域,它的发展速度也非常迅速,许多过去无法想象的事情正逐渐变成现实。以下文字是对NCSA(美国国家超级计算应用中心)的一个研究人员保罗·拉里奇进行的专访。他在NCSA中利用大型计算机系统开发了一套称之为Cave的系统,这套系统被应用到了许多领域,其中包括大家所熟悉的Quake2游戏。经过Cave改编的Quake2为使用者提供了无与伦比的真实性,这种真实性是普通的PC机所无法比拟的。(^19060201a^)   记者:NCSA是什么?   保罗·拉里奇:NCSA就是国家超级计算应用中心。它是由国家自然基金会(NSF)资助,建在伊利诺伊大学的一所附属研究中心。   记者:那么准确地说Cave是什么呢?它能干什么?   保罗·拉里奇:Cave是一套价值数百万美元的艺术级的虚拟现实系统。它可以描绘出由真实的墙壁所构成的房间,包括你脚下的地板。整个系统可以实时地与你发生交互并作出响应。   记者:这听起来是个非常强大的系统。这套系统的价格是多少?   保罗·拉里奇:一套Cave系统大约价值数百万美元。我们的机器采用的是SGI Onyx2 Reality Monster,这是顶级的图形计算机。我们的机器有两个处理器,9GB的内存,四块InfiniteReality2显卡(每一块的售价大约是10万美元),这些显卡的个头比你机器中的主板还大。SGI为PC上的3D图形开发了很多硬件和软件,举例来说,OpenGL就是其中之一。大多数廉价的PC显卡都支持OpenGL的子集,这一子集是游戏所需要的。实际上只有SGI自己的机器才能正确地运行所有的OpenGL函数,这些机器运行得非常出色,特别不用担心驱动程序方面有任何的问题,因为这些机器本身就是建立在OpenGL之上的。   记者:我敢说这套系统不是专为游戏建造的,那么它通常是被用来做什么呢?   保罗·拉里奇:前面我已经提到过了,我们主要把Cave用于科研方面的视觉化应用。举个典型的例子,一个专家利用超级计算机生成了大量的数据,现在他想解释这些数据的意义。于是我们这个小组的成员就要帮助专家在我们的Cave上看到那些数据。   Cave的其他许多应用是建立虚拟原型以及辅助建筑设计。想象一下,假如你要设计一辆轿车,建造一个全尺寸的模型是非常昂贵的,相比较而言Cave就比较便宜,你可以在Cave上建造一个虚拟模型并随意观看。你可以从各个角度审视它,甚至可以走进汽车的内部。再想象一下,假如你是个建筑师,与其建造一个小比例的建筑模型,不如利用Cave在你的虚拟建筑内走一走。   记者:你是怎么想到要用Cave重做一个游戏的?   保罗·拉里奇:我一看到Cave,首先想到的就是:这是个终极的游戏平台!我知道总会有人去做这件事情,那么为什么不由我来做呢?我有很多理由去这么做。现在的游戏拥有非常丰富的环境,而我们这些Cave的开发人员却缺乏类似的资源,也没有那么多时间去为Cave软件开发同样水准的艺术图形。我知道,如果从游戏中引入这样一个丰富多彩的世界,将能更好的展示出Cave的巨大潜能。   记者:你为什么会选择Quake2呢?   保罗·拉里奇:我所做的第一个Cave程序实际上是Cave Doom(注:将Doom游戏移植到Cave系统上),那是我为虚拟现实课程而进行的假期实习。我确实在游戏中增加了一些怪物以及火箭发射器,然而,要让这些物体在真正的游戏中动起来,我就不得不自己去做它们的3D模型。正如你所猜测的那样,这些东西看起来实在是很粗糙简陋。因为我只是个程序员……   在Cave Doom之后,我开始作为一个研究助理在这里工作。随后我上完了研究生并成为NCSA一个职员。Cave Doom的演示程序非常流行,我把它向很多人演示过。后来我的弟弟Luke也来这里参观,他看了我的演示之后的反映是:“这太酷了!不过换成Quake会比这更好!”于是我接受了他的建议。   记者:你是怎么做的呢?   保罗·拉里奇:我用Performer编写了一个游戏引擎。Performer是SGI建立在顶级OpenGL上的一套景象API。之所以使用Performer有两个主要的原因。其一是我想学习Performer,第二是Paradigm Simulation公司的耐克已经做了一部分工作,用Performer将Quake 2文件转换成Performer格式。我继承了他的工作成果,并加以改进,有了转换过来的数据,我就可以把Quake 2的模型载入Cave系统,并在Cave里面看到它们了。   接着,我开始开发游戏引擎。从本质上说,我是把原来游戏中的代码移植过来,但我也对原来的引擎做了一些修改。之所以这么做,是因为Cave中的交互性与普通的游戏界面有着本质的区别。即使我拿到了真正的游戏引擎(注:Quake2的引擎不是免费的),恐怕也不得不将其重写以适应Cave。   最终的CAVE QUAKE演示程序并非是原来的Quake2了,但不管怎么说,它还是体现出了Quake2在Cave系统中的所应该具有的样子。它证实了头部跟踪视角的优越性,你可以做任何你想做并能做的事。我们所使用的输入设备叫做“权杖”,是用来跟踪定位的。在你的视线中,枪的位置就是你手中的权杖的位置,而且被很好地定向。你所要做的,就是把权杖指向你要瞄准的目标并按动按钮。   记者:开发这套程序花了多长时间?   保罗·拉里奇:编制引擎的基础部分花了我大约三个月的业余时间。然而,从那以后我又花了很多时间增加了越来越多的功能。现在,你可以玩单人游戏,也可以与另外一套Cave系统展开一对一的deathmatch对决。   记者:你的程序与普通的游戏程序之间有多大差别?   保罗·拉里奇:从某些方面来说,Cave的程序设计与普通的游戏程序设计非常类似。图形部分是一样的。两者之间唯一的区别恐怕在于,普通游戏的每一帧只需要从一个角度进行渲染,而Cave却需要从八个角度进行渲染,这些角度取决于跟踪器的信号。   然而,在Cave程序中有一些实现上的难题是在普通游戏程序中所不会遇到的。比方说,头部跟踪视角有时会产生一些冲突。假如在Cave中有一个物体,比如一堵墙,你无法阻止使用者穿墙而过,因为它是虚拟的,根本就不存在。要解决这个问题,你就必须做到,当使用者朝那堵墙走去,当他们即将发生碰撞时,要使整个虚拟世界的坐标顺着使用者的前进方向向后移,这样那堵墙就会始终保持在使用者的面前。想想这会是个多么复杂的问题吧。   当然,Cave系统是个多处理器的系统,它能够使成打的程序指令共享内存并同步运行。   记者:游戏工业界有哪些人参观过Cave Quake2?他们都有什么看法呢?   保罗·拉里奇:我已经把我的程序给很多人演示过,其中包括一些游戏界的传奇人物,比如麦克·库拉斯(Volition的总裁,天旋地转的制作人)以及麦克·阿布拉奇(Quake的程序员)等等。他们对此的评价都是非常积极的。我记得艾德·布恩在使用Cave时曾经在一个虚拟的大坑前跪倒了下来,他意外的“掉了下去”。这把他吓坏了。当他察觉到自己实际上是站在地板上时,便哈哈大笑起来。麦克·库拉斯来参观过两次,第一次是把Volition全公司的人都带来一起参观;第二次是在我向麦克·阿布拉奇做演示时自己来的。   总的来说,每一个看过Cave Quake2的人都很喜爱它。世界上大多数的Cave网站都在运行这个Demo。在Cave Quake2中,你会看到真实尺寸的怪物。当一个巨大的怪物站在你面前,而你的脑袋才到它的腰部时,你会感到一种巨大的压力!   记者:约翰·卡马克(id Software的掌门人)是否知道Cave Quake2?   保罗·拉里奇:我敢肯定他知道,但我没有听到过他的意见。麦克·库拉斯和麦克·阿布拉奇都是他的朋友,但我不知道他们是否和他谈起过这事。我确实收到过id Software发来的几页书面请求,而且我还与保罗·斯特交换了各自的e-mails信箱。   记者:你还用Cave做过其他与游戏相关的东西吗?   保罗·拉里奇:做过。麦克·库拉斯对Cave的印象非常深刻,所以他给了我一些Volition正在制作中的RPG游戏Summoner(召唤者)的素材。我花了几天时间编写了一个简单的Cave程序,使你可以在游戏中的一个关卡中走动,这一关叫Wolong(卧龙?)。Volition的一些美工到我这里来观看效果,并对此感到非常新鲜有趣。   记者:虚拟现实能为游戏做些什么?游戏又能为虚拟现实带来什么呢?   保罗·拉里奇:虚拟现实是一个交叉的学科领域。它综合了硬件、软件、行为学以及心理学等多种学科。我相信,对虚拟现实的研究将为游戏提供更好的技术,使其变得更真实和更有吸引力。   与此同时,游戏也可以对虚拟现实提供巨大的帮助。游戏可以帮助虚拟现实去产生更丰富的内涵。现在,谁还会去做那种只有几个场景的单调的游戏?正如我前面所提到的,像我们这些为虚拟现实开发应用软件的人,一般都没有能力和时间去建造一个能与现在的游戏相媲美的世界。游戏恰好可以填补我们这方面的不足。   记者:听起来这好像是说,有一天我在自己家里也能用上这样的系统。什么时候虚拟现实才能变得便宜一些?什么时候游戏与虚拟现实才会走到一起呢?   保罗·拉里奇:要使游戏与虚拟现实走到一起,首先虚拟现实系统要变得更便宜并更强大。我个人并不认为这是很遥远的事情。在NCSA的今天,我们所花费的数百万美元就是为了占领几年后的技术前沿。从本质上说,这就是我们未来的样子。正像威廉·吉布森说的那样:“未来就在这里……只不过现在还无法被所有人分享。”   我要特别指出,对于娱乐行业来说,类似于Cave这样的系统甚至在今天就可以变得很廉价。就我在NCSA所做的工作来说,由于需要处理大量的数据,所以我需要强大的计算能力,需要很高的输入输出带宽,需要极大的几何绘制能力,因此我需要SGI Onyx2。而现在硬件几何加速已经出现在PC屏幕上了,GeForce 256提供了数百万的多边形装配能力。然而游戏程序一般来说更加看重的是纹理应用,因此现在最新的PC图形卡在纹理填充与渲染方面已经能够与高端的SGI卡相媲美了。   所以,我觉得用于游戏的类似于Cave这样的系统已经距离我们并不遥远了。事实上我正在开始研究一种称之为VisBox的系统,它与Cave有些类似。