第1章 绪论
虚拟现实一词1989年来源于美国VPL Research公司的创始人Jaron Lanier创造了Virtual Reality一词,意指“计算机产生的三维交互环境,在使用中,用户是‘投入’到这个环境中去的”。根据他创造这个名词的意思,VR的一种定义是:VR就是让用户在人工合成的环境里获得“进入角色”的体验。这涉及到三维立体显示跟踪头盔,还包括立体声耳机、数据手套以及数据衣等。甚至有人说,VR是任何非真实的、但假冒的非常像的计算机系统。
虚拟现实VR是近年来十分活跃的技术研究领域,是一系列高新技术的汇集。这些技术包括计算机图形学、多媒体技术、人工智能、人机接口技术、传感器技术、高度并行的实时计算机技术,还涉及到有关人的生理学特征和行为学研究等多项关键技术。总之,虚拟现实技术是多种高技术的集成体现,是多媒体技术发展的更高境界,也是这些技术的更高层次的集成和融合。
它能给用户(参与者)更逼真的体验,它为人们探索宏观世界、微观世界以及由于种种原因不能或不便与直接观察的运动变化规律,提供了观察的可能和极大的便利。有关人士认为,80年代是个人计算机的年代,90年代是多媒体计算机的年代,21世纪初将是VR技术的时代。为了在下世纪把握VR这一新技术,美、英、日等国政府及大公司已不惜巨额资金在该领域进行研究和开发,并在许多应用领域显示出良好的应用前景。
1.1 虚拟现实的基本概念
1.与“Virtual Reality”类似的概念及意译
70年代,M.W.Krueger曾提出“人工现实(Artificial Reality,简称AR)”,它用来说明由Ivans Sutherland 在1968年开创的头盔式三维显示技术以来的许多人工仿真现实;
在1984年,美国科幻作家William Gibson提出另一个词“电脑空间(Cyber Space)”,它是指在世界范围内同时体验人工现实;
类似的词还有:
“人工环境(Artificial Environments)”;
“人工合成环境(Synthetic Environments)”;
“虚拟环境(Virtual Environments)”;
在1989年Jaron Lanier创造Virtual Reality一词。
2.虚拟现实的概念
(1)“模拟环境”指的是由计算机生成的具有具有双视点的、实时动态的、有三维立体感的逼真的图象。逼真就是要达到三维视觉、三维听觉、触觉、力觉、甚至包括嗅觉等方面的都尽可能要逼真。模拟环境可以是某一特定环境的真实实现,(如拍摄电影或电视剧时的某些场景和道具等。)但也可以是虚拟构想的世界。
(2)“感知”是指理想的虚拟现实技术应该具有一切人所具有的感知,除了计算机图形技术所生成的具有视觉感知外,还有听觉、触觉、力觉、运动等,甚至还包括嗅觉和味觉等,也称为多感知(Multi—Sensation)。由于相关技术受到传感器的限制,目前所具有的感知功能大都限于视觉、听觉、触觉、力觉、运动等方面。但在嗅觉方面也有了一些新的进展。但无论从感知的范围和精确程度来说都无法与人(在真实情况和环境下的感觉)相比。
(3)“自然技能”指的是人的头部转动、眼睛、手部或人体其他部分的行为动作,由计算机来处理与参与者动作相适应的数据,并对用户的输入(手势、口头命令等)作出实时响应,并分别反馈到用户的五官,使用户有身临其境的感觉,并成为该模拟环境中的一内部参与者,还可与在该环境中的其他参与者打交道。
(4)“传感设备”是指三维交互设备,常用的有立体头盔,数据手套、三维鼠标、数据衣等穿戴于用户身上的装置和设置于现实环境中的传感装置(不直接穿戴在身上),如摄象机、地板压力传感器等。
从以上的描述可知,VR并不是真实的世界,也不是现实,而是所谓的“虚拟现实”,是一种可交替更迭的换环境,人们可以通过计算机的各种媒体进入该环境并与之交互。可知,虚拟现实技术是与众多相关技术(如计算机图形学、仿真技术、多媒体技术、传感器技术、人工智能等)基础上发展起来的,但又不是这些技术的简单组合。
从技术上看,VR与这些相关的技术或多或少有相似之处,但在思维方式上,VR已经有了质的飞跃。VR是一门系统技术,需要将所有组成部分做为一个整体去追求系统整体性能的最优。
1)控制交互作用的人—机共享性 早期的计算机系统中,用户发出指令,计算机执行指令,计算机系统的控制权完全在使用计算机的人。后来人—机可以会话,特别是人工智能专家系统的设计方法,实际算计友谊顶程度的智能并有一定的知识,可以对用户作出一定程度的计算机自己的反应。机器与人共享控制权。VR技术为人机交互提供的是某种特定的直观环境,用户的作用仅是一个数据源,而不再是控制的主角。
2)通过交互作用表示事物的现实性 传统的计算机应用方式中,人机交互的媒介只是真实事物的符号表示,是对现实的抽象替代,而VR技术则可以是这种媒介成为真实事物的复现,、模拟甚至想象和虚构。用户并非感觉到他是在使用计算机,而是在直接与应用对象打交道。
3)人机交互方式的自然性 Myron Krueger研究“人工现实”的初衷就是“计算机应该适应人,而不是人适应计算机”,他认为人类与计算机相比,人类的进化慢得多,人机接口的改进应该基于相对不变的人类特性。在VR技术中,人机交互不再借助键盘、鼠标、菜单,而是头盔、数据手套和数据衣等,甚至向“无障碍”的方向发展。
3.虚拟现实技术的意义
虚拟现实技术是近几年新崛起的一项新技术,它一出现就引起了科学界、政府部门乃至个人极大的注意和兴趣。这充分说明了这项技术对现代社会带来了轰动的影响
我们知道,计算机的出现给人类社会的许多方面都带来极大的冲击,它的影响力远远地超出了技术的范畴。计算机的出现和发展已经在几乎所有的领域都得到了广泛的应用,甚至可以说计算机已经成为现代科学技术的支柱。
20世纪80~90年代,是计算机多媒体技术、计算机网络技术、虚拟现实技术等迅速发展,计算机的使用离不开人与计算机之间的交互,人们通过诸如键盘、鼠标器、打印机等设备向计算机输入指令和从计算机获得计算结果。为了使用计算机,人们不得不首先熟悉这些交互设备,然后将自己的意图通过这些设备间接地传给计算机,最后以文字、图表、曲线等形式得到处理结果。随着计算机技术的发展,交互设备的不断更新,用户必须重新熟悉新的交互设备。
这种以计算机为中心、让用户适应计算机的传统的交互方式严重地阻碍了计算机的普及和应用,是不熟悉计算机的人对计算机有一种可望而不可及的感觉。随着社会和科学技术的发展和人们对计算机使用的普及要求的日益增加,传统的键盘等交互方式成为人们广泛使用计算机的障碍,人们渴望能够更简便、更快捷、更实用的计算机系统的出现。
目前的计算机技术和科学的发展水平,还不能造出具有和人类一样的智能的计算机。因此,人与计算机的交互应该是:扬长避短、优势互补。
一方面,人们习惯于日常生活中的人与人、人与环境之间的交互方式,其特点是形象、直观、自然,通过人的多种感官接受信息,如可见、可听、可说、可摸、可拿等,这种交互方式也是人所共有的、对于时间、地点、的变化是相对不变的。
另一方面,计算机有很强得计算能力,随着图形的生成、图象处理、语音处理、传感器以及多媒体等技术的发展,计算机处理视觉、听觉、力觉等信息的能力大大增强,而且这种能力是随着技术的发展而不断提高的。
虚拟现实技术正是基于这种指导思想而产生和发展起来的,即为了建立起方便、自然的人与计算机的交互环境,就必须适应人类的习惯,实现人们所熟悉和容易接受的形象、直观和自然的交互方式,现实的需求和技术的可实现就促成了虚拟现实技术的产生和发展。
虚拟现实技术的出现为计算机的普及应 用提供了强大的技术支持,它不仅是一项新的计算机技术,而是计算机技术发展过程中的一次飞跃,它所带来的变革将产生巨大的社会和经济效益。
例如,美国医学界的的“亚当和夏娃”的虚拟人体构造的建立。被选中的一个是家庭主妇平时从不生病突然死亡;另一个是监狱里的死刑犯自愿捐献遗体,愿意为人类做出最后的贡献,他们被冷冻成零下几十度后,被切成几毫米厚的横切片,然后被扫描的计算机中并建成数据库,利用软件可构成虚拟的人体各种系统的解剖模型,可供许多领域使用。如医学院对学生进行虚拟人体的解剖教学、刑事案件的侦破、可供服装设计……。
附录:“虚拟中国人”
据北京2002年6月24日晨报第3版报道,“四川大学教授秘密打造,六位‘虚拟中国人’出世”。这里所说的“虚拟中国人计划”是由中科院、北大、清华联合发起,将于本月底正式向国家科技部提出立项申请。“虚拟中国人”是利用来源于真人的解剖和生理信息资源,集成虚拟的数字化人体信息源,通过计算机模拟构造出仿生虚拟人,进而在其身上开展各种无法在真人身上进行的诊断和治疗研究。
据称,虚拟中国人计划前期平台软件已搭建成功,并将在北京部分医院辅助诊断和手术计划中应用,下一步将进行人体数据采集,建立一个人体形态和功能信息库,构造出“虚拟人”的数字模型。据称,还有3、6、9岁的三种“虚拟中国儿童”仿生模型。六位“虚拟中国人”仿生模型中还有包括孕妇的模型。估计3、4年后,“虚拟中国人”就可以全面运用于临床诊断、治疗和预防康复。
1.1.2 虚拟现实的特征
Grigore Burdea 和Philippe Coiffet在他们的著作“Virtual Reality Technology”一书中指出,虚拟现实具有三个最突出的特征,就是人们常说的VR的3个“I”,即Interactivity、Illusion of Immersion、Imagination,即交互、沉浸和想象。交互性主要是指参与者通过使用专用设备,用人类的自然技能实现对模拟环境的考察与参与程度。
例如,用户可以直接用手去抓取模拟(虚拟)环境中的(虚拟)物体,并且用户有抓取东西的感觉,还可以感觉到物体的重量(此时用户手中并没有实物),视场中被抓起的物体也应能立刻随着参与者手的移动而移动。虚拟现实的这三个‘I’的特点也是VR技术有别与其它相近学科的特点,如多媒体技术、科学计算可视化技术等的主要区别之一。
由于VR并不只是一种媒介或一个高层终端用户界面,它的应用能解决在工程、医学、军事等方面的一些问题,这些应用是VR与设计者并行操作,为发挥他们的创造性而设计的。这极大地依赖于人类的想象力。这就是VR的第二个特性——想象(Imagination)。
VR的最主的技术特征是沉浸感,也有人称其为“临境感”、“投入”或“存在感(Presence)”等。VR追求的目标是力图是用户在计算机所创建的三维虚拟环境中处于一种“全身心投入”的感觉状态,有身临其境的感觉,即所谓的“沉浸感”。在该环境中的一切,看上去真、听起来真、动起来也好象是真的,‘所有’的感觉都很逼真。用户觉得自己确实是在另一个“真实的环境”中,自己是环境中的一部分,而不是一个旁观者。
同时感觉到自己被这环境中的景物所包围,可以在这虚拟的环境中左顾右盼、自由走动,与这些物体相互作用,如同在已有经验的现实世界中一样。这种使用户感到作为一个主角沉浸于模拟(虚拟)环境中的真实程度,对理想的模拟环境应该达到使用户对这个环境真假难辩的程度。如立体的视觉环境随视点的变化而变化,也有比现实更逼真的照明和音响效果等,甚至比真的还要真。
关于这VR要具备着三个‘I’,要具备三个要素:
(1)图像(imagery) 虚拟物体要有三维结构的显示,其中主要包括由以双目视差、运动视差提供的深度信息;图像的显示要有足够大的视场,造成“在图像世界内观察”而不能有“在窗口内观察”的感觉;显示画面符合观察者当前的视点,并能随视点和视线的变化而变化。物体图像也能得到不同的细节审视。
(2)交互(interactive) 虚拟物体与用户之间的交互是三维的,用户是交互的主体;用户能觉得自己是在虚拟环境中参与对物体的控制;交互也是多感知的,用户可以使用与显示生活不同的方式(如手语)与虚拟物体进行交互。
(3)行为(behavior) 虚拟物体独自活动或是互相作用时、或在与用户的交互作用时,其动态过程都要有一定的表现,这些表现或者服从自然规律,或者遵循设计者想象的规律,这也称为VR的自主性(autonomy)。自主性是指虚拟环境中物体依据物理定律动作的程度。如当物体受到力的推动时,物体会沿着力的方向移动、翻倒或从桌面落到地面等等。
上述技术要素之间是相互关联的,它们对于用户的“存在”意识的影响、进而导致“沉浸感”的过程实际上基于人的认知(human cognition)机理,所以有人认为:“心理学是虚拟现实技术的物理学”(Psychology is the Physics of Virtual Reality)。实际上从这里我们也可以体会到一个基本原理“存在决定意识”,当然,这里的计算机生成的“存在”是一种“虚拟的存在”,但它也是存在。
VR的“沉浸感”特性使它与一般的交互式三维图形有较大的不同:用户可以沉浸于数据空间,可以从数据空间向外观察,从而可以使用户能以更自然、更直接的方式与数据交互。利用沉浸功能,使用户暂时与现实隔离,投入到虚拟环境中去,从而能更真实地注视数据。VR界面也可以给技术人员及创作人员提供真实数据,以便正确创建虚拟环境,这样有助于用户更快、更全面地分析理解数据。因此,VR技术将从根本上改变人与计算机系统的交互操作方式。
不过,从现在对VR的研究看来,人们还未完全理解使某人产生沉浸感的所有因素及它们的作用,这种经历对于另一个人来说也许就不是沉浸。因此科学家也无法提供计算某人沉浸度的计算公式。这也是今天的许多VR技术的研究者同样也在致力于人的心理学研究的问题原因之一。VR技术的各方面都与人的感知和认知密切相关。
1.1.3 VR系统与传统计算机图形系统的区别
计算机实时三维图形学是VR技术最重要的技术基础之一。根据某些研究,认为,一个人是通过各种方式从外界学习、交换和交互“信息”(人的各种“传感器”——眼、耳、鼻、舌、身、皮肤、耳内的前庭器可以感受姿态和加速度等),进入人类的大脑信息的80%以上都来自视觉,10%来自耳朵,其余来自人体的其它器官。可见虚拟现实技术中的实时三维立体视觉系统在虚拟现实中是最重要的。
它不同于一般的三维造型以及对这些造型的各种实时处理,主要在于:
1. 三维实时动态显示的功能不同
在人的感觉中,视觉摄取的信息量最大,反映最敏感,因而模拟环境的实时动态显示是虚拟现实技术中的首要问题之一。VR系统要求实时动态逼真地模拟用户所需的环境,这就要求视觉系统应该有立体视觉和有纵深感。
因此,模拟的环境是通过以左、右眼为视点分别生成图象,眼睛的转动要随之生成新的画面,以达到视觉系统对人的动态实时响应。为了实时运行三维模型,其虚拟现实的视觉系统的建摸方法与CAD中造型为主的建摸方法有很大的区别。VR系统的建模大多采用物体模型分割、纹理影射等其它技术,而不是以增加几何造型复杂度的方法来提高逼真度。
三维立体显示器通常提供双视点线索的电子设备,它们具有双目相异和会聚功能,并能提供深度信息,还具有运动视差和视觉调节等功能。也能显示三维全彩色的、有明暗的、有纹理和阴影的图象,这就要求这些三维显示系统有极高的性能,才能实现这些要求。最早的VR三维显示系统是头盔显示器,利用两幅稍有差别的图像分别显示在两个小屏幕上,造成两眼的视差,使人在视觉效果上有一种深度感。如果观察者的头部转动,显示的图像也随之转动和更迭,各人以一种身林其境的感觉。
在三维图形显示效果的处理方面,传统图形系统的三维图形生成是以透视投影、隐藏面消除以及光线和阴影来达到三维显示视觉效果的,它没有景深。它与VR相比,正如立体电影与普通电影一样。
人机交互方式是当前计算机系统研究的关键技术之一,VR系统与传统的图形系统的人机界面相比,也存在着差别。VR界面的概念不是用键盘、鼠标和监视器,而是允许用户更直接地利用数据交互。例如通过数据手套和传感器用手或其它三维工具来操作数据,用户可以更自然地观察数据并和数据交互。
在通信方式上,VR技术本质上是采用人与人之间进行通信的方式(而不是以人去适应计算机及其设备的方式)实现人与设备之间的交流。虚拟现实强调的是一种身临其境的交互方式,设想这样一个虚拟现实系统的情景:用户在戴上头盔显示器和数据手套后,不仅可以看到一个排球,而且还可以摸到它,并能得到触觉反馈。用户还可以拍动排球,排球的时候,不仅能感受到排球对手的反作用力,还能听到拍球发出的“嘭嘭”声。
为了使用户能产生这种身临其境的感觉,虚拟现实系统必须具备一些不同于传统计算机系统的人机交互技术。这些能使人有身临其境感觉的交互技术主要有:实时的三维计算机图形、大视场角的立体显示、头部跟踪、手及姿势跟踪、三维声音、触觉反馈和力反馈等。而传统的计算机图形系统进行人机交互最常用的设备是键盘和二维鼠标,人们通过它们与三维环境中的物体进行通信,这与我们在自然世界中的通信方式相距甚远。
虚拟现实技术是在虚拟的三维空间中与人的交互的技术,为了能及时、准确地获取人的动作信息,需要有各类高精度、高可靠性的三维人机交互设备和传感设备。目前实现这些交互技术的设备主要有:三(六)维鼠标器、定位装置、数据手套、数据衣、跟踪设备等。而传统的图形系统只需要二维交互设备。
3. 人的因素
真实世界是人类生活的世界,而VR则是通过计算机生成的世界,是真实世界的仿真,即虚拟世界。在这个虚拟世界里的一切,看上去和听起来都好象是真的,动起来也象是真的,这些都是通过人的感知而获得的,所以VR技术与人的关系是极为重要的。
(1) 人可以与虚拟世界进行对话。在虚拟世界中,人可以从数据空间向外观察。VR具有从外到内或从内到外地观察数据空间的特征,而传统的计算机图形系统中,人们只能通过计算机屏幕(监视器)这个有限的小窗口从外向内观察数据空间。
参与者可以沉浸到数据空间中。我们知道,虚拟现实系统就是由计算机与参与者的动作相适应的数据,并分别反馈到用户的各种感觉器官,使参与者到这样的一个数据空间中,并成为合成环境中的一个内部参与者。参与者可对这个环境中的数据进行修改、增加、删除,任何改变都将保存在数据库中。
VR系统不止是一个比传统的图形系统更大、更快、更好的图形系统。在VR系统中,用户不是观众,而是该系统内部的一个主动的参与者,是这个环境的主人。而在传统的图形系统中,用户像是一个局外的观察者,只能通过一个窗口(计算机监视器的屏幕)观看这个合成的环境。
2) 人能够体验虚拟世界并具有沉浸感。由于人是VR环境中的核心,所以模拟的情况必须反馈给人,这主要是通过将临场感、视觉、触觉以及味觉,以综合的、和谐的形式反馈出来。
3) “虚拟环境创建技术”是按照人的意图将人沉浸到模拟环境,并使人在模拟环境里行动的技术。VR技术可以以“这是我所想象的世界”的形式表现人类的内心世界,可以以写真的方式或抽象的方式提供迄今所不能创建的事物。
1.2 虚拟现实的发展史
VR技术的渊源可以追溯到20世纪50年代开始产生的立体电影以及各种宽银幕、环幕、球幕电影。具有深度感、大视野、环境感的电影图象加上声响的配合,使观众沉浸于屏幕上变幻的情节场景之中。这种使人置身于图象环境的方式也一直用于几十年来的飞行模拟训练系统中,航空、航天飞行员在训练舱中面对屏幕进行各种驾驶操作训练,模拟坐舱外屏幕的场景也随之变化,飞行员可以得到非常类似真实飞行的仿真训练。
一般认为,研究目标明确的VR技术是从60年代开始形成的。但由于技术复杂、投资太大,除少数军工方面的研究外,几乎很少被大家注意到。
在20世纪的60年代初,电影摄影师Morton Heiling构造了第一个感知仿真环境的原型Sensorama simulator,这是第一个VR视频系统。人坐于拱顶装置下,手操纵摩托车把,仿佛穿行于纽约闹市,能看到立体、彩色、变化的街区画面,听到立体声响,感到行车的颠簸、扑面的风,甚至能闻到相应的芳香的味道,创造了一个能向观众提供完全真实感受的剧院。
在Heiling的发明时代,美国没有一个人意识到这项技术的革新所代表的技术进步,更不用说对此项发明进行投资。不难想象在30年后的今天,他看到每一个人都想在这项技术上投资时会有多么兴奋。
1965年,在IFIP会议上,有VR“先锋”之称的计算机图形学的创始人Ivan Sutherland作了题为“The Uelimate Display”的报告,提出了一项富有挑战性的计算机图形学研究课题。他指出,人们可以把显示屏当作一个窗口观察一个虚拟世界。使观察者有身临其境的感觉。这一思想提出了虚拟现实概念的雏型。
在1968年,他使用两个戴在眼睛上的阴极射线管(CRT),研制了第一台头盔实显示器HM,并发表了题为“A Head—Mouunted 3D Display”的论文,对头盔三维显示装置的设计要求、构造原理进行了深入的讨论,并绘制了这种装置的设计原型,成为三维立体显示技术的奠基性成果。几乎30年后的今天,HMD用同样的配置,也还是使用CRT(现在也有使用液晶显示器的)。
不过1968年的CRT比今天的CRT要重得多,Sutherland不得不使用一个机械手臂来支持显示器的重量,这个机械手臂上有测量使用者观察方向的电位器。在研究HND的同时,Sutherland认识到他可以使用计算机产生的画面来代替摄影机拍摄的模拟图象,并开始设计这种“画面产生器”。
1971年,Fredrick Brooks研制了具有力反馈的原型系统Grope-Ⅱ,用户通过操纵一个实际的机械手,来控制屏幕中的图形机械手去“抓取”一个立体图像表示的物体,而且人手能感觉到它的重量。
1975年,Myron Krueger提出“人工现实”(Artificial Reality)的思想,展示了称之为Videoplace的“并非存在的一种概念化环境”。实验者面对投影屏幕,摄象机摄取他的身影轮廓图像,与计算机产生的图象合成,有投影机投射到屏幕上,室内的传感器识别实验者的动作,屏幕上可显示诸如实验者在游泳、爬山等情景。
VR研究的进展从60年代到80年代中期是十分缓慢的。直到80年代后期,VR技术才得以加速发展。这是因为图形显示技术已能满足视觉耦合系统的要求,液晶显示(LCD)技术的发展使得生产廉价的头盔显示器成为可能。
1985年美国航空航天管理局NASA的Scott Fisher等研制了著名的VIEW,一种“数据手套”(Data glove),这种柔性、轻质的手套装置可以测量手指关节动作、手掌的弯曲以及手指间的分合,从而可编程实现各种“手语”。“数据手套”原理类似的还有“数据衣”(Data Suit)。
NASA科学家又继续研制成第一套VR系统,由一台DEC PDP11—40主机、一个图形系统及图形计算机和一个Polhmus非接触式跟踪仪组成。用跟踪仪检测用户的头部运动并把数据传送给PDP机,然后主机把这些数据重新排列传递给图形计算机,由它计算出图像,并在VIVED上立体显示出来。
在1985年,Scott Fisher加入了此项研究工作,他在模拟中又增加了一种新的传感手套。早期,这种手套被Thomas Zimmerman 和Jaron Lanier用来作为非程序员的一个虚拟编程界面。Fisher用VIVED系统做实验。1986年研制成功了第一个较完整的多用途、多感知的VR系统VIVE(Virtual Interactive Environment Workstation)。这是世界上第一个较为完整的多用途、多感知的VR系统,使用了头盔显示器、数据手套、语言识别与跟踪技术等,并应用于空间技术、科学数据可视化、远程操作等领域,被公认为当前VR技术的发源地。
1987年,美国Scientific American发表文章,报道了一种称为DataGlove的虚拟手控器。DataGlove是由VPL公司制造的一种光学屈曲传感手套,手套的背面安装有三维跟踪系统,这种手套可以确定手的方向以及各手指弯曲的程度。该文引起了公众的极大兴趣。
1989年,VPL公司的创始人之一Jaron Lanier,创造了“Virtual Reality即虚拟现实”这一名词。从此,DataGlove和Virtual Reality便引起新闻媒介极大的关注和丰富的想象。
VR第一次展出是在1990年第17届国际图形学年会上,图形学专家们报道了近年来输入输出设备技术以及声、像等多媒体技术的进展,使得交互技术从二维输入向三维甚至多维的方向过渡,使三维交互技术取得了突破性进展。随着新的输入设备研制成功和微型视频设备投入使用,再加上工作站提供了更加强有力的图形处理能力,从而为构成“虚拟现实”的交互环境提供了可能。
1992年,Carolina Cruz-Neira等建立的大型VR系统CAVE,在国际图形学会议上以独特的风貌展现在人们面前,标志着这一技术已登上了高新技术的舞台。用户置身于一个边长为3m的立方体房间,有四面为投影屏幕,各由一台SGI工作站VGX控制的投影机向屏幕交替显示计算机生成的左、右眼观察图象,用户戴一种左、右镜片交替“开”(透光)、“闭”(遮光)的液晶光闸眼镜,就可以看到环绕自身的立体景物,同时无妨于看见室内的起初物体。图形景物随用户在室内走动时的视线变化而变化。
用户手持小棒,当与图形景物“接触”时便真实的接触反应,例如移动一个物体、敲响一个“铃铛”等。研制者邀请不同学科的专家进入这种虚拟环境,试验多方面的可视化研究:分子生物模型、超导体设计、天气预报、建筑设计等等。在这会议上,SGI和SUN等公司也展出了类似的环境和系统,让人进入仿真的空中飞行器飞行、海洋航行、汽车驾驶、建筑物内巡视漫游等虚拟环境,这些系统引起了观众的极大兴趣。
(以下2页摘自国防科大出版社的“虚拟现实技术及编程技巧”一书第15页)
1992年Hennequin及Stone(属于ARRL)获得触觉专利反馈手套专利;
1992年VPL公司的Zimmerman获得采用光学传感器的手套专利。
Division公司展示了多用户虚拟现实系统;
Tomas DeFanti等在SIGGRAPH展示了CAVE系统;
Blau等为ARRL开发成功分布式坦克作战模拟器SIMNET;(这就是分布式交互仿真DIS)。
1993年SGI宣布其Reality Engine问世。
1994年InSys及曼彻斯特皇家医院成立了欧洲第一个虚拟显示开发中心,用于最小刺入疗法;
Division公司发布其在UNC研制的Pixel-Planes技术;
Johns Hopkins医院的一位外科医生在头盔帮助下拿掉一个胆囊;
Division公司在奥兰多IITSEC上展示集成式多平台虚拟现实系统。
1996年,NPS推出NPSNET IV系统,系统首次使用惯性传感器和全方位踏车将人的运动姿态集成到虚拟环境中去;
首次提出大规模虚拟环境(LSVE)的概念。
由于学术界、工业界及新闻界对VR技术的巨大兴趣,美国自然科学基金会NSF于1992年3月23至24日在北卡罗来纳大学主持召开了一次国际研讨会,与会代表来自美国、和加拿大的18位专家学者,计算机图形学之父、VR技术的创始人之一Ivan Sutherland也出席了会议。会议对VR的定义及研究方向提出了详细建议,奠定了VR作为独立研究方向的地位,讨论并提出了VR研究的主要方向。
1.2.2 虚拟现实的商品化
自1990年第一家专门为VR提供软件工具的VR软件公司成立以来,一股研究、应用虚拟现实系统的热潮席卷美国及整个西方世界,一大批公司、新产品及应用软件不断涌现。由于计算机的功能日益强大,价格迅速下降,一些主要的计算机公司也逐渐认识到了虚拟现实的潜在的价值,着手开发VR硬件的设备和软件开发工具。
各种软硬件销售公司便应运而生,当时的Jaron Lanier成为VPL公司的总裁,他是第一家出售VR产品的商业公司,该公司出售的第一种传感手套称为“Data Gloves”,第一种HMD称为“Eyephones”。
目前,研究者在开始开发应用时都有一开发工具,然而,他们首先要解决硬件合成的问题,并且开发大多数所需的软件。1991年早期,硬件合成问题取得了解决
当时一家名叫Division Lid的公司推出了第一台名为“Visiln”的集成商业虚拟现实工作站,后来又推出了功能更强的“Provision”,软件开发和测试时间仍然是个问题。1992年早期,一个名为Sense 8的美国小公司开发了第一种“World Toolkit”应用软件包,开发VR软件的“艺术”变的更像一门科学,而且明显地减少了调试时间。
1995年4月20日,英国SUPERSCARE公司进行了虚拟现实技术演示,并推出了他们研制的虚拟现实技术的第二代产品SUPERSCARE VRT。
日本松下电子有限公司(Matsushita Electric Works Ltd)已经开发出几个VR系统的商品。有一类用于该公司商店的销售,一个厨房设备显示系统已用与松下公司在东京新宿的商店。两台投影电视机将图象投影在柱面屏幕上,宽约6米,高约2米,用户用光闸眼镜观看立体图像(早期的版本是显示在CRT和头盔上),并用操纵手柄实现在厨房中漫游。交互菜单可供用户修改厨房设备形状、颜色等特征。另一个系统是住宅设计的虚拟现实显示系统。
该公司还有两个体育系统:一个是给室内自行车练习器加上头盔,给用户提供室外环境的图象和声音;另一个按摩系统是按摩椅配上头盔。在15分钟的程序中,用户从头盔看到录象,听到音乐,并受到按摩椅的背部按摩。15分钟分三段,第一段5分钟由强到弱进入睡眠,第二段5分钟入睡,第三段5分钟唤醒,由弱到强。
由于众多厂商的不懈努力,过去在操作时所出现的焦点模糊、易产生头晕等不良现象已得到明显改善。也就是说,这一方面的技术已经发展到初步成熟阶段。从目前情况看,急待克服的障碍是商品化成本仍十分昂贵的问题。而成本的降低则有赖于更多的开发工具以及把研究单位各自开发的虚拟现实的对象集成于同一个虚拟世界中。由MIC提供的虚拟现实主要厂商情况见下表:
目前,Division生产的Vision—VR工作站售价约为$70,000,最好的头盔显示器HMD会卖到$70,000,而且,SGI公司生产的最快的图象引擎(“Reality Engine”)的要价也在$100,000。这些昂贵的价格是今天VR的一个严重缺点。只有大公司、政府以及大学能够买得起这种高性能的硬件。
Pimantal 和Teixeira预测:到1998年底一套完整的VR系统会降到$10,000。他们的预测是建立在逐渐增加的VR系统得数量基础上,以1991年的50套增加到1998年的16,000套,他们认为,与电子产品的消费一样,会促使硬件价格下降。
目前VR市场主要受娱乐应用驱动,在这方面一些大公司不断有新产品问世,Sega就是一例,它在1994年推出第一种家庭使用的沉浸式VR视频游戏。它的零售价格只有$200。
根据美国议价咨询公司估计,虚拟现实技术全世界的销售额将从1993年的大约1亿美元上升到1997年的5亿美元。
1.3 虚拟现实对传统产生的冲击
现代科技已使人们的生活发生了天翻地覆的变化。例如,坐在家中就可以进入大英图书馆的阅览室查阅您所需要的资料;可以游览法国的卢孚宫观赏世界著名画家的作品;参观故宫,欣赏灿烂的中国古代文化逛超级市场,选购您所需要的新的服装款式和食品;也可以参观一年一度的Comdex展览会等等。
1.3.1 VR技术对人类生活带来的冲击
虚拟现实在社会生活各个方面的应用有着美好的前景。特别是虚拟网络的建立,对社会的影响将是广泛而深刻的。
美国UB网络公司最新开发的基于Internet网络的三维虚拟现实系统,将上述的一切变成现实。Internet是目前遍布全球最大的互联网络,每天都有大量新用户联入Internet,人们利用Internet发送电子邮件、进行信息交流。
目前人们在Internet上传送的主要是文字、二维图象信息等。UB网络公司研制的三维虚拟现实系统给Internet赋予了新的内涵,使得在Internet上能够传送三维动态画面,用户只需要移动鼠标器就可以进入画面中显示的各个场所,到里面去参观、游览、购物、交谈,如同置身于真实环境中。
据美国UB网络公司策略规划及业务发展总监 Eli Zelkha介绍:三维虚拟现实系统是UB公司开发的最新产品,目前的首家客户是一家国际旅游公司。用户只需要将所要传送的现实生活中的场景、环境、风光等素材拍摄下来,通过UB公司的工程师,编制成特定的软件程序装载到连接Internet网络上的客户服务器中,所有能够登录到该客户机的用户都可以利用虚拟现实系统在真实的环境中交流信息,从而一下子缩短了彼此间的距离。下一步将是要开发出一系列系统工具,使得客户能够利用这些工具方便地开发出自己所需要的虚拟现实应用系统。
整个信息系统结构,将会从中央主机系统结构向客户机/服务器分布式结构,直至分布式对象系统结构发展;信息传送将从单纯文字信息传送走向多媒体传送,直到虚拟现实传送。因此在产品发展上UB公司遵循“网络发展的无限性和用户交流亲密性”的宗旨,即通过科技的手段将网络无限发展,遍布全世界各地;另一方面通过网络上软件的开发缩短用户之间的距离,使得用户在网络上交流如同面对面谈话的感觉一样。
有的商店还利用VR系统推销产品,例如日本就出现了可以帮助顾客买房、购房的虚拟现实服务。在日本松下公司的“虚拟厨房”里顾客可以把自己想买设备和餐具安置在厨房的相应地方,看看是否合适。虽然人们都知道这儿的一切都是虚拟的,但还是会被它那逼真的效果所迷惑,一不小心就会全身心地投入进去,并且最终购买自己所喜爱的称心如意的商品。
1.3.2 VR技术对教育带来的冲击
虚拟现实技术为人们提供了一种理想的教学手段,目前已被广泛应用在军事教学、体育训练和医学实习中。对于第一次走上手术台的医生来说,通过虚拟现实技术的帮助,他们可以在显示器上一遍一遍地模拟手术、移动人体内的器官,寻找最佳的手术方案。这种模拟器显示的人体结构可以达到以假乱真的程度,比如医生可以看到孕妇体内的胎儿、外科医生可以观察虚拟器官对刺激的反应等等。
如果切开一个刀口,虚拟血液就会从伤口处流出;如果解剖器官,就会显示出器官被一分为二后的情形。英国曼彻斯特皇家医学院研制的模拟器还配有特殊手套,医生戴上后去“抓住”、“移动”某一器官时就会感到“力反馈”,好象在人体里真实操作一样。
使用虚拟现实应用系统需要大量的图像、数字信息和相应的信息传输技术。比如美国德克萨斯州的第一个“可见人”虚拟图像是由5000多帧人体不同截面的射线、磁和光的图像组成的,所有这些信息经技术处理后被存储起来,医生们只要通过交互网络调用,就可以看到详细的人体图。“可见人”的信息量如此之大,以至于即使不停地用高速线路传送,也需要两周的时间才能全部传送完,它所占用的信息空间相当于“大不列颠百科全书”的50多倍,这一虚拟人体可以用来进行教育、实习以及研究用。
在美国北方边陲的华盛顿州,近来一队队中小学生在教师的带领下,走进了停在路边的汽车教室。教室里没有黑板和讲台,只是在每个座位的前方都设有一顶特殊的头盔和操纵杆。孩子们只要戴上头盔,手握操纵杆,眼前就会出现一幅幅栩栩如生的景像。如上化学课时,孩子们通过电脑将采集的一个氧原子和两个氢原子合在一起,眼前就会出现一个网状的水球,这是孩子们自己创造的水分子;在物理课上学生们还可以自己动手创造出降水、水汽蒸发等自然景观,直观有趣、生动形象。这种新颖的教学方式也是通过虚拟现实技术实现的。
美国宇航局Ames研究中心的科学家将探索到的火星数据进行处理后得到了火星的虚拟现实图像。研究人员可以看到全方位的火星表面景象:高山、平川、河流,以及综横的沟壑里被风化的班驳的巨石,都显得十分清晰逼真,而且不论你从哪个方向看这些图,视野中的景象都会随着你的头的转动而改变,就好象真的置身于火星上漫游、探险一样,这无疑对天文、气象的教学有所帮助。
1.3.3 VR技术对社会伦理道德带来得冲击
虚拟现实系统具有沉浸感或者说很容易投入的特点,有些社会问题也可以利用沉浸这一概念,因为有的人会沉浸到“邪恶”的现实中做坏事。但是,沉浸这项技术本身并没有罪恶或危险。关键要看把它用到哪些方面。我们应当把沉浸技术用于有益的场合。
1. VR对公共生活的影响
以VR为代表的通信媒介是无与伦比的。通信是信息的传递,而信息是社会的基础。因此VR会给公共生活带来一定的影响。
VR能使广告工作者的工作效率更高;对管理者来讲VR是非常有益的,可以缩短时间提高效率,个人但档案可以更准确,通信更方便等。同时,它也使您可能冒着试验和侵犯隐居生活的危险,VR还可能使政府工作受到损害。
在政府或大经济集团手中,VR也可能成为完美的信息窃取工具。其他诸如用于军事目的的问题、与VR有关的知识产权问题、协调不同文化背景的人在虚拟环境中的活动问题等等,都是VR需要解决的社会性的而非技术性的问题。这需要制定严格的信息访问法以及各类法规。
2. 着迷于游戏
虚拟现实最早成功的应用是娱乐。选择适量娱乐有利于身心健康。由于VR是一种唯心应付的通信模式,因此它也能将人引入空前的孤独。在人们的日常生活中,电子游艺机可以说是最常见和最简单的虚拟现实系统了。它所形成的人机合一的特殊环境,可以使人们尝到自己编辑、导演故事的乐趣。
这些图像游戏的泛滥,尤其在年轻人中盛行,会由于这种新技术的引入而更加深化,一个人可以把很多时间花在模拟的乐趣上,而逃避现实。据最近有关报道,英国两个年轻人在家中玩Nintendo游戏,他们家的房子着火时,他们还不知道,还沉浸在娱乐中。
最近也有一些报道说,可以利用电子游戏治疗儿童的多动症,使儿童在学习过程中可以提高注意力。
3. 电子致幻剂
然而在VR系统发展的今天,人们对VR关注的另一个焦点,也是一个“毒品”问题。因为生病治疗中,药物治疗有时也会使人对某种药物“上瘾”。因而,人们常把对一项新技术着迷比作一种致幻剂。比如“电子致幻剂Electronic Acid”。一些人认为使用毒品的人极易在VR上犯同样的错误成瘾而兴奋。有关这一话题的讨论也引起了很大反响。毒品问题是目前社会上最深恶痛绝的问题。特别是在今天,禁毒运动一浪高过一浪,因此这一问题变得相当敏感。
4. 团伙犯罪
曾有一个学生组织的成员,因不满当局对某系统的使用所采取的限制措施,而开始自己闲逛进计算机系统。他们认为任何信息都是自由公开的,任何人都可以平等地获取,因而提出了黑客(Hackers)。“黑客”一词源于MIT,大意是对计算机非常着迷的犯罪分子,他们自认为自己有比他人更高的才能,因此只要他们愿意,就闯入某些禁区,或开玩笑或恶作剧,甚至干出违法的事情。
他们常常以此作为一种智力挑战而陶醉在技术或违法之中。黑客中,很多人具有反政府、反传统文化的色彩,与西方社会的“崩克”很相似,于是人们把他们称为“电脑崩克Cyberpunks”。
另外,还有一种现象也引起了人们的注意。当虚拟网络上人们存在有观点分歧时,持相同或相似观点的人们就会通过电脑空间而聚集在一起,形成一定规模的团体,这被称为“电脑部落Cybertribes”。这一现象也许会带来新的社会学课题。
1.4 发展中的VR技术研究
正如其他新兴学科技术一样,虚拟现实技术也是许多相关学科领域交驻、集成的产物,它的研究内容涉及到人工智能、计算机、电子学、传感器、计算机图形学、智能控制、心理学等。某些重要的研究课题列举如下:
(1)计算机图形学计算 要求很强的实时性,图象的更新率至少要求16帧/秒,图形客体行为反应的滞后要低于0.1秒。此外,要研究允许用户审视客体细节的方法,要解决虚拟景物图像与真实客体图象在虚拟环境中混合重叠等问题。
(2)显示、三维交互硬件、高性能传感器等的研究 综合考虑图象质量的各种因素(分辨率、光强、反差、彩色、刷新速率等),研制轻质、广角的HMD;消除光闸眼镜的闪烁;研制基于各种定位测量原理(超声、红外、电磁、光学、机械等)的人体跟踪装置,提高精度,扩大三维音响系统、语音识别和语音合成装置等
(3)用户界面研究 多通道用户界面模型及分布式协同环境研究。
(4)行为设计 研究虚拟空间中的导航方法(用手指点、“飞行”等),解决定位、避障问题;对虚拟客体位姿和变形的控制,对环境状态变量(例如昼夜光照的变化)的控制,对抽象概念的直观表示和变化控制;虚拟环境中的时空标定问题
(5)人的因素 人的生理系统是如何与环境交互,并对其作出反应的;那些技术措施(感知显示、交互方式、行为设计等)可以增强“沉浸感”;增强结果能否通过测量得到验证;用户对虚拟环境的适应、接受程度是如何因人而异的。
(6)系统集成 对系统个组成部分的性能限制和冲突确定合适的折衷,以组成满足特定应用需要的虚拟环境,系统硬件平台的构造方式(集中结构或是分布式结构),不同硬件坐标系统的机集成,软件系统的相应考虑。
(7)应用研究 软件开发工具的研制,特定的应用领域(教育培训、建筑设计、科学计算可视化、医疗、戏剧艺术等)原始的、基本的和特殊的设计要求,VR的哲学问题和社会效应。
1.4.2 各国研究VR技术的状况 1. 美国的研究状况
美国是VR技术研究的发源地。虚拟现实研究大约开始于1980年,大多数研究机构在美国。主要有:
(1)美国宇航局的Ames实验室 美国宇航局NASA的Ames实验室完善了HMD,并将VPL的数据手套工程化,使其成为可用性较高的产品,Ames一直是许多VR技术思想的发源地。特别是在遥视(Telepresence)方面,被认为是找到了一把探索空间秘密的金钥匙。通过遥视可以使人们遥控机器进行精细作业。
早在1981年,在Michael McGreevy和Stephen Elis博士的指导下,NASA的Ames开始研究空间信息显示,1984年开始了虚拟视觉环境显示VIVED项目。Scott Fisher还开发了虚拟界面环境VIEW工作站。
NASA研究的重点放在对空间站操纵的实时仿真,大多是在NASA的约翰逊空间中心完成的。他们大量运用了面向座舱的飞行模拟技术。另一项著名的仿真是对哈勃太空望远镜的仿真。虚拟环境能使训练者获得第一手的现场感就觉,对要执行的任务有很好感性认识。
NASA的Ames现在正致力于一个叫“虚拟行星探索(VPE)”的实验计划。这一项目能使“虚拟探索者”(Virtual Explorer)利用虚拟环境来考察遥远的行星,他们的第一个目标是火星。
(2)北卡罗莱纳大学(UNC) 北卡罗莱纳大学的计算机系是进行VR研究最早的最著名的大学,其领导人是Frederic P.Brooks博士。目前,他们的研究主要是在四个方面:分子建模;航空驾驶问题;外科手术仿真;建筑仿真。
在显示技术上,UNC开发了一个帮助用户在复在视景中建立实时动态显示的并行处理系统,叫做像素飞机(Pixel Planes)。早在1980年,UNC就开始从事HMD的开发工作。UNC还与位于Wright Patterson空军基地的空军技术学院合作,开发了一套头盔显示系统,这一系统采用LEEP光角镜及76mm液晶电视屏幕。Polnemus跟踪球,用于头部定位,VPL的数据手套用于输入。
NC从1970年开始研究交互式分子建摸,解决了分子结构的可视化,并用于药物和化学材料的研究。UNC开发了一套名为GROUP的设备,是用户能用蛋白质来修改药物分子。UNC还采用这一技术进行实物的检验,利用计算机图形和VR技术、用计算机的数据对分子进行重构。Brooks还开发了一套名为“Walk Though”的系统。在这一环境中,人可以想乘坐直升飞机一样在建筑物中漫游。其模拟的第一个建筑物,就是UNC的计算机大楼。
(3)Loma Linda大学医学中心 Loma Linda医学中心是一所经常从事高难或有争议医学项目研究的单位。David Warner博士和他的研究组成功地将计算机图形及VR的设备用于探讨与神经疾病相关的问题,如帕金森氏症、舞蹈症等。他们巧妙地将VPL的数据手套作为测量手颤动的工具,将手的运动实时地在计算机上用图形表示出来,从而进行分析诊断。Waner还成功地将VR技术应用于受虐待儿童的心理康复之中,并首创了儿科治疗法。
(4)MIT媒体实验室(Media Lab) 麻省理工学院MIT是一个一直走在最新技术前沿的科学研究机构。1985年成立了媒体实验室,进行虚拟环境的正规研究。MIT原先就是研究人工智能、机器人和计算机图形及动画的先锋,这些技术是VR技术的基础。在MIT媒体实验室中,这些技术得到了集成。媒提技术实验室的前身是一个叫做“Architectural Machine Group”的研究小组,它专门从事HCI研究。1985年成立了媒体实验室,进行虚拟环境的正规研究,也有许多人认为“Virtual Realty”一词正是从这儿于70年代后期出现的。
媒体实验室建立了一个名叫BOLIO的测试环境,用于进行不同图形仿真技术的实验。利用这一环境,MIT建立了一个虚拟环境下的对象运动跟踪动态系统。
MIT有一个很有趣的研究项目——“虚拟蟑螂”。这是VR实验的一个原形。这个项目的目的在于学习如何在图形环境中表达与控制日常行为,这个项目取得了较大的成功。与此相关的还有“路径计划”(Path Planning)与“运动计划”(Motor Planning)等研究项目。
(5)施乐公司研究中心 施乐公司(The Xerox Palo Alto)PARC在VR领域主要从事利用VR技术建立“未来办公室”的研究。目前Xerox公司已将虚拟世界的某些概念应用于桌面系统中,并正努力设计一项基于VR的使得数据存取更容易的窗口系统。这种新的窗口系统称为Room。在Room中的数据都是以可视化的三维图形room表示的,各room之间通过door连接。
(6)SRI研究中心 SRI International研究中心是一个国际知名的思想库,NASA Ames研究中心及VPL公司都保持着良好的合作关系。它最近建立了“视觉感知计划”(Visual Perception Program),来研究现有VR技术的进一步发展。SRI主要从事定位光标、视觉显示器、光学部件、触觉与力反馈、三维输入装置及语言交互等研究,对VR的野心很大。1991年后,SRI进行了利用VR技术对军用飞机或车辆的训练研究,试图通过仿真来减少飞行事故。
另外,SRI还在NASA、美国国防部和国家科学基金会的资助下,进行了利用遥控技术进行外科手术的仿真研究,这已成为VR领域一个很有名的话题。
(7)AT&T贝尔实验室 贝尔实验室主要从事电话(Telephone)向遥视(Teleresence)转变的研究。其中,包括在VR环境下的语音建模及提高人与人之间的通信联系能力等问题。另外,AT&T贝尔实验室还有一些与VR相关的课题(包括HCI、CAD及计算机图形等)。
(8)人机界面技术实验室(Human Interface Technology Lab,HIT Lib)人机界面技术实验室HIT Lab是美国华盛顿大学技术中心的一部分,它是于1989年由Tom Furness创办的。HIT的研究范围也很广泛,不仅发展VR的新技术,而且也关心可能带来的技术与社会影响。
HIT在新概念的研究中起着领先作用,同时也在进行感觉、知觉、认知和运动控制能力的研究。这里需要强调的是,HIT将VR研究引入了教育、设计、娱乐和制造领域。1991年2月,HIT发起了一场很有影响的研讨会,即“虚拟环境技术产业研讨会”。参加的有波音公司等500家大型企业的代表,探讨VR有关制造业的应用问题。波音公司的V22运输机就是先在实验室造出虚拟样机后再投入生产的。会议的其他议程还有复杂系统中的人机交互、仿真并增强制造能力的方法、教育的新方法、残疾人的教学辅助新方法、VR在医学上的应用等。
此外,HIT还获得了美国国防部模拟器的设计和开发合同,最终目标是设计出一种轻便、舒适的模拟器。HIT在Furness的带领下,还开发了虚拟环境操作系统(VEOS)和虚拟网膜扫描器(VRS)显示设备。将手的运动实时地在计算机上用图形表示出来,从而进行分析诊断。Warner还成功地将VR技术应用于受虐待儿童的心理康复之中,并首创了VR儿科治疗法。HIT Lab已成为VR研究的一个重要中心。
2. 欧洲的研究状况
欧洲共同体(CEC)承认VR是一门新兴技术,1993年,欧共体组织了几次评价VR的专题活动,以便为VR的前期研究做准备。欧共体研究调查了VR的未来的研究潜力,并邀请有关参与VR研究的关键人士对VR产品进行介绍。
(1)德国在系统开发研究方面的研究 德国Damastadt 的Fraunhofer计算机图学研究所(IGD)开发一种名为“虚拟设计”的VR组合工具,可使得图象随声音实时显示。IGD设计的这种组合工具(toolkit)采用了一个中央数据存储器。运行状态模块(如冲突检测器)与配置态模块(一台radiosity计算器)建立在中央数据存储器基础上。
此外,Frauhofer学会(管理会所属的50多家研究所)已经研制出一种新的数据结构,这种数据结构能使不同的VR系统只要采用一种协议就可进行通信。其目标体数据库由具有实时处理功能的视觉与声音转换器解释。该数据库下面分为两个子库:一为模型建立,即把目标体分成各个集合体;二为转换功能。
声音转换器需要考虑诸如声源、接收器、音响材料性能等其他因素。视觉与声音转换器在许多方面都有相似之处:两者都要根据景物的几何定义工作。唯一不同的是光的传播速度与声音的传播速度不同而引起算法的不同。声音系统通常由4个不同的声音转换器组成。可编程的视频记录器,把一幅幅活动的画面合成一个整体,供VR使用,一台外部设备控制使像风机一样的交流电装置产生活动的幻影。
新近出现的集成超高速缓存电路,奇迹般地改善了虚拟设计组合工具,进行VR设计时,实时遍历生成的现实景物,它允许多达25万个以上三角形的复杂景物。
(2)英国在软件工程方面的研究 英国Bristol有限公司并行处理工业的4名工程师在1989年发现,VR应用的焦点集中在软件与整体综合技术上。
在硬件方面,该公司提出了基于Intel486系列的为处理器的总体结构,添加一块加速板,这样既可以支持PC机系列的VR,也可以支持Unix工作站,采用Pro Vision 与SuperVision软件系统的VR。
用户可以把视频照相机的图象与计算机产生的图像组合在一起。据说,Pro Vision软件可以处理每只眼睛每秒生成的多达35000个经过phong明暗处理、纹理生成和Z缓冲技术消隐的三角形,而Super Vision软件处理速度则更高,可达到280,000个三角形。
公司的软件系统DVS是一个领先于某些标准操作系统的操作环境。公司还提供了领先于DVS的环境编辑语言。
仅仅是出于逻辑上的考虑,该公司将VR分成三大类别:实际环境检测,虚拟环境控制,虚拟环境显示。每个类别里有专门的操作符(actor)模型,DVS软件使每个操作符模型产生不同的功能。例如:实际环境检测有姿势识别与三维跟踪用的操作符;虚拟环境控制有物体属性与冲突检测用的操作符;虚拟环境显示则有视觉、听觉、触觉用的操作符。
为了允许多用户系统具备多重服务的特点,DVS软件系统建立了一个共享数据空间,即“共用环境”。进入该环境中的操作符可以由被称为像元(elements)的共享数据所代替。不同的操作符依据这些像元建立不同的操作符模型,与整体的变化相对应。并行化主要来自于操作符的并行运算,并行化带来的好处是产生大批“轻便”型的并行机(如8位处理器工作站)。
改善VR的相关技术领域还包括:增加连网所需要的软件的电流容量;???冲突检测以及沉浸式三维编辑界面所需要的高级编辑工具的开发。公司现在已经持有为Unix工作站(SGI、IBM RS/6000和Sun to date)服务的自己的软件。公司还可以向众多拥有自己的工作站的VR潜在用户提供软件。公司已表明今后将重点开发软件工程的决心。
(3)英国ARRL在远地呈现方面的研究 ARRL有限公司关于远地呈现的研究实验主要包括VR技术与景物重构问题。在VR的研究试验项目中。ARRL使用了Bristol公司的Super Vision软件,外部设备有话音输出装置(Marconi Marcospeak),Polhemus与Ascension的头/手跟踪器,VPL与LEEP公司的头戴式显示器,VPL的数据手套,Virtev控制手套,teltact触觉反馈手套,Teletact Commander控制器。Demos的产品还包括建筑与科学视算。
(4)英国在娱乐产业方面的发展
英国Leicester市的W产业(自1993年10月起,该产业改名为虚拟娱乐系统)生产出VR游戏机。商业上的成功使该公司自1987年建立以来,已经增加了72人。公司的奇妙惊险游戏“无腿搜索”,与传统的飞行、驾驶或射击游戏不同,游戏者走进一个“吊舱”(Pod),戴上头戴式耳机,使用操纵杆通过屏幕进行对抗演习。
参加对抗演习的虚拟物体和交战人员与虚拟傀儡进行空战。在有多个人共同参与游戏时,参加游戏的人可与虚拟物合成。例如:话音合成允许游戏人采用一种特殊的,能保持个人特点的语调。
Polhemus电磁跟踪器被用来对手和头进行跟踪。按W产业的情况,目前Polhemus电磁跟踪系统已将原先存储反应的滞后时间由200ms减少到50ms。此外,W产业增加了多普勒效应对声音的处理,开发适应拱廊式或家用环境的强力反馈数据手套,有可能使滞后时间得到改善。
(5)荷兰在仿真技术方面的研究 荷兰应用科学研究组织(TNO)的物理与电子实验室(FEL)有一个仿真训练组,将大家关心的一些仿真问题集中在该训练组进行研究。其中之一是通用(并非VR专用)导弹发射点火仿真装置。该装置全部建成的费用为1.2亿荷兰盾(约合0.67亿美元),该仿真装置已经开始研制。
研制中的第二个仿真是太空工作站工作。当宇航员在太空需要作一些修复之类的技术处理时,需要借助于太空工作站进行。在VR的研制中,FEL使用了英国Bristal公司的Pro Vision硬件和DVS软件系统、Virtual Research的头盔显示器和Polhemus磁性传感器,同时使用头盔显示器与Bristal公司的鼠标器来跟踪动作。
(6)德国数学与计算机科学研究中心的科学视算研究 1991年,德国国家数学与计算机研究中心(GMD)设立了一个部门与HLRZ共同研究科学视算与VR技术,重点是研究关于使用HLRZ的CM—2和CM—5连接需要的并行性。
GMD近期用于VR的配置有:VPL数据手套和头盔显示器,boom—mounted显示器。VR的应用包括:医学、流体的流动,分子建模和机器人学。具体的研究课题有VR表演,冲突检测,装订在箱中的物体的移动,高速变换以及运动控制。
GMD的新型应答式工作台(Responsive Work—bench Environment)允许用户直接与工作台上出现的物体进行交互式操作,用户可以控制物体的运动、表演和立体外观,并辅以头部跟踪、观察窗、语音识别与姿势识别等。
目前正在进行的另一项目是利用二维卫星云图,对地球环境进行多维演示虚拟模型的虚拟重构。该项目力图将信息分割成为多达30各项关联的信息曾,并显示信息层之间的各种独立的关系。应用VR技术,在多用户模式中,将上述数据按1:1的比例转动,并能以不同的透视(如鸟的眼睛或人的眼睛)方法显示虚拟环境。近程气象预报数据文件由CM—5上的仿真装置提供。气象预报数据经HIPPI网传到CM—2上再现出来。
GMD的连接机,正被用来测试冲突检测和其他一些VR软件在大规模并行计算中所起的作用。GMD还计划对声音以及其他一些人机工程学课题的作用展开研究。
(7)Esprit的科研项目为在人工现实环境中进行手工控制及过程控制的手套高级接口,正在研制一种操作虚拟物体的手套式外部骨骼接口系统。其主要优点是使操作员能够重复地感知内力和外力。该项目的一大成果是在意大利比萨市的Scoula Superiore Santa Ama工艺实验室研制出了这种工艺(Arts Gloue)。这种手套的结构特点是在手套周围有支持每个手指头运动的传感器。手的弯曲伸展运动由这些传感器记录。手套上记录了20个自由度。手与前臂的骨骼被连接起来,这种手臂综合结构具有良好的灵活性。
(8)英国Grranfield的ARRL与空气肌肉(Airmuscle)有限公司设计并建成了一个由数据收集与反馈组成的双手套系统。数据输出手套由20个横向分布在手下的力传感电阻组成。相应地,在反馈系统也有20个供查找的空气袋与之对应。
1992年研制的一种增强型反馈手套,有较高压强的空气袋。这种增强型手套总共有30个空气袋,尤其是中指尖,食指尖上的小空气袋的压强最大。随着空气袋不断地充气、放气,把虚拟物体的反馈传递到戴“手套”的人的手上。在手套背面(用于手背面碰撞)以及中指、食指的侧面增加一个空气袋,可以改善抓握像铅笔之类的细小筒形物体的感觉。
3. 日本的研究状况
日本在虚拟现实方面的研究工作,除了在游戏领域以外,一般集中于有潜力的能够加强人机接口能力的研究项目上。在日本,大部分虚拟现实硬件是从美国进口的。大规模的应用集中在游戏方面。其中,Sega Enterprises 和Nintendo公司的产品居于市场的领导地位。Sega Enterprises公司在家庭视、听机器方面业绩不错,并以挑战者的姿态进入娱乐领域。
(1)NEC公司的CAD系统 NEC公司计算机和通信分部中的系统研究实验室开发了一种虚拟现实系统,它能让操作都使用“代用手”去处理三维CAD中的形体模型。该系统通过VPL公司的数据手套把对模型的处理与操作者手的运动联系起来。这种输入装置通过磁传感器和光纤来收集手的位置和手指弯曲情况的数据,操作者戴上两只手套,系统就在屏幕上显示相应的两只“代用手”对模型的使用情况。手作某种运动。
“代用手”也作某种运动。系统能把两个终端联系起来进行综合处理。在这种情况下,在屏幕上能看到 4 只“代用手”。系统中的三维“幻境”图象是一家美国公司Solidray Laboratory提供的。这种Solidray公司的系统配有一种液晶快门眼屏,可实现左眼和右眼之间的图象之间的切换。
(2)ATR研究所的手势识别 京都的先进电子通信研究所系统研究实验室的开发者门正在开发一套系统,它能用图象处理来识别手势和面部表情,并把它们作为系统输入。该系统将提供一个更自然的接口,而不需要操作者戴上任何特殊的设备。系统通过置于头顶上的两台CCD照象机获得图像。就手势而言,它对手的图像进行抽象,直接分析出掌心及指尖的位置。这些测试数据提示了手的形状和位置信息。例如,测试出指尖到掌心的距离,使操作者能够区分出手指是否张开。
目前,他们所做的识别都是针对静态手势的,Takemura准备进行动态手势识别的开发。ATR研究所的专家们相信如果系统能识别手势的连续变化,那么它就能把各手指区分开。ATR研究所正在视线及面部表情检测方面投入力量。
(3)受力反馈装置研究情况 在触觉方面的研究要落后于视觉和听觉。但是,触觉受力情况也是虚拟现实技术中重要组成部分。例如,我们撞上了一堵墙,我们就回被弹回来。在虚拟现实技术中能在多大程度上重视这些触觉和受力情况?下面介绍日本的三个单位在这方面的研究情况。
Tsukuba大学 “为了加强操纵时的感觉”, Tsukuba大学机械工程学院的Hiroo Lwata解释说,“我们需要研究实时的身体感觉和方向感觉的共同作用”,lwata的一个装置是一台受力反馈显示系统。这套系统有一个称作“受力显示”的操作机构,它跟踪手的运动。这一单元有6个自由度。传感器检测手的位置及运动情况。
在一项应用中,操作移动屏幕上的虚拟手,当屏幕上的手碰到一个物体后,机械化控制的操纵电机则限制操作者手的运动,产生一种受到阻力的真实感觉。类似地,当一个虚拟的皮球被抓在手里的时候,操作者的手能感到有弹性,而当举起一个物体时,操作者能感到物体的“重量”。
产品科学研究院 产品科学研究院是由日本国际工业和商业部所属的工业科学和技术代办出经营的。该院的一位专家Yukio Fukui,开发了一种用X、Y记录器的受力反馈装置。这种装置记录运动相对于X轴和Y轴的变化。专家们曾用它记录过振动或温度的变化。Fukui把它们应用于一个虚拟现实的“游戏棒”中,这个记录器的端部单元含有4方向应变片,把一手指伸入屏幕上有一光标凹部分,会看到屏幕上有一光标同步移动。这种感觉与通常的鼠标器操作并没有什么不同。
但光标试图“咬入”物体时,X、Y记录仪就会停下来。“由应变片来测量手指的力的大小和方向”,Fukui解释说,“光标在屏幕上的位置信息被反馈到X、Y记录仪中,手指的运动是受到限制的,就像有的人说的那样,‘你只能走那么远’”。
东京大学 东京大学的原岛研究室开展了3项研究:
其一是人类面部表情特征的提取;
其二是三维结构的判定和三维形状的表示;
其三是动图像的提取。
东京大学的广濑研究室介绍了4项最新研究成果:
其一是类似CAVE的系统,用三个摄象机摄取的图像投影在3个屏幕上;
其二是用HMD在建筑群中漫游,头布安装有3个测量自由度的传感器,脚下的踏板上有两个测量传感器(分别用于向前后运动和向左右转弯);
其三是人体测量和模型随动。
在头部、后背、左前臂和右前臂各装一个传感器(每个传感器有6个自由度),由此得到人体的姿势,计算机显示的虚拟人体随真实人体的运动而运动;其四是飞行仿真器。实验者坐在6自由度的震动坐椅上,仿真中坐椅的振动模拟真实坐舱。在背投式大屏幕(约2x3 m)上显示飞行中的场景变化。
4. 印度的研究状况
实际上,印度用户对虚拟现实技术及其应用不够重视,为此,印度电子部(DoE)成立了一个特别兴趣小组(SIG)来提高印度IT行业对虚拟现实技术的认识。Doe还决定成立虚拟现实技术展示中心。SIG成员包括DoE,负责协调工作;航空开发局(ADA)、Tas咨询公司(TCS)、虚拟现实真实技术公司(VRRT)、高级计算开发中心(C—DAC),作为开发机构;Bhaba原子研究中心(BARC),作为用户;Silicon Graphics公司,作为供货商;国家软件技术中心(NCST),作为发起者。同时,Tata Eixsi公司也有兴趣成为SIG成员。
实际上,印度用户对虚拟现实技术及其应用不够重视,为此,印度电子部(DoE)成立了一个特别兴趣小组(SIG)来提高印度IT行业对虚拟现实技术的认识。Doe还决定成立虚拟现实技术展示中心。SIG成员包括DoE,负责协调工作;航空开发局(ADA)、Tas咨询公司(TCS)、虚拟现实真实技术公司(VRRT)、高级计算开发中心(C—DAC),作为开发机构;Bhaba原子研究中心(BARC),作为用户;Silicon Graphics公司,作为供货商;国家软件技术中心(NCST),作为发起者。同时,Tata Eixsi公司也有兴趣成为SIG成员。
虚 拟 技 术
第2章 虚拟现实的组成
第2章 虚拟现实的组成
交互性和沉浸感是虚拟现实技术的三“I”特性中的两个特征,根据构造虚拟现实系统所倾向的特性不同,即沉浸程度的不同,可以分成不同的VR系统。
2.1 虚拟现实的分类展
虚拟现实系统一般可分为桌面虚拟现实系统(Desktop VR)、沉浸式虚拟现实系统(Immersive VR)、分布式虚拟现实系统(Distributed VR)和遥视VR系统( Telepresence VR)。
2.1.1 VR的分类
在第一章所介绍的是虚拟现实的一种概述的泛指的描述,实际的VR技术研究都是局部和程度不同地展开的。按VR技术所涉及的虚拟环境、沉浸的程度及其用户的交互方式的不同,大致可分为如下几种类型:
1.按虚拟环境的信息来源和生成途径
1)真实世界的遥视(Telepresence)。用户不在真实世界中的某个现场,但感觉恰如身临其境,并可据此介入对现场事件的遥操纵,如VIEW用于太空机器人。
2)真实世界的计算机实时仿真,而且仿真物体的活动符合自然规律。用户可通过感觉交互取得如同熟知事物一样的体验,例如在CAVE环境中按响一个“铃铛”。
3)上述的(1)和(2)的混合,例如Videoplace中实验者在屏幕画面中游泳、HMD的“看穿”情况等。
4)纯由计算机生成的超现实景物,而且不一定符合自然规律。例如把抽象的数学模型可视化,VR技术研究分子结构等。
2.按视觉环境的构造方式
1)固定CRT形式,放于桌面,可多人共享,用户约束感小,易于实现交互,但视角小,无环视感。一般要求用户佩带光闸眼镜。并配以视线跟踪装置。
2)HMD型式,一般用两个LCD屏形成立体对,头盔结构中安装广角光路,同时附有视线运动检测装置,用户走动自由,但约束感较强,LCD分辨率低。
3)BOOM(双目全向监视器,Binocular Omni—Orientation Monitor)形式类似于HMD,但显示装置悬挂于机械臂,重量得到平衡,位置与姿态得到测量,用户用手操纵,约束感适中,装置可配以高分辨率的CRT对。
4)CAVE型式、大视角、高分辨率、环绕视觉感较强,用户只需佩带轻质光闸眼镜,约束感小,也可多人共享,但需较大的按装空间和投影系统。
5)Videoplace型式,用户无需佩带任何硬件装置,毫无约束感,但对人体的位置与姿态的检测较难,缺乏触觉、力觉交互手段。这种“无障碍”方式目前不是VR的主流。
3.按VR的沉浸的程度
按VR沉浸程度的不同可将虚拟现实系统分为桌面虚拟现实系统(Desktop VR),沉浸虚拟现实系统(Immersive VR)、分布式虚拟现实系统(Distributed VR)。
2.1.2 桌面VR系统
桌面VR系统使用个人计算机和低档工作站实现仿真,计算机的屏幕作为参与者观察虚拟环境的一个窗口。各种外部设备一般用来驾驭该虚拟环境,并用于操纵在虚拟场景中的各种物体,这些外部设备包括鼠标器、跟踪球、力矩球等等(下图是桌面VR系统的基本组成)。桌面VR系统虽然缺乏头盔显示器的那种完全沉浸功能,,但它仍然比较普及,这主要是因为它门的成本和价格相对较来说是比较低的。
桌面VR系统要求参与者使用位置跟踪器和手拿输入设备,如3或6自由度鼠标器、游戏操纵杆或力矩球,参与者虽然坐在监视器前面,但可以通过屏幕观察范围内的虚拟环境,但参与者并没有完全沉浸,因为他仍然会感觉到周围现实环境的干扰。
在桌面VR系统中,立体视觉效果可以增加沉浸的感觉。一些廉价的三维眼镜和按装在计算机屏幕上方的立体观察器、液晶显示光闸眼镜等等都会产生一种三为维空间的幻觉。同时由于它采用标准的CRT显示器和立体(Steroscopitic)图象显示技术,其分辨率较高,价格较便宜。因此易普及应用,使得桌面VR在各种专业应用中具有生命力,特别实在工程、建筑和科学领域内
声音对任何类型的VR系统都是很重要的附加因素,对桌面VR系统也不例外。声卡和内部信号处理电路可以用廉价的硬件产生真实性很强的效果。在桌面VR系统中,常常用耳机代替扬声器。
桌面VR软件允许参与者构造一种场景或结构(如建筑物),然后引导所产生的虚拟环境。如同其它VR系统一样,它能产生一种三维空间的交互场景。通过交互操作,使虚拟环境的物体平移和旋转,以便从各个方向观看物体,也可也进入里面,因此它具有“Through Walk”的进入功能,在虚拟环境中浏览,就像在虚拟环境中漫游一样。
桌面VR系统可以使用多种输入设备,但并不是所有的设备和功能都适于各种应用程序,这取决于软件开发人员是否编写了某个设备的驱动程序或指令。
桌面VR系统和沉浸VR系统之间的主要差别在于参与者身临其境的程度,这也是它们在系统结构、应用领域和成本上都大不相同的原因。桌面VR系统以常规的CRT彩色显示器和三维立体眼镜来增加身临其境的感觉,主要交互装置为6自由度鼠标或三维操纵杆。沉浸虚拟现实系统则采用头盔显示器HMD,主要的交互装置为数据手套和头部跟踪器。
2.1.3 沉浸式VR系统
沉浸式VR系统利用头盔显示器和数据手套等交互设备把用户的视觉、听觉和其它感觉封闭起来,使参与者暂时与真实环境隔离,而真正成为VR系统内部的一个参与者。他可以利用各类交互设备操作和驾驭虚拟环境,其系统的基本组成如下:
1. 沉浸式VR系统与桌面VR系统的不同之处
1)具有高度的实时性能。如当用户移动头部以改变观察点时,虚拟环境必须以足够小的延迟连续平滑地修改景区图象。
2) 同时使用多种输入/输出设备。例如,用户把手指指向一个方向并说“那里!”,这样一个简单的行为会产生三个同步事件,这些事件分别来自头部跟踪器、数据手套及语音识别器,这说明多种输入/输出设备的并行处理是虚拟现实的基本特征。
3) 为了能够提供“真实”的体验,它总是尽可能利用最先进的软件技术及软件工具,因此虚拟现实系统中往往集成了许多大型、复杂的软件,如何使各种软件协调工作是当前虚拟现实研究的一个热点。
4) 它总是尽可能利用最先进的硬件设备、软件技术及软件工具,这就要求虚拟现实系统能方便地改进硬件设备及软件技术;因此必须用比以往更加灵活的方式构造虚拟现实系统的软、硬件体系结构。
5) 提供尽可能丰富的交互手段。在设计虚拟现实系统的软件体系结构时不应随便限制各种交互式技术的使用与扩展。
2. 常见的沉浸式VR系统
(1)洞穴自动虚拟环境(CAVE)又称工作室,它是一种完全沉浸式VR系统,是芝加哥伊利诺依斯大学研究的一个课题。CAVE所用显示器是一个30x30x30 cm立方体的后投影屏幕,是一个能产生沉浸感的立方空间。利用立体投影仪把图象投射到左、中、右三个墙面,天花板和地面也用同样的方法投射。这5个面就能构成由计算机生成的虚拟空间。它最多允许10个人完全投入该虚拟环境。
其中一个人是向导,他利用输入设备(如头盔显示器、位置跟踪器、6自由度鼠标器、手持式操纵器等)控制虚拟环境;而其他的人使用同样的输入设备,却是被动观察者。他们只是一起前进。所有参与者都带上立体光闸眼镜观看显示器。
(2)另一类是坐舱式VR系统,置身在一个坐舱内,它有一个向外可以看到虚拟空间的屏幕。在该环境中向周围观望,就可转动坐舱到感兴趣的方向。用户在舱内可以可不戴各种显示器或交互装置、身上没有负担地和虚拟空间交互。人们只要进入坐舱就可以进入虚拟环境,它是一种代表最古老的虚拟现实模拟器,但它并不属于完全沉浸的VR系统。
当参与者进入坐舱(实际上是一个封闭物)后,就可以通过坐舱的窗口观看一个虚拟环境,该窗口是由一个或多个计算机监视器构成,用来显示虚拟场景。该坐舱给参与者提供的沉浸程度类似于头带显示器。一旦进入坐舱,参与者就可以利用控制设备驾驭虚拟环境。跨过进入控制室的门槛后,每个参与者就可以自由地与坐舱中的其他参与者进行交互,但所有坐舱必须连接同一个虚拟环境。
坐舱设计有单人坐舱和组合坐舱。单人坐舱允许一个参与者在虚拟环境中旅行和活动,这种类型的VR系统通常用于娱乐中心和各种训练飞行员、警官、军事人员的环境。这种系统往往包括很多联网的坐舱,可使一群参与者同时进入一个虚拟环境。而组合坐舱允许几个参与者在同一个坐舱中,进入同一个虚拟环境,该坐舱内配备有一个很宽的屏幕、几把椅子、以及每人一个控制台板。
(3)投影式VR系统。投影式VR系统也属于沉浸式虚拟环境,但又是另一种类型的虚拟现实经历,参与者实时地观看他们自己在虚拟环境中的形象并参与虚拟环境交互活动。为此使用了一种称为“蓝屏”的特殊效果,面对着蓝屏的摄象机捕捉参与者的形象,这类似于进行电视天气预报时投影一张地图那样的过程。实际上,蓝色屏幕特别适合于运动图像和电视,它可以将两个独立的图像组合成另外一个图像。
在投影式虚拟现实系统中摄象机捕捉参与者的形象,然后将这形象与蓝屏分离,并实时地将它们插入到虚拟境界中显示,再用一个视频摄像仪将参与者的形象与虚拟环境本身一起组合后的图像,投射到参与者前面的大屏幕上,这一切都是实时进行的,因而使得每个参与者都能够看到他自己在虚拟景物中的活动情况。在该系统内部的跟踪系统可以识别参与者的形象和手势,
例如来回拍一个虚拟球,而且只通过手指就可以改变他们在虚拟环境中的位置,从而使得参与者可以驾驭该虚拟环境,并与该环境内的各个物体交互作用。一般情况下,参与者需要一个很短的学习过程,然后就能很快地、主动地参与该虚拟环境的活动。
投影式虚拟现实系统对一些公共场合是很理想的,例如艺术馆或娱乐中心,因为参与者不需要任何专用的硬件,而且还允许很多人同时享受一种虚拟现实的经历。
2.1.4 遥现VR系统
纯由计算机生成的虚拟现实环境主要是对真实世界客体及事件的实时仿真,可用于模拟训练(航空飞行,港口引航,车辆驾驶等),或用于工程辅助设计(建筑布局、漫游、机械结构选型等),用户通过与视景、声响环境的交互取得如同熟知事物一样的体验。
这类虚拟环境还可以是对某种抽象概念模型的直观显示,作为各种科学计算可视化技术的完善可扩展,例如由计算机生成虚拟“风洞”,研究者可以通过三维视景考察环绕飞行器的流线特征,控制流场的时空变化尺度等。
纯由计算机生成的虚拟现实环境主要是对真实世界客体及事件的实时仿真,可用于模拟训练(航空飞行,港口引航,车辆驾驶等),或用于工程辅助设计(建筑布局、漫游、机械结构选型等),用户通过与视景、声响环境的交互取得如同熟知事物一样的体验。
这类虚拟环境还可以是对某种抽象概念模型的直观显示,作为各种科学计算可视化技术的完善可扩展,例如由计算机生成虚拟“风洞”,研究者可以通过三维视景考察环绕飞行器的流线特征,控制流场的时空变化尺度等。
当在某处的操纵者操纵一个虚拟现实系统时,其结果却在远地的另一个地方发生。这种类型的投入要求使用一个立体头盔显示器和两台摄象机,可以提供视频通道。操作者的头盔显示器将它们组合成三维立体图像,这种图像使得操纵者有一种深度感,因而在观看虚拟环境时更清晰。有时操作者可以戴一个头盔,它与远地平台上的摄像机相连,也可以使用操纵杆或其他输入设备对其进行操作。
输入设备中的位置跟踪器可以控制摄象机的方向、平移运动、甚至操纵臂或机械手;自动操纵臂可以将力反馈一并提供给操作者;有的还可以通过远地平台的话筒,获得听觉信息。
作为一种全新的人—计算机接口技术,虚拟现实的实质是使用户能与计算机产生的数据空间进行直观的、感性的、自然的交互。在这种意义下,遥视环境回避了实时图形仿真技术目前的难点即高质量彩色图形的生成和实时刷新。因而,遥视可以作为研究虚拟显示技术的一个简易的“入口”。另外,遥视技术本身对于半自动机器人、无人驾驶车辆和恶劣工况下的各种遥操作等都具有很重要的应用前景。
遥视系统的一个典型应用是视频会议——通过把每位与会者的真实图像与虚拟会场结合起来,就可以让处于不同地区的与会者坐到同一张会议桌旁进行视频会议。教材上第25页图2.3所示框中人与框外人仿佛在个窗而谈,他们之间还悬浮着一个栩栩如生的空中产品模型,实际上他们之间相隔千里之遥。
虚拟现实(VR)与遥视(TP)VR之间是不同的。VR的创建完全依赖于计算机图形学基础,它是用计算机中的几何建模(Modeling)和成像(Rendering)等图形图像处理技术创建人工环境,当观察视点改变时,通过投影变换等技术,达到在虚拟世界中漫游的目的。而遥视(有人称之为临场感)虚拟现实系统中的环境是通过2台摄象机将景物摄入到计算机中组合而成的,当观察点改变时,他们是通过位置跟踪器来控制摄象机的方向,达到在环境中“飞行”或“浏览”的目的。
而且遥视VR系统要求通信线路的频道非常宽,信号容量足够大,以便传送二路视频信息、二路音频信息以及远程平台和操作者之间的控制数据。
下面是我国学者开发的遥视环境实验平台VTE,它具有基于不同机理的体视和视线跟踪装置,为遥显和虚拟现实技术的研究提供了实验手段。
1. 遥视环境的原理结构 遥视环境的基本原理结构如下图所示:
遥视环境的图像实际上是遥视视景在计算机系统中的复现,VTE利用一对摄象机模拟人的双眼,同步获取左、右眼的有视差的图像(上图中的a和b)。摄象机对平行、水平、等高度的安装在观察器上,可以同步地做俯仰(绕水平轴)或偏转(绕公共垂直轴)运动。另外,两台摄象机的光轴夹角是可变的,当受控制向内会聚时,便模拟了人眼的“幅角”使得“视线”在凝视目标处相交,幅角对三维空间中的深度感有着直接和重要的作用。
整个视觉遥视环境的设计和实现主要涉及到两个方面的关键技术:体视显示基于双目视差的机理,使用户观察到具有深度感的立体视景;视线跟踪实时、在线监测用户的视线变化,使双摄象机立体观察器作出同步的姿态跟随运动,以改变摄像的取向。
2. 体视显示
VTE的体视显示系统包括三种形式:
(1)CRT终端—液晶光闸眼镜由双摄象机获取的左、右眼两幅图像,经过合成处理,可以分时交替显示于CRT终端。用户佩带液晶光闸眼镜,左、右液晶片在驱动电信号的作用下,以与图像显示同步的速率“开(透光)”“闭(遮光)”,使用互双眼分别看到相应的左、右摄象机的图像。根据双目视差与深度距离的正比关系,人的视觉生理系统可将视差图像融合成立体视像。
上述方案的主要技术难点在于如何减弱闪烁现象。因为按照这种分时观察方式,单眼观察图像的频率即为视频信号场频的一半,所以对于通常的摄象机和监视器,无论是PAL制式(50Hz场频),或是NTSC制式(60Hz场频),相应的单眼观察频率都低于人眼的临界闪烁频率(43Hz)。
为此VTE利用多媒体视频卡将视频信号转换成计算机终端显示的RGB信号,将其存入视频卡的帧存储器VRAM中,然后在VGA扫描时序的控制下读出,送往高场频的CRT终端,由于VRAM的缓冲作用,“读出”的场频可通过VGA卡的模式设置选择较高的数值,这样就形成了一种“慢存快读”的机制,显示场频的提高可使图像闪烁现象明显地得到改善。这里需要配合的是液晶光闸镜片的“开”、“闭”频率响应特性,为此研制了液晶光闸片极其快速的驱动电路,较好地实现了与图像显示的同步。
(2)大屏幕投影——液晶光闸眼镜 将第一种的分时图像CRT显示改为大屏幕投影显示就得到了这一种,上述的CAVE系统构造了一个4面投影屏幕形成的立方体虚拟“洞穴”,各屏幕(背投式)同时显示从某一固定观察点看到的所有图像,由此提供一种全景式的环境。
CAVE需要复杂而又昂贵的计算机投影控制系统。VTE采用球面大屏幕,投影机位于球心,具有与双摄象机立体观察器相同的俯仰和偏转两个位置,在球屏上相应移动,始终保持以观察者正前方,从而形成一定的视景环绕感,这种方案的主要问题是,由于观察者的视点与投影中心(球心)在空间中的位置不重合,因而必须修正投影机的跟随角度,防止画面在位置和增益方面的透视变形。
3. 视线跟踪
心理学的研究表明运动的透视图像即使不是立体的也能引起显著的三维感觉,因此,图像显示跟随视线变化不仅为景物观察所必需,而且还提供了极为重要的运动视差。运动视差与双目视差的结合利用可形成强烈的体视感。
确切地说,视线的变化应指观察者眼球的运动,但眼球的运动还有待进一步的研究。由于常常限于颈关节的俯仰和偏转两个自由度,所以目前一般通过头部运动的测量来近似。
在VTE系统中视线跟踪信号用于控制双摄象机的角运动,以及大屏幕投影机的角运动,后者的观察者头部运动的测量有4种方式:
(1)惯性式 用固定于头盔顶部的双轴摆式加速度计作测量元件,其中的两个加速度计的输入轴V1和V2正交,以地心引力线为基准,同时对两个方向的加速度进行测量。该方案结构简单,响应快,但加速度计的漂移和噪声较难处理。
(2)光学式 利用两台面阵CCD摄象机跟踪固定在头盔上的标识架的空间运动。标识架为一个不等边三角形,三个顶点上各有一个红外发光管,根据交会测量的原理可以通过解算光点的三维坐标进而求得头部运动的位姿变化角度。这种方法要求在精度与实时性方面适当折衷,需要标定摄象机的内外方位元素。
(3)超声波式 按三角形布局的三个超声波发生器安装于头部上方(或前方),接受安装于头盔顶部(或头盔前部的液晶光闸眼镜上)。控制单元将检测到的声波相位差转换成位姿信号,国外已有这种装置的商品。
(4)机械式 构造一个二自由度的轻质框架,框架内环系于头部,可与头部一起作偏转(相对外环和基座)。基座与人体穿的刚性“背心”固连。这种方法给用户造成约束和干扰,但由于用电位计直接测量两个转角,因此工作可靠、简单、完全实时。
4. 临场感
VR技术的特征是使用户具备一种在计算机环境中的沉浸感(The Illusion of immersion)。即用户觉得自己是虚拟环境中的一个部分,能全身心地投入计算机事件,沉浸于其中。沉浸感被认为是VR系统的性能尺度,但又是难以量化的尺度。视觉遥视环境的情况,也就是常称的临场感。对于VTE,影响临场感的主要因素是:
体视图像中的深度信息(是否与用户的生活经验相一致),画面的视野是否足够大,视线跟踪的时间或空间响应是否滞后或不准确,以及头盔装置的约束程度能否为用户适应。但临场感的评价需要与具体应用背景相结合(例如飞行训练中,驾驶员对于头盔的约束并不会感到过分),这是VTE系统进一步研究的方向。总之,无论VR系统如何完善,最终的虚拟环境只能是对真实世界的一种逼近。
2.1.5 分布式VR系统
分布式VR系统是在沉浸式VR系统的基础上将不同的用户(参与者)联结在一起,共享一个虚拟空间,使用户协同工作达到一个更高的境界。分布式VR的基础是分布式交互仿真DIS(Distributed Interaction Simulation)。
上述VR技术可以使动态的虚拟环境机栩栩如生,但它们并未解决资源共享。许多VR应用要求若干人能参与同一个虚拟环境,这就是协同工作的VR(Cooperative VR)。
==========在工作室CAVE中,处于同一个物理空间的所有参与者,可以观看同一个虚拟环境。但很有可能的是,这些人是通过运行在网络上的软件联系在一起的,他们既可以在同一地方,也可以在世界上各个不同地方,彼此间通过远距离网络联系在一起。应用软件与渲染工具、音频工具及其他快速存取工具,可以分别在各自独立的系统上运行。
如果各个系统原来是独立的,那么可以通过共享存储器联系起来,在系统中可以传送有关物体的状态信息。
例如,各个独立的工作室可以采用Systran公司的SCRAMnet联系在一起。在同一地方分布很广的各个系统,可以采用Mak Technologies公司的VRLink软件工具,通过以太网或FDDI网来传送状态信息。
状态信息和数据结构是以包的形式发送到网络中其它各系统中的,以保证各个系统具有一致的景观。值得指出的是,有时可能会产生暂时不一致的情况,,尤其是在各系统通过低带宽、长距离的网络连接时。
网络传输中,每个物体(实体,Entity)有唯一的名字,在每个循环中发送坐标信息。一些虚拟物体“生活”在本地机器上,而另一些是在远程机器上。
每个远程虚拟物体通过网络信息来控制。当只有两个参与者时,这种管理渠道上不会超载。为了保持低频通信,每个信息都尽可能压缩,并当虚拟物体位置信息改变时也可发送信息。在每次模拟循环时,需读取操作棒传感器数据,并转换成VR的空间坐标。所获数据由网络发送,并更新远程游戏棒的“当地”表示。
分布式多用户系统最重要的特性是它们对于多用户协作模拟的适应能力。VR应用的第一个分布式系统是在PC机上开发的一个多用户虚拟“工作室”,于1992年4月在波士顿计算机展览会上展出。
下面介绍一个双用户VR系统来建造和修饰一幢房子的操作情景的描述:“你若决定从前门墙开始建造你的房屋,你的棒指向一个看起来像堵墙中间有道门的物体。
你再掀一下棒,棒的辐射线与墙相互作用,这时有一虚线组成的矩形框包围了墙,标明墙已被选中。你的另一只手控制一根转移你的视线和现在所选墙的游戏棒。向后拉游戏棒,当用户向后移动,把墙也沿着地面移动工作区域中心,由于用户无法确定是否正对着墙,便询问软件。当用户转动头部时就可以看见另一用户拿着红棒在附近摆动,听到回答声,这个声音好似来自那根红棒所在的位置。当用户走近时,声音也越来越高……”
这个双用户系统是两台基于Intel的PC机(每一个参与者一台),每台PC机有两块图形加速板。系统生成的立体图像发送给参与者的HMD,Logitech超声跟踪仪跟踪头部位置,而操作棒的位置/方向由Polhemus电磁跟踪仪取样获得。用户的声音是由HMD中的小麦克风接收,并传送给另一个参与者的Beachtron处理器,MIDI产生的交互声音混合送入用户的NMD的立体头部麦克风中。
通过在每台PC机上运行重复的模拟,并由一局域网连接,就可创建共享VR。一台PC机上模拟的任何改变都会由网络传送给另一台PC机,反过来也是一样。
在此例中,这两个用户使用的是运行在同类型计算机上完全一致的虚拟世界。在逼真的场景中,当3个或更多的参与者在一给定模拟中相互作用时,各个硬件运行环境的相似性也许就不实际了。这种情况下,操作系统必须能在不同计算机上处理不相似的虚拟世界,因此必须有一种专用于这类分布式的操作系统,即分布式操作系统。
2.1.6 扩展现实VR系统
目前,由于计算机技术性能及价格两方面的原因,要实现理想的虚拟现实还有许多困难。扩展现实(也称增强现实)系统虽然不能算是沉浸式VR系统,但计算机扩展现实允许用户自由地把活动的视频信息与计算机生成的虚拟物体结合起来。例如Sun公司的虚拟全息工作站(Virtual Holographics Workstation)就是一种计算机扩展现实系统。这种系统具有广泛的应用前景,办公自动化就是计算机扩展现实系统的典型应用。
由于没有CRT显示器的物理限制,办公室的工作人员可以利用计算机扩展现实系统把他们的台式工作空间扩展到整个视觉领域。戴上虚拟现实立体眼镜后,用户将会看到虚拟文挡及虚拟文件柜。用户可以像现实生活中那样在计算机扩展现实系统中打开抽屉,取出虚拟文件并对文件进行编辑修改。当用户取下立体眼镜后,他将会发现眼前一无所有。
扩展现实可增强或补充人眼所看到的东西,并将图形和文字重叠在真实的、物理存在的物体上。这类系统可以为操作员提供与他所看到的现实环境有关的、存储在计算机中的信息。
扩展现实技术可以增强操作员对真实环境的感受,穿透型头戴式显示器将计算机图形和操作员的实际环境重叠在一起。
在这种头戴式显示器中,光源产生的图像被光学系统引导到组合器(即屏幕),组合器是一种专用屏幕,它对于从真实环境进来的光线呈现透明特性,但对准它的光线被头戴式显示器的光学系统反射掉,这样就能使得操作员可以清晰地看到计算机图形与其环境重合在一起。用于增强现实技术的光源可以是小型阴极射线管(CRT)、发光二极管(LED)或液晶显示器(LCD)。
另一种类型的扩展现实采用闭路头戴显示器,这种显示器可将看不见的物理现象转换成可见光。该技术使用最广泛的一种就是增强夜晚的图像,这是通过用红外技术的夜视仪实现的。
视力不太好的人可以用一个头戴式显示器而获得一个非常清晰的放大视图。有些系统可以将电子显微镜摄取的传送给头戴式显示器,但它们并不属于虚拟现实范畴。因为它们并不牵涉对环境的计算机图形表达,而只是修改或增强实时存在的图像。
扩展现实VR系统主要用于军事航空和计算机维修,由光学器件(由光纤和透镜组成)将图像送到组合器,可以在显示计算机生成的图像的同时,允许真实环境的图像也呈现在操作员面前。操作员可以看到说明和操作的实际设备重叠的图像。从而可以对照虚拟环境中的说明,来修理真实环境中的设备。
在增强现实系统中,为了使真实存在的物体与图文达到精确的重叠,要求具有位置跟踪传感器,因为计算机需要知道操作员的手和他所使用的物体之间的相对位置。在增强现实系统中的图像需要与现实环境仔细地校准,实质重叠,这样才能达到理想的效果。
2.2 VR系统的体系结构
书上第31页的图2 .5给出了典型的VR系统体系结构。其中主要包括虚拟环境产生器、效果产生器、应用系统和几何构造系统等。
图2 .5见下页
1. 虚拟环境产生器
虚拟环境产生器是VR系统中的核心部件,它由计算机软硬件系统、软件开发工具及配套硬件(如图形加速卡和声卡等)组成。它实质上是一个包括数据库和产生立体图像的高性能计算机系统,数据库包括虚拟环境中对象的描述及运动对象的运动、行为及碰撞作用等性质的描述。可见虚拟环境产生器实际上是一个环境构造程序,它由一系列子程序组成,用于设计参与者在虚拟环境中将会遇到的景和物。
它的功能主要有:对虚拟环境中物体对象及其运动、行为、碰撞作用的特性进行描述;生成左、右眼视图合成三维立体图像;为声音定域系统实时地提供与参与者头部位置和方向信号;不仅产生和显示一个虚拟境界,还需处理输入、输出数据,并将这些数据融合在虚拟环境中。它的输出要转换成参与者的视觉和听觉信息,因此它是VR感觉反馈的一个关键部件。
虚拟环境产生器可以产生和处理虚拟境界,它可包括一台或多台计算机,用于组合、处理和显示与产生一个虚拟境界有关的全部数据,包括发送给参与者或从参与者发来的全部信息,或早已存于VR系统中的任何数据。由于人们主要是通过视觉来获取信息的,因此虚拟环境产生器构造的虚拟环境必须逼真,其立体图像生成必须实时,才能使参与者有身临其境的幻觉。
(1) 三维声音处理器
三维声音处理包括声音合成、3D声音定域和语音识别。在虚拟环境中,一般不能仅依靠一种感觉,错综复杂的临场感通常需要用到立体声。为此需要设置静态及动态噪声源,并创建一个动态的声学环境。在VR应用中,这个问题甚至比实时处理数据更重要,因为当进入信息流影响数据库状态时,用声音来提醒用户注意至关重要。
人们根据到达两耳的声音强度与相位差,来区别发声的方向与位置,而且善于同时处理多个事件。例如当视觉系统处理某一事件时,听觉系统同时以比视觉系统低得多的频带宽度在后台工作。由于人们的听觉系统很善于在众多的声音中选取特定的声音,因此,在VR系统中加入声音合成装置对沉浸感的经历十分有效。人们正积极进行用非语言听觉(nonspeech—audio)研究低级传感器和听觉器官的高级认知因子,从而实现交互修改和听觉参数识别、分离、定域多个同时发出的声源的研究。
虚拟环境产生器中的声音定域系统对于利用声音的发生源和头部位置及声音相位差传递函数,来实时计算出声音源与头部位置发生分别变动时的变化。声音定域系统可采集自然或合成声音信号并使用特殊处理技术在360°的球体中空间化这些信号。例如,我们可以产生诸如时钟“滴答”的声音并将其放置在虚拟环境中的准确位置,参与者即使头部运动时,也能感觉到这种声音保持在原处不变。
为了达到这种效果,声音定域系统必须考虑参与者两个“耳廓”的高频滤波特性。参与者头部的方向对于正确地判定空间化声音信号起到重要的作用。因此,虚拟环境产生器要为声音定域装置提供头部的位置和方向信号。
VR的语言识别系统让计算机具备人类的听觉功能,使人—机以语言这种人类最自然的方式进行信息交换。必须根据人类的发声机理和听觉机制,给计算机配上“发声器官”和“听觉神经”。当参与者对微音器说话时,计算机将所说的话转换为命令流,就像从键盘输入命令一样,在VR系统中,最有力的也是最难实现的是语音识别。
VR系统中的语音识别装置,主要用于合并其他参与者的感觉道(听觉道、视觉道等)。语音识别系统在大量数据输入时,可以进行处理和调节,像人类在工作负担很重时将暂时关闭听觉道一样。不过,再这种情况下,将影响语音识别技术的正常使用。
(2) 位置和方向跟踪器
为了与虚拟环境交互操作,必须感知参与者的视线。也就是说,必须跟踪头部的位置和方向。为了在虚拟环境中移动物体甚至移动参与者的身体,就要求跟踪观察者各肢体的位置。这种跟踪可以从手的位置到全身各肢体位置。跟踪装置把这种信息送入应用软件,以确定眼睛位置及视线方向,以便绘制显示器下一帧图像。读出位置、方向及更新图像的速度必须足够快,否则用户会产生不舒服的感觉。
(3) 触觉/力反馈系统
为了增强虚拟环境中身临其境的感觉,必须给参与者提供一些诸如触觉反馈等生理反馈。触觉反馈是指VR系统必须提供所能接触到的触觉刺激,如表面纹理或甚至包括触摸一个开关的感觉等。当我们感觉到物体的表面纹理时,我们也同时也感觉到了运动阻力,因此,VR系统中的触觉/力反馈是重点研究的难题,一旦实现,将极大地增强虚拟现实的真实感。
(4) 几何构造系统
几何构造(Geometry)系统提供了描述仿真对象物理属性(外形、颜色、位置等)的信息,虚拟现实系统的应用系统在生成虚拟世界时需要使用和处理这些信息。一本用已有的几何造型系统软件作为平台,来为虚拟环境中的几何对象建模,获得线框模型。而且还具有立体图像生成、剪裁、消隐、光照模型绘制处理,为几何对象加上颜色、纹理、阴影以及物理特性等功能。
2. 效果产生器
效果产生器是完成人与虚拟环境交互的硬件接口装置,包括能产生沉浸感受的各类输出装置,例如头盔显示器、立体声耳机等,以及能测定视线方向和手指动作的输入装置,例如头部方位探测器和数据手套等。
由于人们通常是通过视觉和听觉来识别物体和形状的,所以虚拟环境产生器生成的三维立体图像部必须在最短的时间延迟内考虑参与者头部的位置和方向,系统内的任何通信延迟都表现为视觉的滞后。如果这种滞后是可感知的,在某些条件下就会使参与者产生晕眩的感觉。这表明VR系统的外围设备并非简单地串在一起,而要仔细地分析外围设备与系统的吞吐延迟,以便系统的视觉滞后达到一个可以接受的范围。
为增加沉浸感的程度,可采用立体眼镜和头盔显示器。其中,头盔显示器所能提供的沉浸感比立体眼镜要好得多,因此虚拟现实系统大多采用头盔显示器。头盔显示器通常固定在用户的头部用两个LCD或CRT显示,分别向两只眼睛显示从虚拟环境产生器的图形板输出的图像。这两个显示屏中的图像是由计算机的两个图形板分别驱动的,屏上的图像存在着微小的差别,类似于我们的“双眼视差”,大脑将融合这两幅图像获得深度感觉。
头盔显示器上还装有头部位置跟踪设备。通过头部跟踪,虚拟现实用户的动觉和视觉系统能够得以重新匹配跟踪,计算机随时可以知道用户头部的位置及运动方向。因此,计算机就可以随着用户头部的运动,相应地改变呈现在用户视野中的图像,从而提高了用户对虚拟系统知觉的可信度。头部追踪还能增加双眼视差和运动视差,这些视觉线索能改善用户的深度知觉。
头盔显示器提供一种观察虚拟环境的一种手段。通常,它必须支持两个显示源及一组光学器件。这组光学器件将图像以预先确定的距离投影到参与者面前,并将图形放大以加宽视域。然而,由于重量方面的考虑,显示源的大小要受到限制。人的视觉系统对于左右两眼图像的调准误差是十分敏感的,这就要求不论显示源和光学器件如何组装,都必须消除调准误差。
头盔显示器上安装了头部跟踪传感器,以便跟踪头的方向信息用于视觉图像的产生。VR听觉系统也将安装在头盔显示器上。
许多不同的技术可以用于头盔显示器的图像显示,最好在具体应用确定之后作出适当的选择。对于初级研究,或经费较少的应用,液晶显示器是最好的选择。
3. 应用系统
应用系统(Application)是面向具体问题的软件部分,描述仿真的具体内容,包括仿真的动态逻辑、结构以及仿真对象之间和仿真对象与用户之间的交互关系。应用软件的内容直接取决于VR系统的应用目的。
4. 仿真管理器
仿真管理器是一个协调景、物、事件、输入信息的专用软件,它使得虚拟环境参与者接近真实生活。该仿真管理程序有时还包含可以立即运行的拟现实应用程序。
2.3 几个典型的VR系统介绍
VR系统走向应用的时间还比较短,但与VR技术有关的研究已经经历了数十年。在VR技术发展的过程中,产生了许多VR原型系统及应用系统。下面简要介绍几个经典的VR系统。
2.3.1 VIDEOPLACE系统
VIDEOPLACE是Myeon Kruger领导的Artificial Reality研究小组20年的研究成果。他们体现了M.W.Krueger提出的无障碍环境(Unencumbering & environmental)人工现实的思想,称为无障碍虚拟环境系统,它是一个综合地运用了计算机图形学和手势识别技术的反应环境(Responsive Environment)。
VIDEOPLACE是众多的虚拟现实系统中的先驱。Krueger认为,人类与计算机相比,进化要慢得多;因此,接口研究应当将重点放在相对不变的人类特性上。计算机应该适应人,而不是相反。很显然,最终的计算机应能对人体有感觉,聆听人的声音,通过人的所有感官传递反应。
在这种思想指导下当其他早期研究者考虑穿着或佩带设备时,Krueger将目标瞄准无障碍的人工现实,Krueger认为人机接口的研究不应当受目前各种技术的限制,应当看到未来的应用,这是Krueger高瞻远瞩之处;但也应注意到,目前要实现无障碍人工现实还有许多困难,而提供适当装备的虚拟现实系统则比较容易实现。
VIDEOPLACE是一个计算机生成的图形环境。在该环境中参与者能看到他本人的图像投影在一个屏幕上;也就是说,VIDEOPLACE把参与者本人的图像与计算机生成的图形环境结合起来,并把参与者在室内的各种活动翻译成计算机生成的图形环境中的行为。参与者可以是一个也可以是多个;当有多个参与者时,屏幕上会在不同位置投影出各个参与者的真实图像。
另外,通过协调计算机生成的静物属性及动作行为,可使它们实时地响应参与者图像的活动。用户坐在桌边并将手放在上面,旁边有一架摄象机摄下用户的轮廓并传送给不同地点的另一个用户,两个人可以相互用自然的手势进行信息交流。同样用户也可与计算机系统用手势交互,计算机系统从用户手的轮廓图形中识别手势的含义并加以解释,以便进一步地控制。诸如打字、画图、菜单选择等操作,均可以用手势完成。VIDEOPLACE对于通信的远程控制很有价值,如用手势控制远处的机器人等等。
VIDEOPLACE是60年代末70年代初实现的。与现在相比,当时的技术相当有限,故系统中没有现在流行的头盔显示器和数据手套等交互设备。以VIDEOPLACE为原型的VIDEODISK是一个桌面VR系统。
VIDEOPLACE介绍的目的是为了强调不同的哲学观点对虚拟现实发展产生的影响。现实的本质问题一直是一个哲学难题,虚拟现实技术的发展更增加了人们对这一问题的困惑。镶嵌在虚拟现实先驱者们的语言、思维过程中的文化渊源和认知范畴将影响着虚拟现实技术的未来方向。
2.3.2 VIEW系统
1985年,美国国家航空航天管理局NASA研制了著名的VIEW(Virtual Interface Environment Workstation)系统是一种头盔式双屏显示器遥控摄象机获取,视景可随着操作者的视线(头部位姿)变化,整个虚拟环境附有立体声响,操作者借助语言、手语(手指动作的组合姿态,由数据手套Dataglove形成)与环境交互。
1.VIEW的历史性贡献
下图是美国航空航天管理局NASA的虚拟交互环境工作站VIEW,是由Ames研究中心(Ames Reaserch Center)研制开发的。其目的是为NASA的其他有关研究项目提供一个通用、强大的VR系统平台。
VIEW系统造价低廉,让参与者有“真实体验”的效果。它装备了数据手套、头部跟踪器等硬件设备,还提供了语音、手势等交互手段,使之成为名副其实的虚拟现实系统。
与Krueger的VIDEOPLACE系统相反,由于VIEW系统造价合理,使用效果较好,使其成为第一个走出实验室进入工业应用的虚拟现实系统。目前大多数虚拟现实系统的硬件体系结构都由VIEW发展而来。
VIEW系统主要应用于远程机器人控制、复杂信息系统管理及人类诸因素的研究。NASA研制VIEW的最初目的是开发一个多用途、多模式的操作接口,为操作者完成复杂的操作任务提供一种自然、便利的交互手段,但最终将其发展为一个由操作者的位置、语音及手势控制的交互式虚拟环境显示系统。VIEW允许操作者(即参与者)以基于自然的交互手段考察全视角的人工或远程的感觉世界。
2. 系统平台
VIEW是一个非常复杂的系统,它由一组由计算机控制的I/O子系统组成。VIEW以HP公司的HP900/835为主,图形处理采用SGI公司的图形计算机或HP SRX图形系统;配备了Polhemus空间跟踪系统来跟踪使用者手和头的位置;配备了LEEP广角立体视景头戴显示器和单色液晶显示器、Convolvotro三维音频输出设备、VPL数据手套(DataGlove)用于识别使用者手势控制系统的行为。同时还配备了BOOM CRT显示器及Fake Space远程摄像系统。(BOOM—Binocular Orientation Monitor)
这些子系统分别提供虚拟环境所需的各种感觉通道和控制功能。使用者“置身”于这样的VR环境,周围是预先定义的虚拟物体及三维空间的声响效果。VIEW建立在一种带头盔的 显示技基础术上。头盔上有一个麦克风以便作语音识别,两个耳机进行三维声音跟踪,还有一个头部跟踪设备以及液晶显示屏幕和观看镜的外壳。
VIEW之所以能从实验室走出来进入实际应用,关键在于其采用了基于液晶显示技术的显示器,从而大大降低了三维立体显示的成本。与基于阴极射线管的价格昂贵的显示器相比,液晶显示器价格低廉。另外,VIEW系统中加在液晶显示器前的一组广角镜扩大了参与者眼睛的有效角。这样,当年Greevy仅用2000美元就造出了一个有效的可移动的立体头盔显示器。
除了视频显示器外,VIEW还采用了音频显示技术以便为用户提供额外的任务、系统状态及导航等信息,并提高了参与者对周围环境的感知能力。通过采用语音识别技术,该系统使用户可以用自然语言向系统发布命令及转换系统状态。 另外,VIEW还用立体声耳机加强虚拟环境的真实效果。
VIEW不仅提供语言交互手段,还提供触觉、手势等交互手段。通过在用户的手上戴上数据手套后,操作者可以拾取并操作出现在虚拟环境中的虚拟物体。VIEW开发了一种手势语言,用户可以用这种手势语言向系统发布命令。VIEW之后的虚拟现实系统不仅采用了数据手套,而且还装备了数据衣(Data—suit)。以基于LCD的头盔显示器、数据手套及头部跟踪器为特征构成的硬件体系结构已成为当今虚拟现实系统的主流。
2.3.3 Dialogue系统 1.Dialogue系统设计思想
早期的虚拟现实系统在设计软件体系结构时,往往沿袭了台式系统的体系结构、设计概念及软件工程技术只是当涉及到诸如数据手套及头部个不踪器等特殊设备时,才考虑到采用特殊的软件接口方式;而且处理特殊设备的软件接口往往是独立自搞一套,无法与其它设备的软件接口统一起来J.B,Lewis等人研制的Dialogue系统的软件体系结构设计时,就注意到了上述问题。
在Dialogue系统中Lewis等人提出了一种通过基于事件驱动的用户接口管理系统(UIMS)进行多进程通信的软件体系结构,目的是解决虚拟现实系统的动态灵活性问题,即能够方便地改进虚拟现实系统的硬件设备及软件技术,并且对交互式技术的限制非常少。
Dialogue系统采用对话接口(Dialogue)来说明虚拟世界的行为规范。对话接口由模块化的子对话接口或规则集组成。为了达到高度灵活性(flexibility)、设备达到可重映射性(remappability)及可重用性(reusability)的目标,这些规则集应被表示成独立的模块,每个模块封装自己的状态信息。
另外,每个模块还应根据其在概念层次中的功能来设计。这种概念层次结构可以把一个专用设备转换成通用设备,也可以把一个通用设备转换成一种交互式技术;而且,在这种层次结构的顶层,可以把一种交互式技术映射成行为集。注意,这里所说的设备是指逻辑设备,当它映射到一个物理社设备时,该物理设备可以是一个,数据手套,也可仅仅是用户在显示器上看到的一个滑动杆(或滚动条,slider)。
2.对话接口结构
Lewis等人为旋涡虚拟世界研制的第一个对话接口由一个大规则集构成。在提高该对话接口功能的过程中,他们不但增加了新的交互式技术,而且更重要的是认识到可重映射性是一个极有价值的目标。例如,为了操作颜色控制器,最初的方法是直接处理手套的数据流并返回颜色值,这是非常简单的原型设备方式。
然而,当用图形滑动杆替代原来的原型时,却不得不对对话接口做很大的改动。即使诸如用相对运动代替绝对定位这样的大小变化也必须修改对话接口。因此,根据Dialogue系统的规则集结构,即专用层、通用层、执行层,便可采用重映射性来说明对话接口的结构。在这种结构中,使用相似交互式技术的设备可以用同样的子对话接口来说明。
在对话接口的最低层,一个规则集形成专用软、硬件设备的接口,该规则集的功能是封装低层次的细节数据。通用层把来自最低层的事件转换成诸如旋转等更通用的交互式技术;该层还把来自执行层的事件转换成最底层需要的细节信息。执行层把交互技术映射成具体的行为集,它还处理高层次的对话接口模式。比如,紧随拾取slider,但其他情况下拳头手势可能意味着别的动作。Dialogue系统软件体系结构如下图所示:
这种结构的额外好处是可重用性。如果已知为一个设备或技术提供了相当通用的接口,那么这种设备或技术的可重用性也是很高的。
Dialogue系统的软件体系结构已融合了对话接口的思想。这种对话接口不仅适用于虚拟现实系统,在其它应用中也有很高的参考价值。
2.3.4 SuperVision系统
SuperVision系统是由DVISION公司开发的下一代并行虚拟现实系统。开发小组的领导人是Chales Grimsfale。DIVISION在该系统中提出了一种基本并行模型,并开发了相关的并行处理器件。为了满足虚拟现实对计算的复杂性几乎是无限的要求,虚拟现实系统必须提供足够的灵活性及可扩充性。
要做到这一点,可以从软、硬件两个方面来考虑。美国MIT的Alex P.Pentland曾在《Computer Graphics》杂志1990年第4期上发表了一篇名为《Computational Complexity Versus Simulated Environment》的文章。他在该文中建议改变表示和模拟物理世界的方法,以便减少情景模拟的计算量,从而使得交互式地模拟复杂情景变为可能。Pentland是从软件的角度去解决计算复杂性的问题;我们这里介绍的Super Vision系统则是从硬件角度来解决计算复杂性问题的。
1.并行处理
为了满足高级三维计算系统的实时要求,必须定义一个能随着分辨率及环境复杂性的增长而扩充的系统模型,这种统一模型可使虚拟现实系统从虚拟环境模拟诸问题中开发出自然的并发属性。Grimsdale给出了一个如表2 .1所示的由4个并发层组成的简单模型。
表2.1 并发层组成简单模型
在最高层即环境层,可以独自模拟不同的环境。当需要在一个或多个环境中支持多个用户时,环境层就特别有用,例如,当两个工程师共同解决一个设计问题时,一个环境可被分解成多个实体。一般情况下,这些实体代表高层次的三维物体,物体中封装了各种物体属性(如音频、视频属性)。
由于每个实体都能并行处理,这样就能建立含有大量实体的大型虚拟环境。每个实体拥有许多属性,这些属性就是元素,如位置、行为、限制及触觉等,若一个物体的每个元素都是独立的,则处理实体时就能进行数据并行分解。比如,可以并行地处理音频元素及视频元素。
在这种模式中,虚拟环境的不同元素由不同进程并行处理,这就是DIVISION开发的dVS操作系统的基础。dVS不仅支持一系列不同的并行体系结构,还支持高度并行计算模型。dVS的主要特征有:并行处理模型;面向对象API;硬件独立性;可扩充性;开放系统及支持多个蚕参与者。这些特征为实现大型虚拟环境模拟提供了良好的基础。
2.并行加速器
为了满足不同的应用要求,DIVISION开发的两种系统都建立在分布式存储体系结构基础之上,而且都把Inmos transputer独一无二的I/O能力与Intel i860的浮点性能结合起来。在基本体系结构中,一个处理单元(transputer或i860)只用来处理系统中的一个主要任务。
比如,用一个transputer控制VDL DataGlove的跟踪系统及手势识别,用另一个transputer控制头部跟踪及可视化。如果用户增加,只需增加相应控制该Data Glove的transputer即可。
这种类型的并行系统有很多优点,这些优点包括支持专用I/O控制、确保实时响应、高度灵活性和可扩展性。
3.SuperVision
SuperVision是高性能的并行可视化系统,它把transputer和Intel公司的i860的浮点性能结合在一起实现立体可视化。
该系统由一个前端控制及一个并行图形子系统组成。前端控制的基础是标准PRO—vision系统,该系统通过多Transputer提供数据及获取控制的功能。图形子系统使用了多个相连的i860芯片,每个i860计算板都有自己的本地内存,计算板之间可以并发地通信。
总的来说,SuperVision可被分成如图2.8所示的两个功能模块:前端控制模块及信息传输模块。前端控制模块是基于Inmos Transputer的并行虚拟环境系统。系统中不同的Transputer用来完成不同的获取及显示任务。Transputer不仅提供三维位置数据、手势数据等的并行处理,还确保对当地外围设备实时响应。
信息传输模块的内核是一个称为dNet的虚拟进程系统,它用来管理进程间的通信。系统中为每个i860芯片提供了自己的当地I/O transputer。这样,运行于I/O transputer的dNet内核就可为运行于i860的所有进程提供信息传输服务。因此应用程序既可在Transputer上开发,也可在i860上开发。
SuperVision系统提出了一种虚拟环境模拟——并发体系结构,所开发的几个并发层可最大限度地利用系统的性能。从SuperVision可以看到,不断采用先进的软、硬件技术是虚拟现实技术发展的主要特征。
2.3.5 CAVE系统
洞穴式VR系统是一种基于投影的环绕屏幕的洞穴自动虚拟环境CAVE(Cave Automatic Virtual Environment)。Howard Rheingold 把虚拟现实视为一种实验设备,人置身于由计算机生成的三维世界,并能在其中来回走动,从不同角度观察它、触摸它、改变它的形状。从前述概念来说,一个虚拟现实系统应能提供以视者为中心的头部跟踪、大角度透射及交互显示。
1. CAVE的设计
CAVE是一个大小为30x30x30 (每面墙似乎应为3m x 2.75m,见国防科技大学出版社“虚拟现实技术及编程技巧”一书第11页)的空间,前、左、右三面墙各有一个投影屏,地板也有一个向下投影屏,由于天花板限制,实际大小为21x21x21 ,投影仪把1280x512的立体全彩色工作站域以120Hz的频率显示2000~4000个象素点。
用轨迹跟踪器或与电感传感器相联的升高器来跟踪使用者的手和头。立体光闸眼镜用来分离眼睛的交替重叠区域。由四个SGI图形终端形成图形图像画面(一个屏幕一个工作站)。
这个CAVE空间置于一个大小为90x60x23 的房间内,必须是不透光的并且大小应能容纳屏幕和投影仪。所以CAVE的工程设计包括:
(1)高分辨率的彩色图像和无失真的良好的环视环境视野;
(2)减弱对导致错误的头部旋转灵敏度;
(3)把VR图像与真实工具混合起来(比如手);
(4)在人类世界中以合理方法引导和教授他人的需要;
(5)把连网的超级计算机与数据源耦合起来用于连续精化。
2. 投影细节
(1)用立方体面作为投影平面 投影变换中的投影平面可以处于任何地方。一种不常见的投影平面是半平面(比如OMMIMAXA剧场和飞行模拟器)。然而,在球面上作投影,这已超出了普通终端工作站的处理能力,必须在VR中实时处理。
CAVE把一个立方体作为球面的近似物,这种简化大大有助于人们设法处在此空间内。通过调整脱架图形器和高分辨率投影仪的性能,以获得投影仪投影图像与缝隙和角落的很好匹配。为了简便起见,假定所有墙共用一个参考坐标系,如下图所示。
此坐标系符合相对于前墙的右手规则,原点为CAVE的中心进行投影变换。所有跟踪仪测量的数据(位置和方向)都符合规定。
图2.10是CAVE的俯视图。点Q’是Q的投影,PP是CAVE的中心到前墙距离(对30x30x30 的CAVE来讲,PP=5)。则点Q(Qx,Qy,Qz)在前墙上的投影为点Q’:
在CAVE中,并未假定眼睛是水平的,并且所处平面并不一定垂直于投影平面,如观察者歪头看着CAVE的某个角落。因此把跟踪仪放在立体眼镜的顶端,它高于镜片14cm,位于两眼中央以减少干扰,假定瞳孔相距7cm,这时可根据从跟踪仪获,取的数据,在运用投影矩阵之前,确定每只眼睛相对于每面墙的位置的方向。
(2)立体视觉细节 为了在CAVE中获取立体视觉,要在每个屏幕相应于左右两眼做两个投影,这需要准确地估计每只眼睛的实际位置。假设眼睛的转动中心离投影点足够近而不至于产生明显错误,因而,如同其他VR系统一样,在计算中不考虑眼睛的位置。
为了使两眼看到不同的图像,便采用了带有同步光闸眼镜帧顺序立体技术。对每个分辨率为1280x1024的图像屏幕,红外线电子管使镜片眼镜打开,在光束垂直回扫时关闭,每秒120帧,屏幕更新率为60Hz,产生无闪烁图像。
在HMD、BOOM和VR系统基础监视器的光学镜头中都存在明显的几何失真,现代数据(字?)投影仪具有电子调整功能可准确纠正其几何失真。
在前、左、右三面墙的屏幕都是后部投影,所以在CAVE中的人不会投下阴影。然而地板屏幕是向下投影,会产生人影。采用上述投影来代替直接正上方投影,这样使用者的阴影主要落在身后了。
另一个问题是屏幕更新的精确同步化问题,在角落处图像也会做到需要在8ms内同步,有一种在所有工作站中共享高速缓冲区管理方式的反射式存储器(指针直接访问大块存储内容,巧妙地避开操作系统),它可更好地组织数据结构及多边形数据传输。
在屏幕和角落易出现室内物体碰撞。为了缩小缝隙,用1/8粗的钢丝绳,把一张25.4x76.2 大小的塑料屏幕绷紧铺展开来,使得间隙只有一个象素点那么宽或是达到被肉眼可看到但可忽略的程度。因此,在CAVE中看到的立体画面是极其逼真的。地板与这个屏幕接触无任何缝隙。
在三维电影院和工作站的屏幕情况下,屏幕前的物体必须靠得很近,当屏幕前的物体碰到边缘时,会破坏深度显示。但由于CAVE屏幕边缘基本上是在视野之外,因而物体可以放在任何地方。
CAVE的地板为这种虚拟现实增色不少。一个使用者可以四周走动,观看被投影在室内的物体。因为跟踪仪提供了6个信息,HMD具有这种用户头部像平常一样看东西时上下摆动的能力,而BOOM没有。
如果一个物体处在眼睛和使用者的一只手之间,那么这只手会破坏立体感,这是一个很少见的情形,此时,只要使用者移开他/她的手即可。
但另一个更严重的清形会发生在CAVE中的很多人身上。如果某人挡住了另一个观察者的路,那么物体就会在这两人之间投影,而破坏了立体感。
为避免出现这种情况,只能由“向导”指引参观路径,让“学生”或“观光者”站在前面,因而不管数据空间如何,也无须首先学会参观此数据空间,就可以获得最好的立体感受。在展览会上,通常一次让12个人进入CAVE,尽量使画面保持在参观者前面。由于参观者一般或多或少几个人同时站立不动或同时移动,因而尽管虚拟现实经历受到一定限制,但效果仍然很好。
3. 误差校正
不同的VR模式在跟踪参观者位置时的误差有不同的响应方式。造成这种差异的原因,是投影平面是否随参观者的移动而移动,也许是投影平面与眼睛之间的距离不同。
(1) 旋转误差 跟踪误差可以归结于偏转误差。在监视器和CAVE模式中,由于投影平面不随参观者的位置和角度而移动,因而,眼睛中的投影点的旋转不会产生误差。给定的误差在HMD和BOOM模式的图像中产生符号相反,而数量级相同的旋转误差。如果使用者的头部转动很快,问题就比较严重,因为整个画面是一开始随着头部转动,然后就步入适当的位置。
(2)CAVE和监视器模式中的偏移误差分析 图2.11同时显示了在CAVE和监视器模式中的偏移误差影响。眼睛跟踪偏移误差Δp,眼睛到投影平面距离是PD,到物体距离是Z,DISP就是在平面上的距离误差,α是角度误差。
等式(2.4)为在CAVE和监视器中,当偏移误差为ΔP时,近似角度误差的表达式;
等式(2.5)当Z较之PD较大时的表达式,当CAVE中PD较之监视器中的大时,所产生的角度误差比长距离Z所产生的角度误差小。
等式(2.6) 表示:当Z很小时监视器和CAVE有近似误差。
等式(2.7) 表示:当物体在投影平面上时角度误差为零。
(3)BOOM和HMD中误差分析 图2.12显示了对BOOM和HMD的与上述类似的分析。跟踪头部位置所产生的偏移误差也造成同样的眼睛位置与投影平面位置的误差,进而引起了被观察物体的负偏移。
对于小角度 ,则有:
。 (2.8)
等式(2.8)表明了角度误差与眼睛到投影平面距离PD无关,比较(2.8)和(2.5),当偏移误差为Δp时,对于长距离又在BOOM和HMD中的角度误差比CAVE/monitor模式中要小。比较等式(2.8)和(2.6),当很小时,BOOM和HMD的角度误差近似相等。这种情况好比一个人每秒移动30cm而显示频率10帧/秒,距离Z越长(Z=50cm)HMD和BOOM的性能越好。CAVE的角度误差是其2n倍,而monitor为其9倍。当Z较小时,监视器的性能最好,而且CAVE和HMD/BOOM的误差等级只比其稍微大一点儿。
4. 连续精化
CAVE由屏幕环绕包围着,其好处之一是利于图像的连续精化。可以说人的一生中永远也不可能有足够的计算能力实时建立并显示复杂模型。连续精化是目前计算机图形中一项常见技术,它的原理是不时交替运动、冻结并填充图像。然而在HMD中无法做到不迷失方向的图像冻结。在BOOM中,可以做到连续精化,但使用者不能四处观看。
在CAVE中,参观者随时可以走到一处地方,并把一系列四幅高细节的图像发送给一台超级计算机,参观者仍处于立体视野中。当图像返回时,使用者仍可左右摆动头部,尽管在此模式下无法走动,但在最后的交互跟踪方向可获得最好的立体感。优化这种模式是当前的热门研究。
使VR应用于低于要求实时环境下是重要的。超级计算机必须是浮点机,一种普遍使用的向量机,但不能实时产生1280x1024点阵的画面。另外,我们渴望把一幅1280x1024点阵的24位信息图像以60次/每秒的速度送到工作站,这几乎需要网络2千兆字节的吞吐量。而对于CAVE来说,这个数字还要再乘以4,因为10帧/秒的更新率更接近于VR工业标准,这样吞吐量再除以6就只需要1.25千兆字节/秒。因此必须采用浮点方式传送多,多边形网格,并且使工作站图形发生器在任何可能时间都工作。
CAVE已被证明是一个有效的可信服的VR模式,它扩大了虚拟现实的使用面,提高了质量,CAVE已达到了以下目标:产生大角度视野,建造高分辩率全彩色图像。它允许多人同时参加VR经历,并运用一些连续精化方法,还有投影屏的铺展和投影仪的几何调整性能,相比于基于监视器的HMD、BOOM虚拟现实系统,它的三维立体图像只有非常小的失真。
它所需的立体镜片重量轻,跟踪器电线(在手和头的跟踪仪上)纤细。这些相对来说减轻了使用者的负担。因为CAVE投影平面不随着观看者转动,与HMD和BOOM相比较,明显地缩小了一头部旋转而产生的噪音跟踪的延迟误差灵敏度。
在92’SIGGRAPH和SuperComputing上,众多领域的科学家(有神经学、天文物理学、超导体、分子动力学、医学成像等方面的科学家)显示了CAVE作为教学和交流研究成果的巨大潜能。目前,非欧几里德几何学、宇宙学、气象学以及并行处理也在共同研究中。CAVE是一个对科学可视化有用的工具,保持了他们实验室设定的科学观察、科学发现、科学交流的可视化工具这一目的。
CAVE的进一步研究工作是将其链入高速网络和超级计算机,添加动作控制平台和其他触觉设备,加强和简化CAVE使之用于国家博物馆、学校和商店大厅的设计。
第3章 虚拟现实的组成
虚拟现实的三个特点之一是交互性。为了使参与者能以人类自然技能与虚拟环境交互,那么必须要借助于专门的三维交互工具,用来把信息输入计算机。同时,通过它又可以向用户提供反馈。目前的VR工具根据几种人类传感渠道在功能和目的上的不同而有所不同。
例如,三维方位传感器跟踪人体运动,传感手套数字化手势,视觉反馈发送给主体显示器,虚拟声音由三维声音发生器产生,画面场景和方向跟随球和游戏棒改变等等。这些I/O设备有的可以买到,而有的仍是原型。这表明它是一个日趋热门的研究新领域。
这一章介绍VR常用的I/O工具和传感器技术,主要着眼于它门的功能、设计及存在的局限性等。
3.1 传感器技术
虚拟现实中的实时跟踪以及交互装置重要依赖于传感器,来实现人—机之间的沟通,它是VR技术中极其重要的通信手段,是实时处理的关键技术。
3.1.1 跟踪技术实现的基础—传感器技术
在VR系统中,为了与虚拟环境交互操作,必须感知参与者的视线,也就是说,必须跟踪头部的位置和方向。为了在虚拟环境中移动物体,甚至移动参与者的身体,这就要求跟踪观察者各肢体的位置,而传感器技术是实现这一功能的关键硬件技术。
跟踪技术所用传感器主要有磁式的、声波的、电磁的及光感的,每种技术各有优点,同时又有各自的局限性。有些设备如跟踪装置需要进行初始校准。
1.头部与眼部跟踪
研究确定一个物体在三维空间的位置和方向这一课题,最初是由于森林工作的矿工自身定位的需要。人们进入广阔丛密的林海中,很容易迷失方向,有时甚至不能重新返回到开始进入林区的地点。虽然人们可借助指南针帮助,但当森林的地形相差变化很大时,指南针指示的方向与倾斜的地形表面之间,往往会产生一定的误差。
类似的情况在地下矿井中工作的矿工也会发生。这就要求科技工作者研制出一种能精确跟踪定位的装置。三维跟踪技术就是由于这种实际需要而发展起来的。近年问世的VR技术中恰好也需要跟踪参与者的头部和手部运动;于是,先前用于森林、矿井、航空测量以及三维数字化仪的定位、定向原理,就移植到了VR技术中。VR系统所用跟踪装置的原理,主要有声学、光学的和电磁性的三种。
VR系统的使用者所进入的虚拟环境,是采用球坐标系的原点以及方向轴来定位的。在该环境中的对象,以及使用者头部的位置、朝向,也都是用这种球坐标系来定位的。在虚拟世界中,使用这是借助于“观察锥”能看到各种对象。
它是VR空间的一个子体,是由使用者的位置、头的方向以及视场角所决定的。这很像是一架电影摄像机,只是它与人的视觉系统稍有不同,因为人的眼睛可以在一定的角度范围内任意转动,即人能够独立于头部的方向来改变我们的视线。当一个对象在人的视线之外时,他仍然是在环境中,只有当我们的视线转动到该对象的方向观察时,我们才可以看见他。
因此必须能够平依和旋转使用者在虚拟环境中的头部,以便VR系统的使用者可以在虚拟世界中向各处观察。在计算机图形学中,这些功能被称为图形的几何变换,可通过鼠标器等外部装置来进行操作。这些变换功能一旦满足时,便切断了人的视觉系统与他本身的运动神经感受器官(在人的中耳内)之间的联系。
有了头部跟踪功能,VR系统使用者运动感受神经和他的视觉系统就能重新建立联系。当VR系统的使用者转动其头部时,其观察锥以及所显示的内容被更新。此功能增进了人的运动感受系统所有的知觉在VR技术中的一致性和可靠性。
头部跟踪的另外一个作用是,它扩大了人类的双眼视差功能,它使我们在虚拟世界中也具有了运动视差功能。也就是说,当你把头由对象的左侧转到对象的右侧时,你就会分别看到该对象的左边和右边。这种额外的视觉联系增强了使用者对虚拟世界的空间感和真实感。
近来,模拟人类眼球跟踪工作,也得到了VR技术研究者的议事日程上,美国海军研究实验室研究的眼球跟踪仪虽然已有商品,但此项工作在VR技术上的应用并非易事。由眼部跟踪得到的视觉信息,能够以一种较好的观察锥的描述提供给VR技术的使用者,同时也可减少使用者在真实世界中的视觉与虚拟世界中的视觉效果之间的差距。
2.手与手势跟踪
为了在虚拟环境中移动物体,甚至移动参与者的身体,这就要求跟踪观察者各肢体的位置,这种跟踪可以从手的位置跟踪到全身各肢体的位置跟踪。目前虽然已有了一些应用商品,但也还有些问题,有待这种硬件技术进一步发展必须研究出一些与此相适应的跟踪装置。
目前,键盘和鼠标器是我们与计算机进行交互的最为普通的方法。当键盘成为基于字符的计算机系统的重要交互手段时,它对于实时的三维图形计算机系统却起不了什么作用。同样,鼠标器为二维空间交互提供了出色的手段;但对于像VR技术中的三维空间来说,却是极为不方便的。
这是因为,在三维空间中有6个自由度(DOF),即除了受约束的物体外,物体一般有三个平移运动方向和三个旋转运动方向。物体可以前后(沿X轴)、上下(沿Y轴)、和左右(沿Z轴)运动,这称为平移运动。另外,物体还可以围绕任何一个坐标轴做旋转运动。借助飞机术语,这些旋转运动称为滚动(绕X轴)、偏航(绕Y轴)和倾斜(绕Z轴)。
目前尚没有直接的方法把鼠标的二维平面运动映射为三维空间的任意运动。但已有了一些提供6个自由度的较为方便的三维装置,常见的有三维数字化仪及空间球。三维数字化仪可测量物理模型上的点,并把测得的数据输入到CAD数据库,它好比是钢笔尖上附加一个传感器,该传感器测量笔尖的位置和方向,并与一个控制单元相联系。
Polhemus传感器使用正交磁场(由笔中的交流线圈产生)的扰动,来计算其位置和方向。从理论上来说,这提供了在三维空间内跟踪位置和方向的必要信息,但对于这种Polhemus传感器,尚存在一些问题。首先,这种传感器的工作范围很小,由传送器算起,有效范围呈半径约76.2cm的半球,其次,在此半球范围内的统计精确度不高,当传感器距发送器小于38cm时,精确度为0.33cm;当传感器与发送器的距离超过76.2cm时,精度为0.64cm。方向角度约为0.85°。此装置的有效分辨率也很差,约为0.23cm~0.46cm。
由于这种传感器是基于磁场技术的,所以它们的精确度和可重复性依赖于环境的状况,例如,附近有铁器、电子设备以及显示器等,将很不利于使用这类穿传感器。在一个典型的不利环境中磁场将在非线性度量中造成严重的扭曲,必须加以矫正。同样,返回数据中的噪声将引起很大的干扰作用,必须进行滤波。
“相”滞后是模拟域的获得率和信息更新率(数字化数据每秒中的样本数)的结合,目前的Polhemus传感器有高达100ms的“全相滞”,这对实时交互进程来说,将导致一系列问题,它使得图形附加在所有跟踪器之后“相”滞更严重了。这些潜伏的问题可以借助于使用优质的预处理滤波器进行补偿。
综上所述,尽管Polhemus尚有不足之处且受到一定的限制,但它在目前仍是VR技术最通用的传感器。
用来评价跟踪装置的主要指标是:
等待时间;
位置精度/分辨率;
取样率;
运行约束;
用户至传感器的距离;
环境隔离。
表3.1列出各类跟踪技术的性能比较。表中数字1~5分别代表性能最差和性能最好。应用开发人员在选择使用的跟踪技术时,必须根据哪些特性最重要,才能决定选用哪种技术最好。
空间球是一个刚性的球体,装在一个凹型的支架上,它可以舒适地被放在使用者的手掌之下。变形测定器可以测量使用者施加在该球上的力,此装置具有足够的传感器来测量三维移动和三个方向角。这就清晰、充分的提供了与三维对象进行交互的必要功能。这种球的缺点是,对它本身不能进行移动,它是一种桌上固定装置。
应用最为广泛的VR输入装置是器械手套。VPL数据手套是一个经典的例子,它具有一个附加在手背上的Polhemus传感器,以及附加在拇指和其他手指上可弯曲的柔性传感器。此装备可使这套系统在任何时刻(该系统向手套控制器询问它的当前数据)计算出手的位置和方向(通过Polhemus)。各个柔性传感器也用于测定拇指及其他各手指的关节角,当以上装备与相应的软件配合时,这些数据可被用于基于手势的系统输入,这与使用某种形式的符号语言把命令输入给计算机是等效的。
对于粗略的手势,也能进行自动识别(例如,挥手表示再见等),以作为与系统的交互手段。由卡内基梅隆大学研制的GRANDMA系统,已成功地应用于对一个鼠标粗略运动的识别,并计划延伸到Polhemus上。
使用数据手套也会碰到一些问题和困难,这包括高噪声、低样本率、显著的延时以及在常规区间内需要重新调整或标定柔性传感器等等。
这些问题之中的一部分,已借助于新的技术开发,由手套的研制单位成功地做出了改进。诸如Virtual Technologies的CyberGlove等。 CyberGlove具有一个超级的弯角测定系统,它提供较高的分辨率以及较好的可重复性,所附加的传感器也提供非常多的关于使用者手部运动形态的信息。
前已述及,Polhemus固有的问题之一,是它不允许在其操作范围内存在金属物体,如果发生了这种情况,现已有一种称为Bird的新型传感器,可以进行自动报警,它是Ascension Technologies的产品。当发生象高噪声、低样本率以及大研时这类问题时,就可借助于Polhemus公司的一种称为FASTACK的新型传感器进行有效的报警,研制这种装置的厂家声称,该产品仅有4ms的相滞,以及高达300Hz的更新率。
关于数据手套的最新发展,Exos公司研制出的一种称为“皮肢骨”(又称为“外骨”,如动物的牙、角、脚、甲、爪等)的新型传感器Dextrous Hand Master,这种传感器能提供高精度的关节弯曲度量数据,此外Exos公司还装配了一种基于低价格的音圈振子触觉反馈装置Touchmaster。
3.1.2 三维位置传感器
三维位置传感器是虚拟现实系统中的一个重要设备,也是VR应用中最有趣的部分,头盔显示器及数据手套等装置必须有它的参与才能真正成为以用户为中心的交互设备。三维位置传感器可分为三维磁性传感器(3D Magnetic Sensors)和三维超声波传感器等。它们虽然在功能上略有差别,但都能提供被跟踪对象在三维空间中的位置及方向等信息,从而是用户自然的头动、手动等作为VR系统的输入信息。
机器人、生物力学、建筑、CAD、教育等许多VR的应用需要运动物体相对静止物体的实际位置和方向信息。一个三维空间中运动物体其运动方式有三种旋转变换。
如果一个运动物体置于笛卡尔坐标系统,那么,它的变换是围绕着X、Y和Z轴旋转。分别被称作“偏转”、“倾斜”和“转动”,这定义了一个包含6个数的数据集合,被定义为六维或六个自由度。当物体高速运动时,必须要足够快地测量、采集和传送三维数据。这意味着无论使用什么技术它都不应该限制或妨碍物体的自由运动。
鉴于“非接触”要求,三维测量技术已代替了早先的带电位计的机械手臂。目前可买到的三维非接触传感器使用技术有低频磁场、超声波、雷达、红外摄象机和LED (Light-Emitting Diode发光二极管)。当前主要使用电磁式和超声波式传感器。鉴于“非接触”要求,三维测量技术已代替了早先的带电位计的机械手臂。目前可买到的三维非接触传感器使用技术有低频磁场、超声波、雷达、红外摄象机和LED (Light-Emitting Diode发光二极管)。当前主要使用电磁式和超声波式传感器。
所有三维传感器(不给定什么技术)都有共同的参数,如延时、精度等等。例如,虚拟画面的更新率,依赖于传感器检测运动的速度;更新率给出了测量的次数/秒。典型的数据范围是在30个数聚集合/秒和120个数据集合/秒之间。所谓延时就是行动和结果之间的时间差,如果使用的是三维跟踪器,其延迟是指在物体位置/方向改变时,由传感器检测到的变化时间间隔。要求其足够短,因为长延迟会影响沉浸感效果。
另一个参数是传感器的精确度,即实际位置与测量位置之间的偏差。传感器越精确,随着用户动作产生的模拟效果就更好。不要把精确度与分辨率混淆起来,前者指的是“精度”或是传感器能检测到的最小位置的改变。
如果把传感器数据连续地发送给主机,则传感器是以“流水”模式工作,这对于快速运动物体是最适宜的了,也有利于在VR应用中需要对运动物体的位置改变作出迅速反应,然、而这会加重通信线路的负担,因为需要发送大量数据。
如果VR空间需要30帧/秒的重新计算率,那么,33ms就要成像一帧。一条9600 波特线要用大约12ms传送含有6个数值(每个由16位组成)的数据集合。因此,单单通信就要用掉可利用时间的36%,简化传感器的一个可选择方法是用“投票”或“一次中靶”模式。无论何时主机需要对它确定只发送一个包含6个数据的集合。其余时间不读传感器,那么全部帧的通信口刷新时间也相应降低。如果传感器每秒选中一次,那么平均下来通信大约占了可利用时间的1%。
3.1.3 三维电磁传感器
三维电磁传感器的工作包络面比超声波传感器大,由于三维电磁传感器采用的是磁场技术,所以其精度易受环境中的磁性物质、含铁物质、电子设备及CRT的影响。当几个电磁传感器作用于同一个环境时,必须对它们的使用进行时间分片,以防磁场之间的相互干扰。电磁传感器使用可选择的低磁场,以确定移动物体的位置和方向。
由一个发送器产生低频场,此发送器由三个静止的正交天线组合而成。另一套正交天线位于接受器中。传感器感受到信号是由一个电子元件取样获得的,此电子元件使用一个算法确定此接受器相对于发送器的位置/方向然后通过通信线路(并行或串行)把数据发送给主机。如果接受器与一远距离运动的物体相连,那么计算机能间接跟踪这个物体的运动。
VR应用基本上是检测用户的头或手的运动。头盔式显示器中,接受器放在用户头上,因此当头部姿势改变时,可以检测出来。对于接受器也是一样。
用户头部运动由电子单元采样获得,并发送给主机。计算机使用此跟踪数据计算出新的虚拟画面以适应于参与者头部转向的新观看方向,并显示一幅更新画面。然后把这幅画面转换成NTSC视频信号由两个LCD屏幕显示。若没有三维头部跟踪仪,计算机就无法改变空间视野与用户头部姿势匹配,因而也失去了在VR中的沉浸感。
1.Isotrack传感器
为了检测手部运动,接受器位于用户传感手套的背部,比如“Isotrack”传感器就装在数据手套的背部。
这种传感器使用老式模拟技术,有不少缺点。它的最高采样频率为60次/秒,但建议使用30次/秒的测量速率。因为模拟信号需要定位时间,会产生相当长的延迟,这种传感器工作范围虽小,但信号噪声很大,即使传感器没有移动,但其转动角度几乎也会改变1°,这种噪声即使是在传感器范围界限内也会增大。
当从主机采样检查时,噪声效应就表现为屏幕上的虚拟手“震颤”。如果图形工作站功能强大到可以显示从数据手套接收来得30次/秒的位置变化全过程,那么这种“震颤”会使画面模糊,从而引起用户视觉疲劳。
新设计的Fastrack传感器,解决了上述问题,它采用“数字信号处理器(DSP)”,由接收器线圈产生的信号发送给专门线圈,低噪声的差动放大器,放大器的输出配有多路复用的标准信号,并发送给三个并行A/D转换器。
这里采用了一种重复采样技术,即以一个比传输频率快得多的速率从接收器采样。从而改进了信号噪声比和噪声的组成。除此之外,其采样速率也比原来的Isotrack快了一倍,若只使用一个接受器,传感器的测量频率是120次/秒,若是两个接受器,采样频率降低到60次/秒,4个接收器则降为30次/秒。
2.Insidetrack传感器
1993年秋季Polhemus介绍了一种称为“Insidetrack”的小型传感器。其中电子线路经过压缩适用于PC板,插到386或486兼容机中。它的结构框图类似于Fastrack,但只有两个接受器,并增加了ISA逻辑线路。这种新产品的价格大约是Fastrack价格的一半,由于价廉而被广泛采用。
一般规定Fastrack的准确性能保证在发送75cm的距离之内。传感器的“工作包围层”指的是一空间区域,在其中精确度符合一定界限。但最远在距发送器3m处进行测量时,这个包围层精确度就会降低,电磁三维传感器比超声波传感器的工作包围层大。但它们的缺点是大的金属物体会造成精确度下降。如果传感器工作范围内有强磁性物体或强电磁场,就会破坏发送器的低频磁场。因此,在越靠近金属物体的地方,其精确度就会比没有金属物体差。因此,要把大的金属物件从发送器或接收器的附近移开,否则,就需要更复杂的标准和调整测量。
3.电磁传感器3—SPACE
常用的还有3—SPACE传感器,它是一种应用磁性变换技术的装置,电流流过由带正交坐标系统的X线圈、Y线圈及Z线圈构成的源发生磁场;这些线圈以分时方式励磁,并将和源构成相同的传感器(线圈)放入磁场,则传感器内的X、Y、Z线圈会分别产生感应电流;这些电流的强度,取决于(线圈)源之间的距离与角度;在此一共获得9个电源值,对这些值进行矩阵运算之后,可以获得三维物体的位置与方向。3—SPACE传感器的结构如图3.2所示,其规格如表3.2所示。
目前,3—SPACE传感器仍存在以下问题:
(1)采用磁性电路,测试对象为金属物体时,精度降低;
(2)进行测试的条件是,在测试场附近没有金属物体;
(3)测试场所应远离显象管和显示器等产生磁场的设备;
(4)测试范围很窄。
3.1.4 超声波三维传感器
超声波传感器三维由三部分组成:发送器、接受器和一个电子部件。Logitech公司的三维头部跟踪起采用的就是超声波传感器。它的发送器是由三个分别相距20cm、紧密固定在一个三脚架上的超声波发生器组成的。相应地,它的接受器是由三个安装在三脚架上的卫星麦克风组成。
系统通过计算从发送器到接受器的时间来确定位置和方向。可用此代替电磁传感器。图3.3所示的为Logitech三维头部跟踪仪。在扬声器和麦克风之间需要直射式光线。麦克风也可以用三维鼠标、立体跟踪镜或其他交互工具代替。
空气中的声速根据房间中的气温而变化。其计算公式为:
其中C是单位为m/s的声速,是当时房间中空气的开尔文温度。
已知一定温度下的声速,可根据传播时间计算出距离。超声波传感器的功能是建立在三角网基础上。每个扬声器循环激活,并分别计算出它到3个麦克风的距离,为了确定包含三个麦克风平面的位置和方向,共要测量9个距离。CPU控制单元从麦克风中才采样,并把所读出的内容在标准常量基础上转换为位置和方向,然后把数据传送给主机,以更新头盔显示器中的画面。
更新率为50次/秒,这要低于现代电磁跟踪仪的速率。其缺点是在扬声器和麦克风之间需要直射光线。如果有物体挡住了光线或头偏转过来都会使信号丢失。房间中的背景噪音和其它超声源也会干扰信号。同时,它同样也受金属物体的干扰制约。尽管有这些缺点,超声波传感器却因价格比电磁传感器便宜,仍在市场上占有一席之地。
当身体的几个部位(比如头和手)都要跟踪时,可以使用4个接受器,或采用1个发送器的时间多路复用技术。为此所付出的代价是增加了模拟延迟,因为时间多路复用降低了取样速率。当同时跟踪4个接受器时,取样速率降低到仅为12次/秒。
使用一个发送器带有多个接受器时,又增加了新的缺点,它限制了用户的头和手的活动范围。1993年,Sowizral和Barnes提出了是空间多路复用的解决方案,几个发送器带有一个接收器。这样它们的圆锥形跟踪区域就重叠了。
为了避免互相干扰,必须一次只打开两个发送器,因此主机不得不确定接收器在哪,并保持相应的发送器为开状态,直到邻近发送器代替它为止,一直持续下去。与其为每个发送器配备一个控制盒,不如使用一个由计算机控制的开关盒来得经济实惠。盒中的模拟开关对于发送器是基本关闭的,只有当计算机开启发送器时才转换到相应的发送器,这种方法也可以扩展到用于多个发送器。计算机在基于判断控制的基础上激活控制盒,即确定接受器的位置、速率和加速度,为避免在重叠区域循环开、关必须提供滞后处理。
3.2 跟踪探测设备
VR系统的关键技术之一是跟踪技术(Tracing)。即对VR用户(主要是头部)的位置和方向进行实时的、精确的测量。
3.2.1 跟踪器
跟踪需要使用一种专门的装置—跟踪器(Traker),其性能可以用精度(分辨率)刷新率、滞后时间及跟踪范围来衡量。不同的应用要求可选用不同的跟踪器,主要有以下几种:
1.常用跟踪器
(1) 机械式 这是较老式的一种,它使用连杆装置组成。其精度、响应速度均可,但工作范围相当有限,对操作员有一定的机械束缚。
2)电磁式 目前用得最多,已有商品出售,例如Polhemus电磁跟踪器。其原理是在3个顺序生成的电磁场中有3个接收天线(安装在头盔上),所接收的9个场强数据可计算出用户头部的位置和方向。其优点是体积小、价格便宜。其缺点是滞后时间较长、跟踪范围小,且周围环境中的金属和电磁场会使信号畸变,影响跟踪精度。
3)超声式 原理与电磁式相仿。头盔上安装有传感器,通过对超声波传输时间的三角测量来定位。其重量小,成本不高,已有商品出售(如Logitech Tracker),但由于空气密度的改变及物体的遮挡等因素,因而跟踪精度不够高。
2.大体积范围跟踪器
当前跟踪技术的一个重要限制是测量范围小,因而限制了用户的活动范围,不能在一个或几个房间中自由运动。这个问题的一个解决方法是“灵巧的天花板”(Smart Celings),目前,北卡罗来纳大学正在进行研究。这个系统由一系列LED内置天花板平面和一带有4个图片传感器的HMD组成,如图3.4所示,每个大小为60x60cm的天花板上有32个LED和它们的驱动电路。每块装有32个发射红外线的LED,由头盔显示器上安装的3个传感器(具有测视效应的光检测器)所接收。
接收信号送入68030进行测量,68030还负责控制LED发射红外光。一个计算机按顺序开/关(打开时间不超过2000μs)控制LED。用户要带上的“远程处理器”将HMD一侧的效应光电二极管的模拟电压局域数字化。经过一系列计算推导出用户头部在房间中的位置,由一台Pixel—Planes与计算机刷新虚拟画面并显示在HMD上,因此就有可能在一真实房间中自由运动而沉浸在一相应的虚拟世界中。
这种跟踪器定位精度为2mm,方向精度为0.2°,跟踪滞后时间为20~60ms,刷新速率可达50~70Hz。如果把天花板进行扩展,跟踪范围将自动扩大。
“灵巧的地板”是解决房间内用户位置跟踪的另一种方法,一块灵巧的地板是一复合结构,它包含一与神经网络计算机接口的压力传感器阵列。传感器的输出是一种作用力模式。它的大小与用户体重成正比,还能反映用户所穿的鞋的空间分布信息。因而有可能识别出用户是男还是女。
在暂时的力量模式基础上还能做进一步精化,能给出关于用户运动方向、速度、受力层次或运动限制的信息。为了在用户一进入模拟房间就能被识别出来,并以数据库装载他的专门特征,最终要将灵巧地板与天花板合成起来。
一种更有前途的光学跟踪器叫做自跟踪器(self—tracker),它利用图像处理的原理,通过显示器上安装的光学传感器和专用图像处理机,以每秒取样1000帧图像的速度,不断地对相继产生的帧图像进行相关分析,从而推算出头部的位置和方向,由于不要求在环境中安装任何信标,因此工作范围不受限制。然而,如何控制测量中的误差积累(漂移)来提高跟踪精度是一个难题。
3.2.2 跟踪球
跟踪球主要用于在虚拟环境中飞行和漫游,通常用于桌面式VR系统和沉浸式VR系统中。跟踪球所用传感器是3维的,3维传感器都是绝对的、独立的,因为它们返回的是一个运动物体相对于一固定坐标系统的绝对位置和方向。屏幕上控制的VR物体位置直与在发送器固定坐标系统中的传感器位置相匹配。另一种控制VR物体位置的方法是通过相对传感器,一个相对传感器在不工作时返回的总是零,而绝对位置数据永远也不会是零。
其中VR物体的位置在每个循环中通过6个参数值的改变来决定,速度是一个主要的控制参数,它的数值改变越大,意味着VR物体在模拟中的运动速度越快。
图3.5所示的“六维”跟踪球由差动传感器构成。它能测量出用户手在允许范围内的3种作用力和3种力矩。力和力矩是基于“弹簧变形”,定律间接测量得到的,球的中心固定有6个发光二极管,如图3.5(b)所示,在球的外层可移动6个对应的光电传感器,通过串行口把这些力和力矩传送给主机,在主机中经过软件处理获得,并返回VR物体位置和方向的差动变化,变化越大意味着VR物体运动速度越快。
其中VR物体的位置在每个循环中通过6个参数值的改变来决定,速度是一个主要的控制参数,它的数值改变越大,意味着VR物体在模拟中的运动速度越快。
图3.5所示的“六维”跟踪球由差动传感器构成。它能测量出用户手在允许范围内的3种作用力和3种力矩。力和力矩是基于“弹簧变形”,定律间接测量得到的,球的中心固定有6个发光二极管,如图3.5(b)所示,在球的外层可移动6个对应的光电传感器,通过串行口把这些力和力矩传送给主机,在主机中经过软件处理获得,并返回VR物体位置和方向的差动变化,变化越大意味着VR物体运动速度越快。
但如果主机不能以足够快的速率刷新屏幕物体的运动就不平滑。另一种控制VR物体的方法是力控制,由球测量出用于控制VR物体的力。当这种跟踪球在模拟中作用于“flyby”时传感器的误差会影响镜头对准于虚拟环境的虚拟摄象机。
在球的支撑架上还放有几个在用户手指活动范围内的按纽,这些按纽工作状态为开或关,按纽功能由软件编程定义。例如:一个按纽用来增加VR物体运动的速度;一个用来降低运动速度;另一个按纽是用来把球与它所控制的VR物体进行“耦合”和解除耦合处理;其它按纽可用来启动和停止模拟,或者当使用者迷失方向时作重新启动用等。
跟踪球受到传感器耦合的影响。当时用者希望VR物体位置发生变化但不要求是旋转时,却偏偏发生偏移和旋转,这是因为用户手指施加在球上的力矩不为零所造成的。这些不希望出现的运动可通过软件“过滤”来制止发生,因为它读出的只是所施家加的力而不是力矩。这些硬件过滤器可通过按纽来选样(有些按纽位于跟踪球上),使用者可选择“反平移”、“反旋转”、“运动控制”等输入。
跟踪球的另一个缺点是跟踪球工作于一种“开放循环”模式,使用者在虚拟物体和它所处环境之间控制,但无法感知手中的力。1993年Global Devices三维控制器的出现改变了这种不足。这个设备的外观和工作方式都类似于跟踪球,它提供三维相对位置控制。然而,这种传感球内植有电子调整控制器,因而可以提供16个层次的颤震处理。这样使用者可以感知在控制中的VR物体与其所处环境之间的连接。这种全域设备控制器不包括硬件过滤器和用于选择附加功能的按纽。
3.2.3 三维探测器
三维探测器用于在虚拟环境中操纵和驾驶虚拟物体以及飞行等。用户总是希望有一种使用直观、便宜且能提供绝对或相对位置的模拟控制。1993年秋季Immersion Coperation推出了一种设备叫沉浸探测器。它由一个位于支撑架上的小型传感化机械手臂组成。这个探测器有6个活动关节(关节0~关节5)。每个旋转关节表示一个自由度,共有6个自由度,可允许探头的位置和方向同时存在。
在传感器数值和链条长度的基础上,用运动学计算公式直接求得探测器末端相对于机架的位置。在最后一段链条上有个二进制开关,用于“选择/放弃”虚拟物体或驾御虚拟物体(开启/停止)。另外,也可使用一种相对称的脚蹬,以控制在虚拟世界中的飞行速度(由探测器方向给定的速率矢量方向)。
这种关节式传感器的分辨率对于模型“Prorbe—IC”是0.7°, “Prorbe—IX”是0.35°。因为探测器是一种机械构造,测量不会受到电磁场的影响,同时它的测量速率有可能超过200次/秒。延迟仅为3ms。
探测器位置和方向的实际值与测量值之间的偏差表示精度。关节传感器的分辨率、温度变化以及关节活动范围都可能产生误差。甚至所有打开的动态链探测器的误差会从底部一直类加到顶部。这对于需要与VR物体发生良好作用来说是重要的。
3.3 手数字化设备
在三维环境中,一个物体最多可以在6个方向上运动,6自由度性能指标可以反映仿真中虚拟物体的位置和方向。根据所采用的设备和设计的虚拟环境,参与者最多可以按6个自由度在虚拟环境中漫游,并与其交互。用手作为和计算机交互的主要手段来代替键盘、鼠标,是VR的一项重大突破。但由于输入手的位置、手指的形状在技术上有很大的困难,目前尚需操作者带上专门设计的手套作为数字化设备。
跟踪球和三维探测器都具有简单、紧凑和易于操作等优点,但由于它们自身构成的限制,使用者的手的活动自由度仅限于在桌上的一个小区域中。因此牺牲了用户手的自然活动,减弱了与虚拟世界交互作用的直观性。为了获得大范围的基于手势的交互作用,I/O工具有必要把手的自由活动维持在一定的体积之内。同时也希望通过感知单个手指的运动来增加自由度,人类手指具有屈曲伸展灵活性和侧面/横向的张缩功能,而大拇指还可前后运动使得它与手掌的位置相对应。
手数字化设备就是为了实现VR工具的以上需求而设计的。目前比较成熟的手数字化设备有数据手套、外管架设备、控制手套等,目前市场上出售的VPL数据手套、Vertex CyberGlove、Mattel PowerGlove和Exos Dextrons Hand Master,它们都有测量几个或全部手指关节角度的传感器,有的还有三维传感器,主要是为了跟踪用户腕部运动。
由于这些设备大都存在着输入不稳定、调整困难、价格昂贵等缺点,致使出现了另一类在传统计算机交互设备基础上发展起来的三维输入设备,如摇杆,三维鼠标、空间球、指挥棒(魔棒)等设备。
3.3.1 数据手套
目前使用最多的数据手套VPL DataGlove,是一种戴在用户手上的传感装置,它能将用户手的姿势转化成计算机可读的数据。光导纤维传感器安装在手套背上,用来监视手指的弯曲。数据手套也包括一个6自由度的探测器,以监测用户手的位置和方向。它能给用户所有手指关节的角度变化,用于捕捉手指、大拇指和手腕的相对运动。
由应用程序来判断出用户在VR中进行操作时的手的姿式,从而为VR系统提供了可以在虚拟环境中使用的各种信号。它允许手去抓取或推动虚拟物体,或者由虚拟物体作用于手(即力的反馈)。数据手套把光导纤维和一个Polhemus Isotrack三维位置传感器缠绕在一个轻的、有弹性的Lyera手套上,如图3.6所示
每个手指的每个关节处都有一圈纤维,用以测量关节位置。纤维是通过与塑料附属物贴在一起缠绕在手套上的,由于手指屈伸允许小小的偏移,依标准而言,每个手指的背部只连有两个传感器,感知其它次要关节的光导传感器以及伸屈活动的传感器仅作为选择使用。光导纤维传感器的优点是它的体积小、重量轻,而且用户戴这种手套感觉舒适。为了适应于不同用户手的尺寸,数据手套有“小”、“中”、“大”3种尺寸。
跟踪球受到传感器耦合的影响。当使用者希望VR物体位置发生变化但是不要求旋转时,却偏偏发生偏移和旋转,这是因为用户手指施加在球上的力矩不为零所找造成的。这些不希望出现的运动可通过软件“过滤”来制止发生,因为它读出的只是所施加的力而不是力矩。这些硬件过滤器可通过按钮来选样(有些按钮位于跟踪球上),使用者可选择反“平移”、“反旋转”、“运动控制”等输入。
把原始传感器数据转化为手指关节角度的过程称为“手套校准”。由于系统无法判断先前用户戴的手套是紧还是松,所以开始时要进行校准,而且每次把数据手套都置于一个新的初始状态。
Scott Wright于1990年发现了纤维光导传感器固有的校准误差,并就“光到衰减检测系统”取得专利权。他把LED和光电传送器直接放在手套的手指上,而不是放在一个隔离的电子盒中。
它所用的光导纤维比用于数据手套上的要短得多,并在一金属反射管中线性移动,所检测到的光总量依赖于手指弯曲程度。当手指伸直时,光导纤维的末端离LED最近,这时光电传送器传送的光总量最大。当手指弯曲时,纤维离LED远,则到达光电传送器的光总量会减少。
根据光导衰减器的构造,它代替了数据手套使用的带有线性偏移的非线性弯曲运动,因此这种传感器是线性的,因而简化了手套校准。在支撑物Lyera手套上仔细放置传感器会消除由手套产生的传感器耦合影响。
2.数据手套校准方法
数据手套是装有传感器最多的交互设备,在使用中必须不断给予校准,曲率传感器和abduction/adduction传感器的校准方法有所不同。传感器校准方法使用Hang 和Tan给出的最小平方公式:
, (3.2)
其中r为原始传感器读出值;为手指弯曲角度;a,b,和c是校准量。
由于传感器数据的耦合,所以abduction/adduction传感器的校准比曲率传感器更复杂,Burdea等人提出了一种校准方法: (3.4)
其中是当为零度时的值。函数Ψ给定一系列和的值使用最小二乘法而求得,通过在一平板上移动手指并测量不同的值,使得保持为零。一旦求出函数Ψ,用公式(3.5)定义的函数可以求出相对于一随机值的值。 (3.5)
标准配置的数据手套并不测量手指末端关节(大拇指除外)的弯曲角度 ,使得一些开发者研制的虚拟手模型只是两个关节的手指,这显然不是我们所希望的,确定 的一种办法就是考虑 与 之间存在的耦合关系。实验测量结果给出了一般的耦合公式:
其中a,b,c因不同用户手的特征而异。图 (3.7)显示了与的耦合关系,给定食指(a=9.32,b=0.22,c=0.017)和中指(a=9.77,b=0.36,c=0.014)特征校准后所得弯曲测量误差4°~ 7°,adduction/abduction的测量误差5°~ 8°,而对前/后位则是6°~ 8°。由于使用者手指相当于一根不封闭的活动链,所以传感误差是逐个累加的结果。情况最坏时,最大的误差同时存在且同号,传感所得的指尖位置会大大异于其真实位置,两者相差由等式(3.7)和(3.8)输出:
(3.7)
(3.8)
其中 , 和 为指长, , 和 是弯曲校准误差,
Scott Wright于1990年发现了光导纤维传感固有的校准误差,并就“光导衰减检测系统”获得专利权。它把LED和光点传送器直接放在手套的手指上,而不是放在一个隔离的电子盒中,如图3.8所示。
3.3.2 电子手套和功率手套
1.电子手套
这种手套是使用线性传感器的电子手套(图3.9(a)),它是Jim Kramer 于1990年发明制造的。Kramer制造它是为了与一神经网络手势识别接口配合使用,为了帮助声音受到损伤的人,早期就被当作一种VR工具使用,目前已代替了数据手套。
电子手套把纤细的电子拉伸传感器装在弹力尼龙混合材料上。为了良好的通风可以移动长掌心,并允许正常的手势动作,比如打印、书写等,因此,这种手套很轻,而且便于穿戴。
每个关节弯曲角度用一对拉伸传感器中电阻的变化间接测得。在手指运动过程中,其中一个传感器处于压缩状态(C),而另一个处于拉伸状态(T)(图3.9(b))。它们的电阻变化造成了Wheatstone桥的电压变化,如图3.9(c)所示,手套上有多少个传感器就有多少个Wheatstone桥。电压改变由模拟放大器放大,并由一A/D转换器将其数字化。主机对此数字化电压用一校准程序进行处理以获得关节角度。
手套传感器既可以是矩形的也可以是U形的,用于检测手指弯曲的传感器有16~24个(每个手指头3个),一个用于扩展运动,小手指的旋转和腕关节的倾斜,传感器分辨率是0.5°。由于这种手套的传感器是松耦合的,因此输出不互相依赖。它的价格是传感手套中最贵的。
3.功率手套
功率手套(Power Glove)与数据手套和电子手套相比,价格相当便宜,只需花费50美元就可以购到,因此这种手套大量用于视频游戏,其销售额在1989年高达4000万美圆。
图3.9电子手套
为了保持价格低廉,在这种手套设计中使用了很多耗资不多的技术。腕部位置传感器是一个超声波传感器,其超声源放在PC监视器上,微型麦克风装在手套的腕部里。弯曲伸展传感器是一种导电墨水传感器。这种传感器由一支撑物上的双层导电墨水组成。这种墨水里面有碳分子,当基层物(支撑物)弯曲时,墨水就在弯曲的外部,墨水的拉伸引起导电碳粒子之间距离增大,就引起了传感器电阻率的增加。
反过来,当墨水受到挤压时,碳粒子之间距离减小,传感器的电阻率就下降。然后通过简单校准,电阻率值就转化为关节角度数据。功率手套通过PC机并行口将从手套传感器输出的取样读数,传送到主机,最后在监视器上看到更新的图像。
研究者们以发现功率手套较之其他VR手套来将是一种价格非常便宜的选择。问题是要找到一种方法能与任何CPU通信,而不仅仅是与PC机通信,还应能与工作站通信,因此还需要一个串行软件接口。最近Illinois大学开发了功率手套串行接口(PGSI)。
PGSI使用一套包括35条指令的命令集,包括设置“细流”或“池塘”通信模式,初始化手套,打开/关闭A/D通道等。其更新率为27次/秒。其中PGSI命令可用于关闭活动眼镜的左/右镜头。
3.3.3 其他手数字化设备
1.手控装置
手控装置(DHM)The Dextrons Hand Master1990年有Exos公司生产,它是一种戴在用户手背上的金属外骨骼结构装置,如图3.10所示。每个手指有4个位置传感器,一个手有20个传感器。每个角度位于这种机械框架关节上的霍尔效应传感器测量得到。还专门设计了弹簧夹和手指支撑架,用来保持装置在整个手的活动范围内与手结合紧密。用可调节的皮带把次装置戴在手上。为了适应不同大小的手,还另有附加的支撑和调节带附属物。
因为这种装置在手上的位置会“滑动”,所以在每次模拟开始时都要进行校准。Gharaybeh已开发研制出了一种DHM校准模型,这里给出关于食指的校准模型。d单位长度的 与C单位长度的 相连。手指的旋转轴是关节轴J,它与最近的链 相距g。类似地,关节轴J与 的支撑架相距h,h和g夹角为 。
图3.11绘制了手指在“零”(伸直)位置和在关节J弯曲β角度后的状态图。角度θ由位于链和连接处的传感器传感得到。当θ为零时,两个链的夹角为,关节J弯曲后,两链夹角可根据θ和计算得到。在零位置处,θ,和β分别就是,和,则有:
(3.9)
(3.10)
(3.11)
把(3.11)和(3.9)代入(3.10)
(3.12)
得到
(3.13)
在零位置处,β=0,θ= ,可求得 :
(3.14)
其中c,d和是常量,列于表3.3。变量g和h依赖于用户手的几何形状及DHM的放置。一旦求得常量 ,就可用等式(3.13)求出指头弯曲角度 。
表3.3 DHN的已测量出的常量
当金属框架上的传感器离开了它所测量的手指关节时,就会影响其测量精确性。DHM还有一些与数据手套相对立的问题。它重达350克,易使手感到疲劳,还有一个缺点是用来接DHM的皮带使用不方便。图3.10 手控装置结构
2.常用的数字化设备 VR系统中常用的手数字化设备还有:
1)指套 这是pool球的一种变体,它由状如 弹吉他的指套组成,其上装有传感器和微动开 关,它既简单又直观,对于在VR中进行抓取 操作特别合适。
2)操纵盒 这是一种带有滑尺(滑动块)的 具有3个自由度的操纵杆,由二维操纵杆的发 展而来,是一种老式的三维输入设备。
3)浮动鼠标器(Flying mouse) 类似于标准的二 维鼠标器,但当它离开桌面后就成为一个6自 由度探测器(因其内部具有电磁探测器)。 Logitech3D浮动鼠标器利用内构式超声接受器 和具有发射器的固定基座来测量鼠标器离开桌 面后的位置和方向。
4)力矩球 手持式操纵器和浮动鼠标的问题 之一是用户必须将设备拿在手中,而力矩球 是种仍然可以提供6自由度的桌面设备,它安 装在一个小型的固定平台上,可以扭转、挤 压、压下和拉出、来回摇摆等。力矩球通常 使用发光二极管来测量力。
5)手持操纵器(Wand) 手持式操纵器包括 一个位置跟踪器和几个按钮,专门放在手中 作用,它类似于浮动鼠标器,但没有鼠标球, 因它不需要在桌上滚动。
此外,还有三维探针(3D probes)等。这些设备的一个最基本特点是,都具有6个自由度,即可以用宽度、高度、深度、俯仰、转动(横滚)和偏转(偏航)来描述物体的位置,因此是比传统2个自由度的输入设备更自然的交互设备。
1968年I.E.Sutherland发表了题为“头盔式三维显示装置”(A Head—Mounted 3D Display)的论文,这是一篇对三维体视显示技术起奠基作用的经典文献。文中对头盔式三维显示装置的设计背景、构造原理和存在的问题作了讨论。目前,对大视场视野的研究仍是一项使科学家门关注的问题。
3.4 立体视觉设备
人类的视觉是最灵敏的感觉器官,用以产生视觉效果的显示设备与普通的计算机屏幕县显示不同,VR要求提供大视野、双眼立体显示。在VR系统中,常用的视觉反馈工具有头盔显示器、立体活动眼镜、双眼全方位监视器等等。最通用的一种是头盔显示器(图3.12)和立体眼镜,但头盔显示器所能提供的临场感要比立体眼镜好得多。其他的视觉反馈工具还有监视器以及大屏幕立体投影等。
3.4.1 头盔显示器
头盔显示器HMD(Head—Mounted Display)是专门为用户提供虚拟现实中景物的彩色立体显示器。通常固定在用户的头部,用两个LCD或CRT显示器分别向两只眼睛显示图像。这两个显示屏中的图像分别由计算机驱动,屏上的两幅图像存在着细小的差别,类似于“双眼视差”。大脑将融合这两幅图像获得深度感知,因此头盔显示器具有较好的沉浸感,蛋粉表绿交底,失真较大。
头部位置跟踪设备是在头盔显示器上的主要部件。通过头部跟踪,虚拟现实用户的运动感觉和视觉系统能够得以重新匹配跟踪,计算机随时可以知道用户头部的位置及运动方向。因此,计算机就可以随着用户头部运动,相应地改变呈现在用户视野中的图景,从而提高了用户对系统知觉的可信度。头部追踪还能增加双眼视差和运动视差。这些视差线索能改善用户的深度感知。
由于头盔显示器所用的屏幕离眼睛很近,因此,为了使眼睛聚焦于如此近的距离而不易产生疲劳,需要使用专门的镜片。还要求这种镜片能放大图像以尽可能填满人的视野。这些透镜在1989年首次推出时,LEEP镜片。LEEP镜片的特征是它们使用了输出成像极其宽阔的透镜。
使用宽镜片是为了能包容所有大小的瞳孔间距。否则就需要一个机械调整装置,这使得镜片更复杂又增加了成本。IPD的平均值稍小一点,当看两个屏幕时用于双眼聚焦。在透镜上还使用了弗瑞奈透镜,以把两幅画像相互移近并通过大脑融合在一起。
尽管LEEP镜片对于聚焦和放大图像很有用,但它仍存在很多不足。LCD的分辨率低,典型的是360x240象素点。象素的粒度经LEEP镜片进一步放大后在使用者看起来非常显著。为了减轻这种不利的影响,HMD生产厂家开发了VPL,把扩散层重叠在LEEP镜片的输出上。这使得象素的分界不那么明显,图像效果看起来要“稍好一点”。
线性图形基本元素写入“虚拟屏幕”后,根据预扭曲函数把所有象素进行偏移,并发送给屏幕缓冲区以显示。扭曲函数原形是三次多项近似式。
这种镜片的另一个有害影响是图像变形。LCD上显示的直线看起来象是曲线。这可由VR系统中对图像预先进行扭曲,因而可以对扭曲进行补偿处理,使得图像通过镜片看起来趋于正常。图3.13显示了屏幕象素与虚拟象素之间的关系。(a)为单镜头模型,(b)为立体镜头模型。
在虚拟屏幕上的预扭曲象素位置,眼睛看到的此点是对应于坐标 的一个标准化显示象素 ,二者关系为:
(3.15)
眼睛到虚拟图像平面的距离Iu是常量。方程(3.15)是有两个变量的函数,把扭曲函数命名为d,即:
。 (3.16)
d的反函数就是所要求的预扭曲函数
, (3.17)
或
(3.18)
以上方程中的系数 和 表示当前扭曲总量且符号相反。因为 和 都是三次多项近似式,所以两者并不完全互为相反。
立体视野要有两个虚拟点 和 ,当用户感知时,这两点会聚为一个立体点。
目前常见的头盔显示器介绍如下:
1.基于LCD的头盔显示器
分辨率、视域、重量舒适感和价格,都是市场上各种型号头盔显示器所要考虑的几项指标。VPL公司首先引进了“眼睛话筒”,它是一种基于LCD分辨率为360x240的头盔显示器(图3.14)。水平视角是100°,垂直视角是60°,重量为2 .4kg,如果重量较大会增加使用者的疲劳感。它的价格在当时也相当高,订购价格为11,000美圆(不包括头跟踪器)。
由VPL公司研制的EyePhone是最著名的系统之一。EyePhone采用Polhemus IsoTrak系统跟踪头部位置。它的水平视角是100°,垂直视角是60°,显示分辨率为360x240象素。由于采用Polhemus跟踪装置,EyePhone不能接近强磁场和大的钢铁物体。EyePhone的重量较重,因此不再生产。取而代之的是Virtual Reaseach公司生产的“Flight Helmet”,由Bruce cassett设计的Flight Helmet是一种成本较低的头盔显示器。
如图3.14(a)所示,它的显示分辨率为360x240象素。它具有立体声耳机及超声波位置跟踪器。Flight Helmet重约1.8kg,佩带方便舒适。它具有与EyePhone一样的分辨率和视域。
CyberfaceII是另一种基于LCD的头盔显示器。它的工作方式与Eyephone大致相同。也有采用液晶显示屏的,但视场比Eyephone更大,水平视场达140°。它还包括耳机和戴在脖子上起平衡作用的平衡锤。
图3.14(b) 所示的“Cyberface II”中,通过LEEP镜片系统又提高了分辨率,扩大了视域。它不同于fight helmet,在使用者胸部放一个计数加载器,把它的重量减到1kg。LEEP的显示镜片经过重新设计,把水平角增大到140°,这是目前能达到的最大值。同时他们又把象素分辨率提高到479x234,而价格保持不变。
图3.14 基于LCD的头盔显示器
还有一种头盔Virtual I/O I—Glasses,包括两个液晶显示器,分辨率各为320x200,这种头盔采用的是通过对显示图像的奇偶行分别输送到左右眼液晶显示器上,来实现VGA方式下的立体显示。
1993年3月,VRontier Worlds提出了一种仅用于VR应用的新型HMD配置设计,称作“Tier 1”。这是一种轻型HMD,它使使用者的头部暴露在空气中,因而佩带感觉更舒适。它的前端操纵面板可以方便地调节颜色的色调和亮度。视域有112°,内置有会聚矫正器,因此无需偏移软件进行会聚处理。另一个优点是可以拆卸的显示器,只有680g重量,因此可以很方便地把Tier 1转换为手持式视频器。
当HMD工作于立体模式下时,每个LCD从图形工作站接收两幅图像信号,如图3.14(c)所示,这些信号从两个图形加速器传递给RGB/NTSC转换器,然后传送到头盔上由LCD显示出来。当主机只有一个图形加速器时就需要一种特殊的“Y”形电缆。这时信号被“分裂”开并以单显模式同时在两个LCD上显示。
Tier 1的前端控制板上有一个立体/单显开关,它允许画面能在内部分开,因此无需外部的“Y”型电缆。为了将此产品打入市场,VRontier Worlds把Tier 1的价格降低到3000美圆,还免费提供VREAM虚拟现实开发系统软件。它是目前最便宜的HMD。
由PRI高级技术集团推出的新型HMSI1000尽管价格不是最便宜的,但却是体积最小、重量最轻的市场上可买到的HMD。如图3.14(d)所示。它几乎与一副眼镜差不多大小,仅重0.23kg重量的减轻主要源于LCD的缩小,分辩率约为100,000彩色象素/眼(479x234)。由于显示器小,所以立体视域也响应缩小(水平角度45°,垂直视角46°)。
当使用者佩带HMSI1000时却感到很沉,因为所有的重量都由鼻子来承担而没有分散给头表层。因此即使只有0.23kg却也很沉。生产厂商正在开发第二代HMSI,它的重量会减轻一半,而分辨率为原来的3倍,这种改进型的HMSI可能在市场上已能买到。
2.基于CRT的头盔显示器
CRT的头盔显示器使用电子快门等技术实现双眼立体显示的,但它的视野小,缺少沉浸感。如图3.15所示的工作站一般分辩率为1000x1000,但目前就市场上出现的基于LCD的HMD只有11%达到此项指标。只有采用阴极射线管(CRT)代替LCD作为显示器才行。CRT位于使用者头的两侧。
图像首先在镜面上产生45°反射,通过专门的镜片直接进入眼睛。由于CRT的使用电压高而又距离用户的头部很近,所以电路的设计、装配要非常小心。
Virtual Reality公司生产了一种基于CRT的年新型HMD称作“HMD—131”。它的分辨率依显示频率而定,30Hz时为1280x1024个象素点,60Hz时为640x480个象素点。这大大优于LCD,然而它的图像是单色的,因为对于一个如此小的CRT,很难实现阴影屏蔽,而且这种HMD价格很贵。
1993年8月,n—Vision公司生产了一种全彩色CRT的HMD,称作“Datavision9C”,“ Datavision9C”在单色CRT前放有一个Tektronix“原色”液晶光栅。通过快速过滤器开关一条线,首先以红色显示,然后以绿色显示,最后是蓝色,人的大脑把这三副图像融合在一起,就看到一副彩色图像。
然而这需要的扫描频率是普通CRT扫描频率的3倍,也就是需要昂贵的高速电子管。因此最大的信号宽度是100MHz,频率30Hz时分辩率为1280x960,频率为60Hz时为640x512。CRT和光栅都有金属作屏蔽,可以省去电子接口,并达到分散用户头部热量的目的。
在1993年年末又推出了一些价格便宜的新技术可以提高HMD的性能。值得一提的是,Tektronix开发开发了一种直径为2.5cm的640x480彩色CRT。这种新的显示器目标在于低端应用。其出售价格不会高于1000美元。另一项成果是旧的彩色回旋技术应用,颜色回旋就是让红、绿、蓝三个颜色分别在单色CRT面前高速旋转,把它与单色CRT耦合起来。可获得比之价格高的Datavision9C所用的LCD图形光栅一样的效果。其优点是重量轻、亮度高,该产品主要由Thomas Electronics公司生产。
正在进行的研究工作致力于要把CRT完全转移到一个位置,把显示器移置到一个芯片上,即所谓的“数字微镜设备”(DMD)。DMD中Toxas(得克萨斯)管的成功应用使得37x33 大小显示器分辨率达到2048x1152。每个象素点是一个非常小(16μm)的晶粒面元素。
每个微镜片由两个接线柱和铰链支撑,可以在一个矩阵管理下“浮放”在芯片表面,在芯片RAM地址处提供5V电压会使相应的微镜面偏转±10°的微镜面把反射进来的光通过一个放大投影镜反射到一个显示屏上。如果镜面不偏转,光就不发生反射,那么投影象素就显示为暗色。最后的图像很亮,主要是因为颜色转轮对光的低吸收率,图像的清晰是由于DMD芯片阵列的高分辨率所致。
3.双目全方向监视器
双目全方向监视器(Binocular Omni—Oriented Monitor或简称BOOM),也称支架显示器或称头部耦合显示器,和头盔显示器一样有实时观测和交互能力和立体显示设备(图3.16)。
在交互中,用户可以将BOOM显示器扒开直接去观察真实世界。BOOM的分辨率高于HMD,但沉浸感稍差些。
基于LCD和CRT的HMD都受到头部跟踪延迟的不良影响。三维位置传感器的延迟至少有12ms甚至更多。如果再考虑到传送延迟,视频延迟会更多。当使用者移动头部时,显示的图像应反向移动。如果头部运动和图像运动之间的延迟太大,就会影响图像的逼真显示效果。
图3.16 使用BOOM在观察
为了解决这一问题,必须做到与使用者的头部运动实时响应,这也需要一种不同类型的跟踪方法以及快速图像渲染。NASA就此问题结合VIEW投影,研究出了CCSV(如图3.17)所示的观察器。这个观察器使用一只机械臂支撑CRT。同时该手臂在6个关节处都有位置传感器,组成了一个全域三维头部运动跟踪仪。
来自手笔传感器的初始模拟数据,首先被转换成浮点角度(基于内部校准常量)。然后使用动力学方程(很类似于当代机器人做的那样),就可以得到手臂末端的位置和方向。再把这些参数发送给图形工作站,生成用于双眼观看的图像。
当前CCSV的代表产品是由Fakespace公司生产的Boom。高层终端“Boom 2C”的分辨率是1280x1024象素点,这比其它任何显示器都高。由LEEP镜片生产的视域也是最大的,水平视角140°,垂直视角90°。性能的提高也使价格上涨,“Boom 2C”价值几万美圆,而一台低端的“Boom 2”终端的单显型号价值只有它的一半,这些价格为当时的价格,随着技术的发展,价格会进一步下降。
Boom的主要优点是延迟小。如果基本无延迟或噪声,那么跟踪的更新频率是60Hz,就消除了3D电磁或超声波传感器中所具有的不稳定性。另外,它不受磁场和超声波背景噪声的影响。它的功能也比其它HMD强,因为BOOM允许间断的使用键盘,无须重复敲键。它的缺点是“运动自由”不方便。这是因为在工作空间中心的支撑架造成了“死区”。Boom的工作范围是1.5x0.75 ,还要除去中心的0.5 。
3.4.2 立体眼镜 立体眼镜由液晶光栅眼镜和红外线控制器组成。在一些应用中,科学可视仪和极细微的外科手术,参与的每个专家都需要看到一幅同样的立体图像。
在这种多用户环境下,如果每个人都佩带一个HMD,这要花费很多钱,因此可以改用一种价格便宜与立体显示监视器相连的立体“活动”眼镜。每个使用者都戴着这样的一幅眼镜观看监视器。
这种立体监视器能以两倍于普通扫描速率更新屏幕,即120~140幅/秒的显示频率,计算机把RGB信号发送给监视器。这些信号由两幅交替的、偏移的透视图像组成,一个与信号同步的红外线控制器,用于控制无线模式工作下的活动眼镜。控制器操纵液晶光栅交替地关闭两眼中的一只眼睛的视野。这样大脑寄存下一系列左、右眼图像并通过立体观测,把左、右眼图像进行融合。
极其短促的光栅开/关时间(nms)和120Hz的监视器刷新频率形成了无闪烁的图像。这种图像比基于LCD的HMD要清楚得多,而且长时间观察也不会令人疲倦。然而,由于光栅过滤器泄露一部分光,所以使用者看到的图像亮度不如屏幕好。
这种立体眼镜产生的沉浸感不同于HMD。由于使用者没有与显示器相联,因此因此使用者感觉不到是被一虚拟世界所包围,而是把显示器当作一观看虚拟世界的窗口。如同一个真窗口那样,使用者希望画面随着自身位置的变化而改变。有时当使用者只改变方向时,他不希望改变画面显示,他的眼睛持续盯着一个方向,即朝着监视器看。这类似于某人在窗口很近的位置面对窗口,他们希望窗外风景保持不变。从而可知,对于一个固定显示VR系统来讲,三维位置数据比三维方向数据的跟踪要重要得多。
以人为对象的实验表明,相对于使用者头部运动的图像要做放大,因为屏幕显示的视野比HMD的要小一点。如果使用者坐在离显示宽度为30cm的监视器45cm处,那么显示范围只是使用者水平视角180°中的37°,然而,当投影角度为50°时,VR物体看起来最好。为实现视野放大,使用者与屏幕的缺省距离为U(如30cm)。
3.19
其中U是缺省距离;r是响应因子。
不论是对视野角度还是对图像旋转角度来讲,r为125时是最佳的响应因子。当r与噪声三维数据同时放大时,会增加工作包围层边缘图像的不稳定性。
StereoGraphics公司是一家立体眼镜生产商。它生产的眼镜仅重85g,使用舒适(与重达1kg或更重的HMD相比)。该眼镜由蓄电池启动,可连续工作90小时。1992年该公司生产了包括一个Logitech头部跟踪仪和一副活动眼镜的“CrystalEyesVR”软件,每增加一副眼镜要价1,100美元,不需增加分离的IR控制器。可以选择自己喜欢的操作范围,最远可离监视器6m。当从远处看立体图像时,光栅LCD眼镜所传播的光能增加了60%(自动“亮”模式)。
3.4.3 其他三维显示器
1.立体投影屏幕
以上描述立体眼镜使用的是按时间顺序排列的图像(同一个屏幕按时间序列显示左、右图像),另一种显示左、右眼信息的方法是通过立体复合技术(SMI)。左眼的虚拟图像经过调制步骤处理,使方格配置的屏幕一半变黑,右眼图像也被送往一个对应的调制器,然后把结果合并成为一副图像。结果得到的复合空间图像(SMI)同时包含了左、右眼数据。因此仅需要的就是如何对如何对图像进行解调,使用户看到的图像是立体的。
Earis描述了一个由许多小方格偏振化矩形组成的“微极”阵列。每个矩形有两极P1和P2,如图3.18所示,若将P1,P2相互旋转90°得到P2,P1,“微极”的维数以及它们的空间分布与SMI象素的组织匹配。下一个“微极”胶片重叠在SMI之上,这样P1覆盖了所有R象素,而P2覆盖了所有L象素。使用者佩带一副“无源”偏振眼镜。当镜头在方向P1偏振,会挡住所有方向P2的象素,即所有的左象素点。
同理对于左镜头用方向P2偏振。大脑就把这两副图像合并起来产生立体效果。以上所述的技术具有很多优点。首先,只使用一副图像,所以无需特制的显示器。其次是价格,一副无源眼镜只需花1美圆。因此对于许多人同时看立体图来讲,使用这种无源眼镜要比使用“有源”眼镜便宜。为了满足许多人参加的情况,通常必须把图像投影在一个大屏幕上。
以前的技术是使用与无源眼镜相似的两个投影仪而不是一个投影仪。投影仪价格贵,而用于微极屏阵列就只需一个投影仪了。
最后,把这种SNI技术用于打印光电图形介质的输出上,就有可能把便宜的三维立体图像印制到书本上,用于VR图像文件存档,读者可以戴上随书提供的偏振眼镜观看书籍。
2. 自动立体视野的三维显示器
自动立体视野的显示器无需任何眼镜就能产生立体效果。Dimension Technoligies公司生产的DTI 1100C“虚拟窗口”就是这种显示。虚拟窗口使用活动的LCD彩色阵列,控制彩色阵列,用于成对立体图像的空间分隔。在交替的LCD象素阵列上同时显示这两副图像。每个LCD象素点由许多窄光源从背部照亮。
左、右图像分别以30帧/秒的速率分别显示在奇数列和偶数列交替的并行显示使得每只眼睛只看到其对应列,因而产生了立体感。背部光源d和LCD离使用者的距离D之间的关系决定了立体“观察锥”。使用者必须处在此观察锥内才可感到立体效果,否则就无立体效果。
左、右图像分别以30帧/秒的速率分别显示在奇数列和偶数列交替的并行显示使得每只眼睛只看到其对应列,因而产生了立体感。背部光源d和LCD离使用者的距离D之间的关系决定了立体“观察锥”。使用者必须处在此观察锥内才可感到立体效果,否则就无立体效果。
以上所述的自动立体视野显示器的优点是它以低分辨率和减少的视看列为代价,实现一个完全使用无阻碍的显示模式。
虚 拟 技 术
第4章 虚拟环境中的自然交互技术
虚拟现实技术的发展导致了数据手套等三维输入设备的诞生,由此引发了交互技术的一场新的革命,并产生了许多有趣的,及待解决的交互技术问题。从目前许多计算机图形应用实例表明,用户与图形/图象之间的交互能力和图象本身的质量同样重要。可是,与目前虚拟现实中的其他部分相比,虚拟现实的交互技术要落后一些。但虚拟现实交互技术的研究方兴未艾,随着虚拟现实的发展,人机交互将出现一场划时代的革命。
本章将探讨三维交互技术的概念层次结构,并介绍手势识别/手模型识别/自动抓取/碰撞检测以及多通道用户界面模型等交互技术。这些技术不仅用于虚拟现实,而且在计算机动画(Computer animation)及机器人控制中也有极高的应用价值。
4.1 自然交互的概念模型
4.1.1概述
头盔显示器作为输出设备为我们提供了视觉图象,使我们可以进入计算机创建的虚拟世界,经历一种身临其镜的感受,但这是被动的体验虚拟世界,不能与之交互。为使用户能按照自己的意愿移动或操纵虚拟世界中的物体,而有一种进入虚拟环境的感觉,并能接触和移动这些物体。这种虚拟现实技术的人与计算机接口设计是一个需要突破的壁垒,将能完成人-机界面形式演变的一次革命,如何用尽可能自然的方式与计算机交互是这次计算机革命的中心问题。
多媒体计算机和虚拟现实系统的出现改变了人与计算机通信的方式和要求,使人机交互发生了很大的变化。表4.1表示的在不同发展阶段的人机交互模型。在传统的人机系统中,人被认为是操作员,机器只作出被动的反应;在一般的计算机系统中,人被称为用户,人机以一种交互的方式进行工作,但用户对这种交互过程并无主动的控制能力;只有在虚拟现实系统中的人才是主动的参与者。用户界面的设计必须适应交互模型的这种发展。
表4.1 人机交互模型的发展
虚拟现实作为一种新型人机接口,不仅使参与者沉浸于计算机产生的虚拟环境,而且还为用户提供了与虚拟环境之间直接通信的手段。当用户交互操作虚拟空间中的三维物体时,这些物体将对用户的操作作出实时响应。参与者会感到自己仿佛置身于真实的世界之中,他们可以用手抓取/释放或推动虚拟世界中的物体,甚至还可以与这些物体交谈,就象人类在真实世界里所做的一样。这样就要求,计算机必须以尽可能自然/直观/精确的方式与参与者交互。
在交互图形系统中,大量使用的是二维交互技术。它对计算机图形学的发展起到了积极的作用。但对于VR系统而言,必须采用更高级的临境交互技术。当前性能最佳的图形工作站已能够在100ms之内生成几乎与照片一样逼真的图像,有的工作站甚至可以在相同的时间内生成两幅用于虚拟世界立体观察的图像。
然而,与工作站图形功能无法比拟的是,能够开拓这些工作站潜力的输入设备/交互技术比较少,新输入设备/新交互技术的开发也相当缓慢。为了使参与者在虚拟世界中感受到“真实”的体验,为了使参与者能直接与虚拟世界中的物体交互,虚拟现实系统必须充分利用图形工作站的潜力。可以说,虚拟现实技术在各领域中的广泛应用将取决于参与者与虚拟世界物体之间的交互能力,而其中人的因素起了极其重要的作用。
当前对交互技术研究主要从三个方面着手:一是依赖于硬件技术的发展;二是软件的开发,因为三维交互在很大程度上依靠软件,如手势/姿势的识别/参与者(或观察者)在虚拟世界中的导航等;三是利用视觉原理,如果我们能通过广角摄象机摄入人的手和身体的图像,用计算机视觉/模式识别等方法,解释人们的手势,就可以抛弃使用起来很不放便的数据手套。
4.1.2感知与行为概念模型
“心理学是虚拟现实技术的物理学”,因此,虚拟现实的发展离不开对人的因素的研究。人们通常是以视觉和听觉来认识物体与形状的,由于人体行为的复杂性和个体化,所以至今还没有一个人体行为的综合模型。对一个人的状态或特征描述的正确性,最多是定性的而不是用数学方式定量化的。因此分析人-机交互的难度就可想而知了。人的参数包含越多,就更难对这种交互有一个正确理解。
然而,VR的主要特征是用户参与包含感觉的沉浸。要弄请楚人与外界环境是如何交互的,先需要借助实验心理学的系统分析方法。总的来说,人与外界环境的交互分成两大部分:感知与行为作用。人是通过视觉/听觉/触觉及嗅觉等感觉器官感知外界环境及其变化的。例如,用眼睛看,用耳朵听,用手触摸等等,这就是感知系统。人对环境的作用是通过行为/语言等方式完成的。例如,抓取物体/与其它物体(人)交谈等等,这就是行为系统。
60年代美国实验心理学家J.J.Gibson认为:要想让参与者在虚拟世界中得到“真实”的体验,必须对感知系统及行为系统进行系统的分析,对此他们做了大量的实验工作,给出了感知系统及行为系统的概念模型。
1. 感知系统概念模型
人类是通过视觉/听觉/触觉/嗅觉等感官来感知外界环境及变化的,他们用眼看/用耳听/用手模/用嘴尝等方式与环境交互。因此,在感知系统的概念模型中,Gibson把感知系统划分成方向/听觉/触觉/嗅觉及视觉等6个子系统,并分别列出了这些子系统的行为方式/接受单元/器官模拟/器官行为/刺激元及外部信息。
例如,对于味觉子系统,其行为方式是品尝,接收单元是化学及机械接收器,器官模拟是嘴,器官行为与器官方式一样也是品尝,刺激元是所吸收物质的化学成分,外部信息是营养及生化价值。
实验心理学对感知系统的系统分析,已经成为虚拟现实系统中感知系统设计的基础。根据Gibson的6个感知子系统,可以为虚拟现实系统设计相应的传感器。比如,为听觉子系统设计出立体声耳机。但是目前的技术水平还不能设计出所有传感器,特别是与化学接受器有关的传感器。
例如,当参与者在虚拟世界中吃苹果时,就很难模拟真实世界中的效果。因此,目前虚拟现实系统中的感知系统只是在一定程度上使参与者有“真实”的体验。由于技术上的原因,目前对感知传感器的研制与开发主要集中在视觉子系统/听觉子系统/及触觉子系统上。
(1)视觉子系统:视觉子系统利用双眼视觉的微小视差,获得深度感知,它的典型传感器是立体显示器,如现在市面上流行的头盔显示器(HMD)和支架式显示器(BOOM)。立体显示器是虚拟现实系统的重要组成部分,是使参与者沉浸于虚拟世界的主要的交互手段。为了使参与者有身临其境的视觉效果,仅有立体显示器还不够,还必须配上适当的软件,除了通过一定的算法生成双视图,并获得深度信息外,该软件还需解决一系列的问题。
例如,人在真实世界里是能够看到自己身体的一部分的,戴上头盔之后,也应能模拟真实世界的情况。又比如,人在真实世界里快速移动观察方向时,所看到的真实世界不会有跳动的感觉;但在虚拟现实系统中,因为计算机生成虚拟世界场景的时间有限制,所以人或虚拟场景的运动存在运动感知延迟,当人在虚拟世界中快速移动观察方向时,虚拟世界往往给人跳动的感觉。
(2)听觉子系统:听觉子系统是根据声音到达两耳强度的相位差来区别声音的方向,同时还依赖于每个人的头部相关传输函数(HRTF),既人的因素。虚拟环境中的虚拟声音是通过立体声设备输出的。它的典型传感器是立体声耳机。目前,立体声耳机已能达到相当不错的音响效果,不论是模拟自然界的音响还是人类的语音都是如此。困难之处是使立体声耳机传出的声音有位置感。
比如,当听到歌声时,能判断出声音来自何方,距离有多远。又比如,当汽车朝我们疾驶而来时,发出的声音很尖锐;但当汽车从我们身边离去时,同样的车速其发出的声音就要小的多,要在虚拟现实系统里实现这样的效果是很不容易的。
(3)触觉子系统:像真实世界中一样,虚拟世界的物体对象有纹理/有形状,虚拟手能感知这一切,并有力量反馈。目前对触觉子系统的研制还处于起步阶段,已经应用的只有数据手套上的压力传感器。其原理是,数据手套上有一块特殊材料制成的薄片,当参与者在虚拟世界中用虚拟手碰到物体时,将有电流通过薄片并使其弯曲,从而给人压力感。当然,这只是对触觉的简单模拟,高级触觉传感器还有待近一步研究。
如上所述,光有传感器还不够,还要在其基础上开发相应的交互技术,才能使参与者自然地与虚拟世界交互
2.行为系统概念模型
人类对环境的作用是通过行为/语言等方式完成,如抓取物体,与其他人交谈等等。因此Gibson把行为系统分成姿势/方向/走动/饮食/动作/表达及语义7个子系统,人类正是通过这些子系统影响外部环境及自身的。其中,姿势子系统用语、用于维持身体平衡;方向子系统用于确定/改变人体的方向;
运动子系统用于改变人体外部环境中的位置;饮食子系统即人的消化系统;运动子系统用于改变外部世界,如用手抓取物体等等;表达子系统用手势/面部表情等传达一定的信息;语义子系统既语言子系统。从概念上讲,有了这些子系统,参与者就能以自然的方式影响虚拟世界及“自身”。然而,与感知系统一样,在目前的技术条件下要完全实现这些系统是不可能的,比如像饮食这样的活动现在就很难模拟。目前,包括正在研制及已得到应用的系统在内,比较成熟的行为子系统有方向/表达及语义子系统。
(1)方向子系统:方向子系统用以确定和改变人体和头部的方向,其硬件基础是头部跟踪器。当头部运动时,头部跟踪器实时地跟踪头部运动信息并改变虚拟世界的景区图像。如当参与者朝左看时,应能看到其右边的虚拟世界图像;当向右看时,应能看到左边的景区图像。
(2)表达子系统:表达子系统是使用手势/面部表情等传达一定的信息,其硬件基础是数据手套。虚拟现实系统能识别人的手势并根据预先定义的手势语言执行相应的操作。特别是演员的面部表情,要能生动地反映到“虚拟人”的面部,目前已有面部传感设备,但仅仅是实验。下面还要详细讲述手势语言及相关交互技术。
(3)语言子系统:其硬件基础是麦克风。语音识别是其基本技述。通过识别参与者的语言,参与者能够向虚拟现实系统发出命令或与虚拟世界中的物体交谈
为了达到自然的人机交互,目前已研制出了一些硬件交互设备,并开发了相应的交互技术。与以前的人机交互技术相比,虚拟现实交互技市、技术是很先进的。但我们也应看到,要做到真正自然的人机交互,还有很长的路要走。令人鼓舞的是,Gibson 概念模型使我们看到了希望。
4.1.3二维和三维交互概念
二维交互与三维交互是密切相关的,三维交互从二维交互发展而来,二维交互的概层次结构以及从二维交互技术的发展中得到的经验教训有助于开发三维交互技术。
1. 二维交互概念模型
80年代,在这些二维输入设备基础之上,建立了一个定义完整的交互概念层次结构,如图4.1所示。
(1)输入设备层:输入设备层在概念层次结构的最底层,键盘/鼠标极其他二维输入设备为系统或应用软件提供了基本输入事件,如按下按钮、二维移动或敲键等,这些基本的二维输入事件组成了事件层。
(2) 事件层:键盘按钮等输入,这是计算机的基本输入事件,它组成了事件层,事件层中的事件是低级的,往往与硬件设备密切相关。这些事件经系统封装后成为交互技术的基础。
(3)交互技术层:二维交互技术包括菜单/图标/按钮及拖动等等,这就是交互技术层。交互技术层已开始摆脱硬件设备的约束,成为一种面向各种输入设备的标准软件口。例如,用户既可用鼠标拖动,也可用键盘/操纵杆拖动二维物体。在交互技术层之上是交互任务层。
(4)交互任务层:交互任务层与交互技术相比,交互任务层是一种更抽象的交互概念,如拾取/选择/赋植等都是交互任务。交互任务的实现往往同时采用了多种交互技术。在不同的应用情况下,同一交互任务的实现可能很不一样。比如,同样是选择操作,可以有多种实现方法:既可以用菜单选择,也可以用数字选择。交互任务层之上是metaphor层。
(5)metaphor层:交互技术的metaphor(隐喻)概念是指打开窗口/关闭窗口及直接处理等比交互任务更抽象/更广泛的含义,介于用户界面(U I)工具库与交互任务之间,它有利于理解UI工具库的框架结构。metaphor中的标准概念成为UI工具库的基础。
(6)用户界面工具库:用户界面(UI)工具库在是metaphor层之上,如我们熟悉的Windows/OSF/Motif 等都是影响很大的窗口系统。利用UI工具库开发人员能够方便地构造/生成应用系统的界面。正如大家所知的许多应用系统的界面都是用Windows/Motif及OpenLOOK等窗口系统开发的。
2. 三维交互概念模型
三维交互技术的开发正像10年前的二维交互技术一样处于起步阶段,三维交互还没有形成一个完整的概念层次结构。前面谈到,二维交互的概念层次结构以及从二维交互技术的发展中得到的经验教训有助于开发三维交互技术。模仿二维交互,可得到一个三维交互概念层次结构,如图4.2所示。
从图4.2可以看出,虽然三维交互概念层次结构与二维交互相似,但各层次的内容却有了很大的变化。
(1)输入设备层:在输入设备层里不仅包括二维输入设备,还增加了三维输入设备,如三维鼠标/空间球/数据手套/六维跟踪器及眼部跟踪器等等,这些三维输入设备为虚拟环境中的高级交互提供了硬件基础。
(2)事件层:三维输入设备同时也丰富了事件的内容,新增加的事件有手势/六维移动/压力等。将来,随着三维输入设备种类的增加,基本事件的内容会更加丰富。
(3)交互技术层:在交互技术层,三维交互与二维交互有相当大的区别。主要是三维交互技术有三维菜单/虚拟球面(virtual sphere)/指向(pointing)/抓取/释放及手势语言等。例如,在三维空间中抓取物体及释放物体都属于三维交互技术。
(4)三维交互任务:与三维交互技术一样,三维交互任务也带有很强的三维特征,如识别/飞行/漫游/导航等都属于三维交互任务;同时,三维交互任务还扩展了交互任务的二维限制,如把二维旋转变成三维旋转。
(5)三维metaphor:三维metaphor是二维metaphor的扩展,如二维交互中的“打开窗口”扩展成三维交互的“打开房子”。也就是说,一个二维视区与二维的窗口相对应,一个三维视区则与三维空间(房子)相对应。
(6)三维用户界面工具库:三维UI工具库,目前还没有一个被广泛接受的工业品。但是,虚拟现实技术若想得到广泛应用,必须解决的主要技术问题之一就是成熟的UI工具库,内容丰富、全面的UI工具库将大大降低虚拟现实系统的开发费用。
三维交互概念层次结构中还有许多漏洞。正如当年完善二维交互概念层次结构结构中各层次的差距一样,现在也需要完善三维交互概念层次结构,使其整个框架结构统一起来。
4.2 手势识别
手部运动的自动数据采集和分析,已经引起了计算机仿真专家和虚拟现实研究人员的广泛关注。在手的仿真计算中,要有效地确定一个手势,需要处理好大约30个用于交互控制的参数。研究人员已经提出了几种从手的实际活动中获取这些参数的方法。虚拟现实研究人员的研究目标是消除人所处的环境和计算机系统之间的界限,也就是说计算机系统向人们提供了一个虚拟的空间,人则用各种感觉器官如眼睛、耳朵、皮肤、手势和语言等与之发生作用。显然,手在其中扮演了一个重要的角色
虽然数据手套能实时地捕捉手的运动,但是它们很昂贵,而且这些测量装置也限制了认的自由运动。更先进的办法是采用摄象机,这样就不会再需要机械的数据手套或运动受到限制的监控装置。虚拟现实和计算机之间的通讯,主要靠摄象机拍摄的手部运动图像来实现。研究人员已经成功地用轮廓提取的办法识别出手上的某一手指,并采用边界特震撼特征识别的方法区分出一个较小的集中的各种手势。但是,无论是轮廓提取还是边界特征识别,都不能从图象中抽取足够的信息,以便生成一个各个手指都能精确定位的三维手势模型。
4.2.1基于手势语言的手势识别
对于我们人类而言,用手操作现实生活中的物体是非常自然的,因此手势语言提供了一种与虚拟世界交互相对而言比较自然的方式。GIVEN工具库中定义了一个手势集合,不同的手势代表不同的操作含义。利用这些手势,参与者可以执行诸如导航、抓取物体、释放物体等操作。因此该集合就是一种手势语言。
图4﹒3所示是该手势语言的一些例子。在这个手势语言的帮助下,参与者可以方便地与虚拟世界交互。例如,用户可以用手势表示前进或后退,同时还可指定行走的方向,这样就能方便地在虚拟世界中漫游。同样,用户还可以用“抓取手势”抓取一个物体,然后用“释放手势”释放被抓取的物体。
对于导航、位置重置这些要求,手势语言也是很合适的,使用起来也非常方便。而且,手势语言还可适用于快速、不要求很精确的三维物体操作。这时,用户可以自使至终地采用同一种输入设备,通常是数据手套,而不必用诸如键盘、鼠标、等设备与虚拟世界进行交互。在这种情况下,用户的注意力主要集中于虚拟世界,而对输入设备并不太注意。然而,当用户想抓取一个茶壶时,在现实生活中总是抓住茶壶的壶柄,再把茶壶提起来;
可是,在虚拟世界中,参与者却是用一个“抓取手势”;这时,只要虚拟手与虚拟茶壶相碰即可,并不要求虚拟手真正“抓取”茶壶的壶柄,从而这样就显得不太自然。如果我们能让参与者像在真实世界里那样直接操作虚拟世界中的物体,而不是用不太自然的手势语言,那么我们就可以提高参与者在虚拟世界中的“真实”体验程度。
4.2.2基于手模型的手势识别
这里介绍的是Sintae Lee 和Tosiyasu L.Kunii研究的一个应用手的模型数据立体图像 来自动分析三维手势的方法,该方法不同于以往的各类方法。它能提取27个交互作用的手的参数,包括关节的弯曲角度,能够实现三维手势的重构。
这里介绍的是Sintae Lee 和Tosiyasu L.Kunii研究的一个应用手的模型数据立体图像来自动分析三维手势的方法,该方法不同于以往的各类方法。它能提取27个交互作用的手的参数,包括关节的弯曲角度,能够实现三维手势的重构。
1.手的模型
基于模型的图像分析方法在计算机视觉应用中比较常见。实际上,将内部模型与外部图像相比较是自然视觉识别的基础。但是,用计算机来分析从自然图像中获得的手势,则要遇到大量的复杂的问题,即使对常见的、简单的手势的识别也是如此。另外,在实际的计算机视觉应用中,还会遇到三个常见的问题:交错、噪声和伪数据。手势的分析和处理将因如下问题而使其更加复杂。
①人的手是一种由关节相连的结构,大约有30个自由度,随着关节的活动,手的形状在不断的变化。总之,由手指运动和手的运动形成一个统一的整体,它们共同决定了图像的变化。
②由于有4个手指彼此相连,手指间的交叠经常出现。在皮肤上的微小的皱纹也使之容入了多种含义,使图象边界的检测更加困难。因此,用边界抽取法对图象分解,再沿中心轴对手的每个组成部分按序跟踪的方法不再有效了。
③手拇指相对来说比较短,而且关节近的皮肤表面随着关节的运动变化很大,从而使得精确地估计图象中的关节的位置变得非常困难。
为了解决手的图象识别中所遇到的有关问题,Sintae Lee等人提出了一个根据手的自然运动而对其施加约束的手的模型。
(1)手的运动分析:人的手具有复杂结构,他由骨骼和连接骨骼的韧带、作为动力机构的肌肉和把肌肉与骨骼连在一起的肌腱以及手上的软组织和皮肤等组成。骨骼在关节处相接,其大小不变。肌肉产生力矩,通过肌腱控制关节和关节的运动,对于每一条肌肉都与一条或多条与其力矩相反的肌肉与相互作用。图4﹒4所示为从手掌方向观察的右手的示意图。
在手的模型中,其约束分析要遵循以下规则:
① 在手的仿真中,要避免出现不切实际的动作;
② 减少数据模型来分析受的图象的搜索空间。
尤其要注意的是,在模型中的自由度约束之间的有效的和它的推理性能,也就是说,约束不足会产生一个无效的模型,而太多的约束又需要复杂的处理过程和较大的计算开销。在本节讨论的手模型中,对上述问题作了均衡处理。
(2)关节运动分析:手上的某一部分的运动是由于它绕着其关节点的旋转运动产生的,因此,手的运动可用它绕关节点的旋转角度来描述。在分析中,对每一个关节都定义了一个局部坐标系(图4﹒5)用沿着这三个局部坐标的一系列的旋转来表示关节的旋转运动。关节绕它的局部坐标轴的旋转可以表示为 ,其中 表示旋转轴, 表示关节, 表示手指。
手的关节根据运动的类型和可能的旋转,可被分为以下几类:弯曲的、扭转的、有向的和全方位的。具有弯曲运动的关节只有一个自由度,如膝和肘;具有扭转的关节也只有一个自由度;有向运动的关节有两个自由度,它允许两个方向以上的弯曲运动;而全方位的运动,如肩关节,有三个自由度,并且允许同时进行有向和扭转运动。
图4.6所示为手的模型的关节表示,以及它们可能具有的运动的类型。每一个手指(II ~V )有4个自由度,其中,在手指的基部(MP)有两各自由度,在手指的中间关节(PIP)处和最末一个关节处(DIP)分别只有一个自由度。大拇指则有5个自由度。腕关节的扭转运动,作者也作了研究,因为手可以看作是从小臂上分离出来的。根据上面的关节运动分类,手的27个自由度便确定了,其中6个自由度为手的位置和方向自由度。
(3)关节运动的约束:正常情况下,手指关节的运动是受到约束的,主要是为了避免出现一些不切实际的动作。必须分析采用一些比较明确的约束,把它们加到模型中,根据运动类型和所用到的关节,对约束做了如下分类:①关节运动角度限制运动类型;②中间关节(PIP)的弯曲;③基部关节(MP)的弯曲;④基部关节(MP)的外展和内收。
①关于关节角度限制和运动类型的约束:在图4﹒6中,(II ~V )手指的MP关节,可能有的运动有弯曲、伸展或侧运动,而PIP和DIP关节只有在同一个方向上的弯曲/伸展运动,因此,P1、P2和P3指段在同一个平面内。因此而提出:
约束1,这4个手指除MP关节外的其他关节,都是可在平面内处理的。虽然关节活动的角度因人而异,但它们大体上都在一个通用的范围以内。须区分被动的和主动的两类运动,前一种运动是由外部受力引起的,后一种运动是由手上的肌腱驱动的。这里仅介绍主动的手的运动。
②PIP关节的弯曲约束:人得手指,若要活动DIP关节,则几乎都要用到与其相邻的PIP关节,除非是让这个手指以不太自然的方式活动。也就是说,主动运动包括DIP和PIP关节之间的相关性。解剖学的研究已经证明这一现象,而另一项试验研究则揭示了这两种关节之间存在着一种线性关系。因此提出:
约束2,关节DIP和PIP之间的相关性可以表示为
(4﹒1)
③MP关节的弯曲约束
MP关节有90度的弯曲范围,食指(II)的弯曲范围小一些,按III~V的顺序,关节的弯曲范围依次有少量的增加。
然而,虽然单个手指的弯曲受到与手掌相连的韧带的限制,但它在弯曲时则可能影响到相邻手指的弯曲。同样,手指在伸开的过程中也要影响到与其相邻的手指的弯曲的程度,通过对若干人的测量结果发现,手指的这种行为可以用不等式来表示。用静态的关节角度范围和动态的关节角度范围,来区分所有手势的关节活动角度范围和对摸、某一特定手势的关节活动角度范围。从而提出;
约束3,MP关节的活动角度范围与其相邻的关节的活动相关,并有下述的关系:
其中 , , ,和 是在约束5中定义的动态和静态的关节活动角度范围;max和min分别为求最大值和最小值得函数。
④MP关节的内收、外展约束:手指的内收和外展是以中指的M(III)指骨作为参考轴来进行的。在这种运动中,如果不对手指III施加特别的内部力量,则手指III一般不做运动。
约束4,手指III的MP关节只具有有限的内收和外展运动,在手指自然张开的情况下,它们能自由地作内收和外展运动,当手指收拢在一起握成拳头时(图4﹒7(a)),II~V 手指的P2、P3指段及大拇指的轴指向一点。这一变化过程,随着MP关节弯曲角度的增加,手指的外展和内收角度连续变化。这种行为好象能消除手指间的发生,但是,经过进步的观察发现还缺少约束,又因此提出:
约束5,定义: 关节的外展和内收角度;
关节的弯曲角度; :关节的静态的最大变换角度约束; :关节的动态的最大变化角度约束; :关节的静态的最小变换角度约束; :关节动态的最小变换角度约束;则有
其中
显然,在该模型中还存在着一些其它的约束没有考绿,因为其它的约束增加了模型的复杂性,而没有增加多少有建设性的含义。
⑤手的树模型:为了表示手的解剖学上的数据结构,可以把手的模型看成是一种分级的树状性结构,树中的每一个节点代表一个指段4﹒7(b),其中的一些指段具有相关联的运动特性。
2. 手模型的动力机制
上述模型中,有两种类型的力驱动机制:一种是由模型内部的约束驱动;另一种是来自模型外部的受力。这就意味着来自模型外部的受力以及运动等不能破坏模型的内在约束。下面就详细地介绍这些力的作用如何同步地结合在一模型中,并最终决定手的最后形状。
(1)内部约束:为了能将手定位到预定的位置,就必须计算手的模型中各处关节的矢量——这是反向运动学的问题。用根据模型内部约束来生成相应的合理的手势的方法,简化了这一问题。也就是说用前面介绍过的手的模型的内部约束,以减少手的模型的自由度的方法,既约束1,2,4或是消除不可能的反向运动现象(约束3)的方法来生成一个手势。
在这两种类型的约束下,约束1,2,4对系统的成功与否至关重要,因为去掉它们当中的任意一个,都会显著地增加分析的复杂性。
因为PIP和DIP关节间的相关性,关节角度 能够根据 用约束2中的方程得到,反过来也是如此。
原理1:对每一个手指都存在着 和 间的相关性,由约束2中的方程表示。基于反向运动学方法的原理,手指关节的矢量可以记为如下形式:
(4﹒11)
其中f=II,III,IV,V。
另一个简化问题的方法是由于手指III没有多大的内收和外展运动。由于其它的手指除了MP关节以外,都属于一个平面内的线性关系,因此 可以通过对手指在目标坐标系中的偏移量计算得到图4﹒8
原理2:手指III不作侧向运动(约束4), 。这样手指III的关节矢量表示为
(4﹒12)
这时对手指III的操作就可以确定下来,因为手指关节的自由度DOF(2)与要执行的任务所具有的自由度相等。对于指间定位于任意一点的情况,则一定存在一个唯一的解。
但是,如果要把手掌也考虑在手指的运动链中,整个手的关节矢量可表示为:
(4﹒13)
其中 是手掌关节的矢量,为了进一步检查问题,假定掌骨被牢固地接于手掌内,这样使手掌的“中空”程度极小变化。实际上,解剖学上的研究表明,当手不抓取物体时,手掌接近于一个平板形状。
原理3:手掌在处于抓取状态,手掌为一平面。一般来说,不在一条直线上的三点决定一平面。但是,如果手掌为一平面,手指III的指尖固定,那么,腕关节以及其他的MP关节决定了手掌得手势。图4﹒9解释了这一问题,如果手指III作为一个平面控制器,手掌绕通过 WW点和X点的轴旋转要满足手指III的平面性质。当手指的位置根据各个手指间的位置确定以后,那么手指III以外的其他各个手指的位置参数,都可以根据手指III的位置数据计算出来。因为它门的 值可以由手指III的 推算得到。
大拇指I是一个更复杂的操纵器,因为它有很大的一部分在手掌内,而且它的关节沿着不固定的轴转动。但是,根据实际观察的经验,它的反响运动学参数几乎可以唯一地计算出来。也就是:
(4﹒14)
(4﹒15)
总之:可以根据原理1-3大体上地决定人的手势了。
原理4:在原理1至3内,手指可以由5个手指间的位置及腕和手掌上的一特定点的位置确定下来。
由于小指(V)MP关节无论从前面看还是从后面看,都能比较容易地看到,所以选取小指(V)上的MP关节作为手掌上的特定点。
(2)来自外部的图象手力:施加在手的模型上的其他一些受力是跟据图象的内容抽取出来的。这种类型的受力能使我们把手的模型变换成其他实际形状。用手上的7个点的位置数据(原理4)来决定手势的形状,这个选取点称为“特征点”在图象分析中,用这些特征点来分析,用指尖位置作特征点要比关节点或者手的边缘作特征点优越的多,其原因是指尖更容易被看见,而且不会随着手上皮肤的滑动改变形状;更重要得是这些特征点保留了各种视点所需要的信息。
彩色编码手套为确定这7个特种点提供了手段,选择红、绿、蓝、橙、灰和黄共6种颜色,把它们涂在白色手套上的手指尖处及小指(V)的(MP)关节处,第III指的指尖与腕关节都涂成绿色,因为这两个点间存在一定的距离。图象的RGB颜色坐标值将跟据其亮度值被转换成HSV矢量(HSV即色度、饱和度、亮度的缩写,Hue-Saturation-Value)。
判别是根据颜色和亮度值在亮度区域[0,360]中的分布情况来决定的。由放置在不同视点的两架摄象机来获得手上特征点的图象数据。
假定手上的每一个特征点都有一个“虚拟的弹簧”,并将其特征与手的模型相连接,每一个“弹簧”都有一个不同的弹性值,可以把他们看做权值。因为连接关系和约束条件必须考虑,所以由这些弹簧引入的力要在模型的平移、旋转和扭转变换中反映出来,如果把这些弹性施加到手的模型上,改变手势使手的特征点与从图象上计算获得的特征点一致,那么就解决了模型与图象的一致性的问题。实际的手上的特征点只是一种“目标位置”。
3. 模型的一致性
所谓模型的一致性是指自动计算手的模型的参数,使之与从图象上获得的真实手的手势位置相符合。根据实验的结论,整个手的手势将由手上的7个特征点的位置决定。模型的一致性问题就简化为手的模型的特征点数据与给定的手的目标位置的特征点数据相一致。
在生成手的模型的算法中,采用了内部约束。模型的一致性处理过程分成两个阶段:腕关节处理、手掌和手指定位处理。
(1)模型一致性处理的原则:模型一致性处理过程中必须重点强调以下几个问题:
①从手的图象上获得的7个特征点的数据,有可能存在错误,一个小的偏差可能引起模型与实际目标之间的尺寸的不一致。用模拟极算,一段一段地定位手上的各组成部分的位置,所得到的也不是一个优化的位置。
②最好的办法是同时满足多个目标的定位。当不能实现手的模型上的两个以上目标同时定位时,可有选择地先定位权重大的目标位置。
③手掌(手结构树的父节点)的定位应根据各手指(手结构树的子节点)的偏移量来决定。同样,手指应该 与手掌同步移动。因此,算法必须具有从顶到底和从底到顶遍历手模型树的能力。基于上面的考虑,开发了一个用于手模性一致性的处理的叠代算法,赋予腕关节较高的权重10,手指III的指尖权重为3,因为它们的位置和方向对整个模型的位置有重大的影响。
(2)手树结构中的节点:手树结构中的每一个节点都提供了手模型中与其相关的指段的信息。他们包含了用于进行模型一致性处理的各种变量值,“触摸点”代表了在整个世界坐标系统中指段的当前位置。与每一个节点相连系的目标有两个域:定位点和权重。定位点表示与“触摸点”相对应的指段的位置,而权重则表示了指段对其他指段定位的重要程度。
具有零权重的目标位置被认为是非活动的,也就是对应的指段没有特征点。当手树模型中关节的弯曲角度在一定范围内受到来自目标位置的虚拟弹簧作用时,腕关节的位置保持不变,自然的运动是绕通过腕关节的轴的旋转运动。当通过计算手模型中力矩的方向和大小,找到一个方位使模型平衡时,虚拟弹簧产生的力矩最小。例如,如果手的模型绕通过腕关节的x轴的旋转,在旋转轴TX方向的综合力矩矢量的变化近似于正弦函数(图4﹒10)。因此当TX的符号为负时,把平衡点左移;在TX符号为正时,把平衡点右移(图4﹒10中的箭头所示)。
为了计算力矩,把力矩定义为:
(4﹒14)
其中f为受力;d为力与给定轴之间的距离矢量。
注意到τ并不与力和轴之间的距离成比例,这是由于在进行模型的特征点匹配时,离手腕较远的点没有离手腕近的点重要。
(3)模型一致性算法:模型一致性处理算法是基于下面的优化循环算法,它是一个以手模型与其目标位置的偏移量最小为优化目标的算法。为了减少复杂性,该算法没有考虑约束的冲突。
①模型的一致处理算法:
(a)确定子树权重力矩Stwt,用于决定手树根的力矩;
(b)选择通过腕部的旋转轴,因为该轴具有最大得力矩;
(c)绕选定的旋转轴,以渐次增大旋转角度的方式旋转手的模型,直到手的模型相对于旋转轴的力矩为零时为止。对于每个旋转角度,重新定位所有手指,使其达到优化位置;
(d)如果整个手的力矩的值小于要求的域值,则处理结束,否则重新计算。
②手指模型一致处理算法
(a)调用反向运动处理过程来计算每一个手指关节的弯曲角度。这些角度值必须处于关节的弯曲角度之内,使得每一个手指的特征点与它的目标位置尽可能地靠近;
(b)在整个手的位置及方向保持不变时,手指的弯曲情况通过计算手指关节的角度值确定;
(c)返回。
上述理论和算法通过一台Iris TOGT/40系统来自动地输入和分析手势(美国手势与字符ASLL)。通过精确地测量摸某一特定人的手的解剖学参数,来构造手的主要形状。可使用以下手的解剖学参数:指段的大小(M、P1、P2、P3),每一个关节的弯曲角度限制,MP关节相互关联性(约束3)。
然后,把手的模型与手的立体图像进行比较,以进行一致性处理,从模型中提取必要的数据,然后依次地分析这些数据。
4.3 碰撞检测
虚拟现实技术的主要目标之一是允许用户以尽可能自然的方式与世界物体直接交互。因此,虚拟现实系统的用户希望虚拟物体给人的感觉是“物理存在”的,对于像石头这样的固体类物体,当参与者用虚拟手敲打石头时,虚拟手不应穿头石头。又比如,当参与者在虚拟世界中漫游时,不应该穿透墙。
要做到这一点,虚拟现实系统必须能够实时、精确地判断虚拟物体之间是否发生碰撞。
因此,虚拟现实中动态物体与静态物体之间或动态物体动态物体之间的交互基础是碰撞检测。若要想实现自然、精确的人机交互,就必须解决碰撞等问题。碰撞检测不仅用于虚拟现实,而且在计算机动画(Computer animation)及机器人控制中也有极高的价值。
1. 碰撞检测
虚拟现实中进行碰撞检测的一个常用方法是采用包裹着虚拟物体的包围盒(bounding boxes)。包围盒的各线段与坐标轴平行,包围盒即包围虚拟物体的最小长方体。在GIVEN系统的第一个版本中,碰撞检测摸块(CDBV)就是建立在包围盒的基础之上的。该模块分成两个子模块:最坏情况检测及特殊情况检测。
最坏情况检测子模块用于判断两个虚拟物体的包围盒是否相交;特殊情况检测子模块用于当两个虚拟物体的包围盒相交时,针对特殊情况判断两个物体否相交。特殊情况检测只适用于某些特殊的虚拟物体,如虚拟手。采用包围盒进行。
碰撞检测的最大的好处是可以实现快速。碰撞检测,单在很多虚拟现实应用系统中要想做到自然交互光靠包围盒进行碰撞检测是不够的。当要证明两个物体并不相交时,利用包围盒是非常有效的;但当两个物体的包围盒相交时,并不能保证这两个物体一定相交,因为包围盒仅仅是物体边界的一个简单粗略的表示。因此,基于包围盒的三维交互既不自然也不精确。
例如,与“虚拟厨房漫游”这类虚拟现实应用相比,分子建模或实体造型应用对交互技术的精确性有非常高的要求。当打开壁橱时,并不要求碰撞检测达到100%精度;但当控制一个正在修理危险设备的机器人时,精确性是其交互操作的最起码的要求。
碰撞检测的实施性与精确性往往是相互矛盾的。这里介绍GIVEN系统的一个解决方案。为了实现精确碰撞检测,GIVEN对最初的碰撞检测模块进行了扩展。扩展后的精确碰撞检测管理器(PCDM)如图4.11所示。
PCDM在检测算法中采用了体系造型的边界表示方法,既不仅采用包围盒表示虚拟物体的边界,而且还用多个多边形来表示包围盒,这些多边形把虚拟物体包裹起来
显然,多边形划分得越细,其边界表示越精确。这样,一个三维物体的边界就由一组多边形来表示。当判断两个物体是否相交时,只要判断两个多边形集合是否相交即可。只有确认两个物体相交之后,才有必要判断相应的两个多边形集合是否相交。
下面介绍两个碰撞检测实例。图4.12中的两个虚拟物体的坐标系分别为(i1/j1/k1)和(i2/j2/k2)。在此例中,坐标系统的原点位于物体重心处,至于其他相关定位可以选择确定。
物体的绝对位置是依照世界坐标系(iW,jW,kW)而确定的,该世界坐标系(又称用户坐标系)是一个固定坐标。在对象坐标与世界坐标系之间的转换可由等式(4.17)给出。当对象转换到世界坐标系时:
(4.17)
其中 是表示(i1,j1,k1)各组成元素在世界坐标系统中的3x1矢量。P1是从世界坐标原点O到对象坐标原点OW的位置矢量。
如果物体1移动,那么变换就成为 的时间函数。在系统(i1,j1,k1)中点V1的位置P1可从物体1的三维模型文件中得知,那么在世界坐标(iW,jW,kW)中P1(t)的坐标PW(t)可以用下式求得:
(4.18)
类似地,世界坐标系统物体2的坐标系变换可由转换 表示,在此不再叙述。例如在虚拟现实系统中,由于系统对象的运动(平移等)或因某种行为动作发生时,有可能发生物体之间的碰撞。即需要检查物体1是否与物体2发生碰撞,用户的虚拟手是否碰到了杯子是否拿者杯子。从而碰撞计算给计算机增加了很大的开销。要计算碰撞就要计算出两个物体的相关的位置。点V1相对于对象2的位置由转换等式中求得:
(4.19)
(4.20)
其中PW是P1(t)在世界坐标系中的坐标;是物体对象 转换到界坐标系中的转换矩阵; 是世界坐标系的物体对象的坐标系变换矩阵;PW是世界坐标系中物体对象的位置。
如果落在这个物体2圆柱体内就会发生碰撞。对物体1和物体2的每一点都进行这些计算的话,很耗费时间。简化计算是通常使用一矩形“边界盒”。这样碰撞检测就在物体1和物体2的边界盒中进行。显然,它将要影响位置的精确度。
如果 落在这个物体2圆柱体内就会发生碰撞。对物体1和物体2的每一点都进行这些计算的话,很耗费时间。简化计算是通常使用一矩形“边界盒”。这样碰撞检测就在物体1和物体2的边界盒中进行。显然,它将要影响位置的精确度。
另一个碰撞检测实例是一只虚拟手“拍打”一个虚拟球。这种情况下,我们要计算出球相对与手掌的位置 。其中,手掌变换矩阵 可以从用户数据手套或知。因此,可用下式检测球与虚拟手的碰撞:
(4.21)
(4.22)
其中 是球到手掌的坐标变换矩阵; 是世界坐标系变换到手掌的坐标变换矩阵; 是手掌变换到世界坐标系的变换矩阵; 是球变换到世界坐标系的变换矩阵。
2.环绕技术
当虚拟现实系统生成一个逼真的、能够交互的虚拟世界之后,如何确定虚拟现实三维交互的定义和特征是非常有趣的事情。如果允许用户“感觉”并“触摸”到物体的话,参与者就能用虚拟手环绕或“走过”三维物体的表面并“感受”到物体表面不同材料的特征。
虚拟现实技术的目标之一是用户应当象现实生活中那样与虚拟世界的物体进行交互操作。例如参与者能用手指“触摸”到虚拟物体并能把物体“抓起来”,这显然要比手势语言自然的多。但是,用户必须知道什么时候碰到了虚拟物体,这只有具备压力反馈的输入设备才能很好的解决这个问题。目前,市场上还找不到具有压力反馈的数据手套。因此,GIVEN系统开发了一种不需要压力反馈的新技术---surrounding技术,也就是环绕技术。这种技术是建立在精确碰撞推测基础之上的。
精确碰撞检测保证了参与者可与用虚拟手“触摸”虚拟世界中的三维物体。然而,参与者如何知道是否“触摸”到虚拟物体呢?由于碰撞检测的时间延迟,当参与者以为仍在靠近一个物体表面时,他可能已经在该物体里面了。为了让参与者感觉“碰到”了一个三维物体,虚拟手应后退并回到物体表面。这一要求可以用以下两种方法实现:虚拟手可以沿前进的反方向退回或利用物体表面得法矢量,沿法矢量退回。GIVEN中所采用的是第二种方法。这就是surrounding技术。
采用surrounding技术,当用户“碰到”一个物体表面时,虽然没有压力反馈,却能感觉到“碰”到了一个三维物体的表面,这在自然交互时是非常重要的。还以茶壶为例,有了精确碰撞检测技术和surrounding技术,参与者就能自然地抓住壶柄并把壶柄提起来。
4.4 自动抓取
在虚拟世界里“抓取”是交互技术中的重要组成部分。本节介绍的 自动抓取是基于虚拟动作抓取物体的行为表现。在计算机模拟领域,随着虚拟动作的发展,人们对抓取问题的研究兴趣与日俱增。
4.4.1手的抓取分类
研究人的抓取动作,通常有两种方法:一种是以经验为基础的方法,通过观察人类抓取物体的动作获得知识;另一种是分析方法,它用物理约束规则去构造抓取过程。前一种方法,要通过人类行为的观察,获得人们对大量的模型进行操作的规律、规则,这是难以实现的。经常把模型简化为一点,这种方法仅对很有限的经验集合有效。系统设计的目标是获得“看起来象是真的”图象,而不是精确地对真实世界建模。
系统设计的目标是生成一个系统,其中一个虚拟的动作能够去抓取周围环境中的物体。定义的一组体素用于表示物体被抓取时,可被接触的不同部分。
历来的研究者进行了抓取研究的尝试,包括从生物角度上看的人类的抓取动作以及从机器人角度上看抓取动作。抓取动作可分为:筒状握、指尖握、钩、掌握、球状握、松握。McBrsole 提出了基于手参与抓取动作的部位的分类(整个手、拇指、掌-指);
广泛使用的一种方法是Napser提出的,他注意到抓取动作与需完成的任务要求相关,因此结合所需完成的任务可分为下面几类:用力握,再抓取动作要用力时使用;精确握,再需要精确抓取时使用。而Arbib引入了“虚拟手指”的概念。一个虚拟手指是指在一项任务中一起工作的一个或多个手指。Lyons根据与目标的交互程度提出了三种抓取动作:紧握,物体被牢牢地抓住;松握,允许物体有旋转动作;精确握,允许物体有任意微小的运动。
Lberal使用在施加在虚拟手指上的反作用力来对人的抓取动作分类,他定义了三种“反作用”:基部反作用,拇指基部与其他手指基部之间的反作用,并包含了二者之间的柔性作用;手掌反作用,是手掌与手指之间的反作用,它侧重于稳定和固定性,而限制柔性作用;侧反作用,是拇指基部与食指侧部之间的反作用,它是一种介于柔性与固定稳定性之间的反作用。
Cutsocky根据观察机械制造技术工人的操作而得到的经验,提出了一种完整的人类抓取动作的分类,他在分类中考虑了物体的尺寸、形状以及任务要求的精确度等特性。
在计算机模拟领域,随着虚拟动作的引入,人类抓取行为的研究已经开始出现。Rijjpkma 作了一种能以自动化和模拟器两种方式选择抓取的抓取系统。其主要思想是用简单的体素近似表示目标物体。
抓取体素的机制是预先可知的,他从一个称为知识库的库中得到。抓取过程被划分为三个阶段:第一个阶段是任务初始化阶段,它把目标分类,变成单个体素,然后再决定抓取策略;第二阶段是目标处理,以决定抓取动作;第三阶段是执行抓取动作,把物体抓在手中。Rijpkema的抓取模型(掌心握或松握)有模拟器决定。
Ramon Mas Sanso 和 Daniel Thalmann建立了一个手模型,并用C语言在SGIRIS INDSGR-2工作站上,实现了下面将要介绍的抓取系统。
4.4.2自动抓取系统
1.手的控制
手模型 人类的手由21块骨骼组成,它们被分成三类:腕骨、掌骨、指骨。在系统的模型中,定义所有手指的中间两个关节分别只有一个自由度(弯曲)。把拇指与其他手指分开来考虑。赋予前者很高的活动功能。拇指允许有绕手指为轴的旋转运动、弯曲运动和外展运动。其他手指的基部关节则只有两个自由度:弯曲和旋转。关节的活动范围按表4.2中的数值受到限制。
表4.2 手指关节值
(2)手的控制子系统:系统允许用户定义新的手的抓起姿势,要完成一个手的抓取姿势,要生成一个手的抓取姿势,需要运用正向和反向学方法去控制手的所有的关节的运动。
①正向运动学方法:在正向运动学方法中,有关各个关节的数值是已知的,所要解决的问题是定位关节链的末端在笛卡尔坐标系中的位置。
采用正向运动学方法,用户可以把感兴趣的关节弯曲一定的角度,弯曲的结果被自动传递到关节链中该关节下面的各个关节,这样就更新了手的姿势。要选择受到作用的关节可以用两种方法来得到:一种是通过姿势数据结构的二维表示获得;另一种是通过直接选取图形窗口中的关节来获得。
如果用户不熟悉数据结构表示,不能把二维节点与关节对应起来,那么第一种方法是另人生厌的,其缺点是每一个关节都能达到三个弯曲自由度,所有的关节表示都被放置在一起,并且都有同一个图形来表示。最有效的方法是在图形窗口中选择关节,可以通过上、下链光标在二维中的移动来拾取要处理的关节。为了优化选择机制,图形实体与要经常进行的弯曲自由度处理相关。
一旦选取了某一关节,关节弯曲角度的数据修改,可以通过控制板上一个滑动滑块的位置调整来实现,用户可以时实地看到关节名字和当前数据。另一种方法是用光标在图形窗口中定义一个偏移量来实现。
②反向运动学方法:反向运动学方法要做的工作是确定能决定终端效应器数据(指尖)的关节链中的那些关节的数据(主要任务)。当指尖在预想的位置和角度时,需要确定相关关节的数据,这一问题通过解放程求得:
X=F(Y) (4﹒23)
其中:
X是在某一时刻末端效应器所在位置(N 维);
Y 是描述关节当前角度设置的矢量(M 维)。
上述方程的通解如下:
(4﹒24)
其中 是N 维关节空间中的解; 是在M维笛卡尔系空间中要修改的终端效应器的位置和方向描述;J 是用于描述这一问题的线性雅可比矩阵,它描述了笛卡尔坐标系中的关节链的变动关系; 是J的逆矩阵。
要修改的关节数据的维数M要小于或等于关节的维数N,以确保方程有解。采用反向运动学的方法,能交互地选取任意一个手指或几个手指,把他们定位在预想的位置。这一特性对于将几个手指夹接触在一起的这类手势很有效。对于将手指(小拇指,无名指,中指和食指)作为效应器的情形,对一些关节的自由度作了限制。在手指段间存在着接近线性的关系。另一约束是对于手指基部关节的弯曲做了限制,是得多个手指在弯曲时能够避免相互之间的叠加。
正向运动学方法中,约束是在修改关节数值时进行的。对于反向运动学方法,关节问题相互影响的约束是通过雅可比矩阵中的元素引入的。
2.抓取子系统
该自动抓取子系统采用基本体素法,应为他最适用于抓取方式的选择。要选择的基本体素有柱体、球体和方盒体。用这些体素作为特征来描述被抓取物体。这些体素与目标物体的几何结构之间没有直接的对应关系,但是体素与目标物某一局部的关系对确定抓取动作至关重要。目标物体与和目标物体抓取部位相关的体素一起存储。抓取动作的分类基于抓取任务的精度要求和被抓取物体的几何特性。
当抓取任务的精度要求与体素的几何特点以及它的重量综合起来考虑时,其抓取过程分为以下几步:
①用户定义;
②抓取方式选择;
③手的位置的几何计算;
④执行抓取过程。
(1)用户任务定义:首先,要确定先去抓那一个物体。用户可以在图形窗口中抓取部分相关的体素。第二步,用户选择哪一只手(如果经计算一只手可以抓住物体,否则的话要用两只手抓取物体)。
(2)自动抓取方式选择:自动抓取方式选择可归纳为表4﹒3,在所有情况下,如果体素小到无法用两个以上的手指去抓它时,则选择捏的动作。同样,如果物体太大,一只手无法抓住它时,用两只手去抓他,把两只手分别放置在物体相对的两侧去抓住住物体。
通过手的尺寸的比较来决定一个参数是大还是小。如果一个球体的直径大于一只手的宽度值,则认为该球体为大直径,物体的重和轻是与用户预先定义的参考值相比教来得到的。
表4﹒3 自动抓取方式选择
(3)手部位置的几何计算:再这一系统中,作者定义了两个局部坐标系来分别作为手和体素的参考坐标系,体素坐标系的位置和方向决定怎样抓取这一物体,它将作为要实现的目标,用反向运动学的方法定位手的参考坐标系的位置。体素坐标轴的方向定义如下:
Y 轴向上,
Z轴指向手掌掌心,
X轴为Y 轴和 Z轴的矢量积。
①长(或正)方体的参考点:长(或正)方体的参考点与Z轴相交的面为定位面,手指接触的面为接触面。一个长(或正)方体作为要抓取的物体上的一部分,可用相对面来描述。要决定抓取位置,只须选择长(或正)方体中的相对面,为了减小可能的定位面的数目,采用了下述的方法:
方法1:从对人的观察中发现,人们在抓取物体时,通常把拇指放在物体的可见面上。这样可以把可抓取方法从24种减小到12种。
方法2再抓取物体时,把掌心的方向朝向离开身体的方向,这种抓取动作很不自然这样就能从剩余的可选取方法中再忽略掉一些方法。
采用方法1使得相对面的可选择范围减小到三对,每一对相对有4中定位面可选。这样就有12种可抓取方法选取。在采用方法2和忽略其他一些手姿势后,从剩余的可选取方法集合中,选出由手的初始位置到新位置所需平移与旋转变换代价和为最小的抓取方案。
这时以得到了相对面,从而可以确定参考坐标轴的方向,长(或正)方体的坐标参考点为该体素的重心。所以抓住长(或正)方体的第一种尝试是把相应的手指围住盒体重心,并合拢手指来抓住盒体,但在某些情况下是不可能的,为了正确地找到参考点可作如下处理:
(a)把盒体的重心定位于参考坐标系的原点;
(b)把盒体坐标变换到手的参考坐标系,以查看是否与初始手势相交叉;
(c)如果没有交叉,则位置有效,
(d)如果有效,那么体素的位置需要接近于交界位置,用二分搜索法找到物体与手不相交的最近得体素中心,这样参考坐标系原点就尽可能地靠近了盒体重心。
②球体和圆柱体的参考点:圆柱体参考坐标系的方向由其轴线的方向确定,坐标原点为轴线的中心点。对于球体来讲就有更大的方向空间。可通过球体素定义一个轴来解决这一问题。这种情况下,用一圆柱体的方法也同样适用于球体参考点的定义。可采用包含于体素中的参考点、方向等,就能较好地实现对目标物体被抓取部分的描述。
③手的参考点:手的坐标系与抓取方式有关,所以不同的抓取方式要要初始化不同的参考坐标系,对于“捏”这样一个抓取动作,拇指和食指被认为是抓取时要用的手指,手的参考点则设为拇指尖与食指尖连线的中点,指尖间的距离与定位面的宽度有关,这一点可通过简单的插值运算获得。
X轴指向掌心,X轴的方向垂直于手指的方向,Y 轴方向为前两者的矢量积。对于球状握和抓握,参考点的位置选在张开手掌的中心;对于筒状握,参考点的位置选在食指基部关节点;对于掌心握,参考点选在拇指、食指和中指中相会点。
④抓取动作的执行:经过上述的讨论已经满足了执行抓取动作所需的全部要求,这里采用反向运动学方法。根据体素参考坐标系的位置和方向,生成一个与其匹配的手的参考坐标系的位置和方向。这一步完成以后,在手的初始位置以及与抓取相关的其它位置之间进行插值处理。手与被抓物体相矛盾的方面被计算出来,以决定手掌及一个手指精确的最终位置。手的最终的位置与手臂的最终位置信息被一起存储起来,接着通过手臂和手的最终位置之间的插值处理,就能实现一个可视化的抓取过程。
4.5 多通道用户界面模型
现有的基于命令行与窗口技术的单通道用户界面的模型,对在虚拟现实、科学计算可视化以及多媒体技术应用中还存在许多缺陷,因而必须提出基于自然交互方式的多通道用户界面(Multimodal Use Interfase)结构模型及其交互机制。
人们已经认识到如果没有一个与用户能力和特点相适应,并能与计算机进行快速有效通信的人机界面,那么软、硬件发展所带来的计算机处理速度和性能提高,并不能变成用户的效率。一个先进的计算计系统必须有一个与之相适应的高效人机界面,因而人机通信和交互技术的技术质量在整个计算机系统中变得越来越重要,寻找一种人与计算机通信的最佳方式是虚拟现实、科学计算可视化(Visualzation in Scientific Ccomputing)和多媒体(Multimedia)等技术所追求的主要目标。
近年来,计算机输出/计算机输入装置在数量上和能力上迅速增加,但计算机加工和呈现视觉与听觉信息的能力以及人机交互的能力是不相称的。这种不相称来自于硬件的限制和人的交互通道与 对象操作间的不匹配。在虚拟现实中人与计算机系统的相互作用包括了对三维对象的不精确操作,而现有的交互方式只能胜任二维操作,缺乏在三维空间中进行非精确地和直接地操作对象的能力。
多通道用户界面(Multimodal User Interface)的发展,就是要解决虚拟现实、科学计算可视化和多媒体技术对计算机系统提出的高效、三维和精确的人机交互要求。欧洲和美国采用不同的技术途径发展了不同的多通道用户界面模型,美国的研究集中在交互手段及其整和上,而欧洲的两个主要项目(MIAMI和Amodeus-2)中的多通道研究则非常重视寻求多个通道间信息的共同表示。
4.5.1多通道用户界面的概念模型
命令行用户界面(command-Line user interfase)和采用W/MP技术的图形用户界面(graphic user interface)是两种典型的单通道用户界面。在单通道用户界面中,用户使用单一交互通道(interactive modality)显式地用准确的信息在一维(命令行用户界面)或二维(图形界面)空间中完成人机通讯,是一种静态的用户界面。这种界面不具有进行自然三维直接操作(3D direct manipulation)的交互能力。
为适应目前和未来的计算机系统要求,用户界面应能支持时变媒体(time-varying media)实现三维、非精确及隐含的人机交互,发展多通道用户界面是达到这一目地的重要方法。多通道人机交互有几个主要特点:
(1)多个交互通道:一个通道虽然不能完全,却能恰当地表达部分的交互目的。在多通道交互中,必须使用一个以上的感觉通道(sense modality),多通道的意义在于多个不充分的交互通道结合后,能自然地完成单个通道不能完成的交互动作。
(2)交互双向性:多通道人机交互要求每个通道的交互具有双向性,即每个通道必需兼有输入和输出功能。语音成为计算机媒体的热点正式因为其双向性;视觉也具有交互双向性的特点,例如,视觉通道可以用CRT显示器和视觉跟踪(eye-tracking)系统实现双向交互,此时眼睛即作为一种信息输入装置,也作为一种输出装置。
(3)交互隐含性:多通道人机交互采用自然的人机交互方式,因而某些交互成分并不需要用户显示地说明,而是在自然交互中隐含地说明。例如,用户的视线自然地会落在被操作的界面对象上。
4.5.2自然交互方式的多通道用户界面模型
二维和三维的对象操作,如选择、拖和拉是二维图形用户界面和VR界面的基础。多通道用户界面可以在二维或三维交互作用的不同水平上加以说明,可保持与WIMP界面的兼容。多通道用户界面是一个基于自然交互方式的多通道用户界面,它通过整合来自不同通道的自然方式输入,来完成界面的操作。
多通道用户界面模型是一个与单通道用户界面兼容的多通道用户界面多通道用户界面模型,该模型具有以下几个主要特点:通道整合与交互设备无关;交互任务的完成独立于交互通道,而应用任务约束了多通道交互的整合。图4﹒13给出了多通道用户界面层次模型。在构建一个多通道界面的结构模型时,以下内容是问题的关键:
(1)不应该在应用程序中进行多通道整合。
(2)允许用户完成不同通道与不同功能之间的映射。
(3)多通道相互作用能在不中断相互作用过程的条件下随时相互启动和终止。
在多通道用户界面中使用操作维度(operation dimensions)为给定的相互作用任务指定交互的属性,而用元语(primitives)表示来自不同通道的最小独立操作。一系列的元语经过多通道界面的整合形成所有的约束操作维度,使应用程序完成相关任务的交互作用。
交互设备(interactive device)是处理直接来自不同通道的输入,主要的交互通道包括语音、手合身体的运动以及视觉跟踪等,系统对每一时刻的全部输入进行加工。
交互分析(interactive analysis)主要是根据各通道的特性,分析来自不同通道的输入,形成交互的元语,如完成定位,说明属性和操作。从而交互分析使元语的说明变得与设备无关。
通道整合(modality integration)是将相同操作维度的元语输入,通过整合来完成某项任务,形成与装置独立的多通道界面。
在这个多通道用户界面模型中,有个重要的特征值得注意:用户对一个特定的操作没有固定的输入顺序;各输入的时相(timing)对说明操作维度非常重要。
4.5.3多通道整合软件结构
由于多通道界面的用户可以以一种多通道协作的方式来完成一个交互任务,所以需要一种机制将并行的、非精确的多通道输入进行整合以获得用户所要实现目标的足够信息,这就是多通道整合的目标。根据多通道界面的输入特点,为了正确地达到整合,有三类信息是十分有用的,即时间关系、语法和语义约束。
仅仅基于时间关系的整合可以基本上作到与应用无关,因为相关的多通道事件之间在时间的并行性和接近性上存在着必然的联系,这是与特定应用无关的。但理想的多通道整合需要解决两个突出问题:参数对象的确定和任务结构的形成。显然,这都是与特定应用紧密相连的。基于这种考虑,应力求采用一种合适的语法和语义信息表示方式未完成任务的整合。
为了与整和机制相适应,可采用一种基于智能体的多通道整合软件结构。在这种结构中,几种类型的智能体(agents)组成一种层次结构,它们之间通过消息进行通信,通过定义一种统一的消息协议,各智能体可以相互传递并解释信息。由于通信是各智能体之间的唯一桥梁,只要新加入的智能体遵循公共的通信协议,这种结构极容易扩充。
下面以一个例子具体地说明整合过程的实现。当前场景是一个“积木世界”,内含多个规则形体(具有颜色、大小、位置和形状属性)。为了将一个红的圆柱体放到一个蓝色的立方体上,用户在说“put the red cylinder on this ”的同时,在一个三棱锥和蓝色立方体附近用鼠标点一下。针对这个具体的应用,系统结构由5个智能体构成:语音分析器、跟踪分析器、对象引用、空间约束和对象移动任务,如图4﹒14所示。
语音分析器从用户语音输入中提取出“put_on ”命令,并向对象移动任务发命令类型消息(Label 1);接到这个消息,对象移动任务生成任务框架 put_on(obj1,obj2),并向对象引用发送要求这两个对象的ID号(Label 2 );对象1的ID号只要通过查询“积木世界”数据库就可唯一确定,对象2的确定则需要综合利用语音分析器和跟踪分析器传来的信息,看到指示代词“this”(Label 3),对象引用就根据从跟踪分析器来的位置信息(Label 4 )得到两个侯选对象(一个蓝色立方体和三棱锥)。
然后它向空间约束(维持系统所支持的任务的空间约束规则)发出询问(Label 5 ),接到查询结果(Label 6 ),对象引用就可确定出“this ”是指蓝色立方体,而不是三棱锥(Label 7 )。既然所有的参数解决了,一个确定的任务put_on(objID1,objID2) 就可提交应用领域完成了(Label 8 )。
作为一个基于自然交互的多通道用户界面模型,一般应具有以下几个特点:
(1)允许用户选择交互通道以匹配特定的情景和任务。例如,要完成选择“Yes” 或“ No”的交互任务,可以用鼠标指示“Yes”和“No”键,也可以采用眼睛注视,也可以采用语音输入和反应。在用户的手忙于其他事情的情景中,后一种交互方式更自然,更直觉化。
(2)当单通道的反应难于约束和完成一种特定的交互任务时,模型能够整合两个以上通道,协同执行对对象的操作,以代替对单一通道安排复杂的操作程序。例如:眼注视用于在原型界面上知道兴趣区域(AOI)来约束对一特定操作的语音反应,在这种情况下,AOI减少了随后可操作的数量,在人机界面设计中使现有的语音识别系统更有用。
(3)应可以与WIMP界面兼容,并以基于智能体的机制实现。
(4)对通道数量应无限制,模型做到与交互设备和通道无关。
第五章 实时显示处理技术
虚拟现实技术是一种高度逼真地模拟人在自然环境之中视、听、动等行为的人机界面技术,这意味着计算机必须对操作者(VR环境的参与者)的各种行为作出实时响应。因此生成三维/立体/动态/大视场角/实时逼真的场景是虚拟现实系统最重要的虚拟环境技术之一。这与三维复杂几何建模及计算机和图形图像加速设备直接相关,同时对大视场立体显示技术分布式系统的协调同步等都有很高的要求。
5.1 影响实时显示的因素
在虚拟现实系统中,三维/立体/动态/大视场角/实时逼真的场景是虚拟现实系统最重要的虚拟环境技术之一。所谓实时动态显示是指当VR中的用户的视点位置和视线方向任意改变时,该虚拟环境提供的图像的变化必须能够及时跟上用户的这些改变,否则就会产生迟后现象。
三维场景的实时动态显示技术主要有:
场景中复杂三维物体的几何建模技术和软件;
大视场双眼体视显示技术;
头部的六自由度跟踪技术;
手部跟踪和手势识别技术;
语音合成及识别技术;
立体声输出技术;
触觉反馈和力感反馈技术;
这些技术包括软件和硬件技术两个方面,都要用到一系列高科技领域里的最新研究成果。这还需要计算机对多种交互设备进行大量的数据采集和输入输出处理,如键盘、鼠标、操纵器、力矩球、数据手套、头盔定位装置等。
一般,虚拟现实系统(特别是沉浸式的VR系统)的图形图像系统的视场角大于120°,这是VR系统不同于一般计算机系统的一个很重要的方面,特别是沉浸感的产生也是VR系统与一般的图形图像计算机系统的很大区别所在。在这些系统中同样也要进行遮挡、光照、浓淡、消隐、纹理映射、抗混叠(Antialiasing有些书译为反走样)等方面的计算和处理,但要求计算速度更高,计算能力要更强。例如,一个计算机每秒计算100多万个多边形,而一个分子模型由10多万个多边形构成。
与帧速密切相关一个问题的是等待时间。等待时间在这里的定义是动作开始(例如某人头部的转动)与显示器上出现响应这一动作之间的时间。当以30Hz的频率计算图像时,则每帧图像需要33ms的时间。一般来说,完整地显示一帧图像需要2帧时间,还要加上CRT垂直回扫的时间16.7ms。因此,从一个动作开始到该动作的图像在CRT上显示出来(至少)大约共需要2×33+16.7 = 83ms,如果再计入跟踪系统的时间延迟和程序运行的时间,再加上人的延迟,实际上用的时间可能还要多一些。
一般情况下,要求较高的VR系统的图像图像都用较高档的工作站,如SGI公司的Onyx Reality Engine2。现在,由于微型机算计的迅速发展,图像加速板性能的迅速提高,用“微机+图形加速卡”来开发VR系统也开始出现。
“实时”的概念是一个相对的概念,一般情况下,只要整个系统对命令的响应时间足够短,使得所显示的图像的更新率能满足动态显示的要求,就可以认为该系统达到了实时处理功能。
5.2 三维图形的实时显示技术
5.2.1减少负载计算量
在VR系统中,实时图形图像生成器一般情况下不低于15帧/秒,最好在30帧/秒以上。这取决于场景计算的复杂程度,取决于系统的光照、阴影、纹理、抗混叠等方面的处理和算法。同时为了得到更为真实的场景效果,计算的虚拟场景往往有上百万个多边形,这对实时成像系统的计算和显示提出了很高的要求。降低场景的复杂度和选择适当的计算机成像(CIG Computer Image Generation)算法是非常重要的。
1. 选择适当的成像算法 以光照模型为例,我们简要介绍几个不同的算法。
(1)不考虑镜面反射的局部光照模型
所谓局部光照模型是只考虑由光源引起的漫反射分量和镜面反射分量的光照模型(算法)。不考虑镜面反射的局部光照模型其算法如下:
其中:V为观察方向,I为V方向的光强(亮度),Ka为环境反射系数,Ipa为环境反射有效光亮度,K为漫反射系数,Jpd为漫反射有效光强度,N0为单位法矢量。L0为单位光向量,r为光源至被照明点的距离,c为常数。
(2)Phong光照模型
图5.1是Bui-Tong phong提出的光照“Phong模型”,这是一种最好的光照算法,能够计算出高亮度的反射光,环境的漫反射和大气对光的衰减等。逼真图形图像的生成大都采用光线跟踪算法,它的计算量非常大。首先考虑画面中只有一个点光源,物体表面被点光源照射,其反射光线矢量R与物体表面法矢量N的夹角为θ。同时物体表面受到环境光的照射,部分环境光朝观察者反射。
观察者相对于物体表面的位置由矢量V给定。Iλ是观察者所看到的波长为λ的光照强度,在不考虑物体表面材料的情况下,它取决于环境反射亮度、漫反射光亮度和镜面反射光亮度及其它大气衰减因子等。
镜面反射模拟的是在“光亮”的表面,比如汽车的外部或镜子上的反射光。在这种情况下,离法矢量N很近的地方有亮斑,此处物体颜色是“白”色,称为高光区。
矢量R与V的夹角α很小时,反射光特别强烈,随α的增加,反射光Iλ中的镜面反射部分值衰减很快。在Phong模型中通过cosα的n次幂来表示,指数n越大cos nα衰减越快,一直衰减到零。
本书未给出Phong模型的计算公式,下面是另一本书上给出的Phong模型的计算公式:
其中Ks为镜面反射系数,Ips为镜面反射有效亮度,L为光线矢量,I,Ka,I,Kpa,Kd,N0,L0同“不考虑镜面反射的局部光照模型”,Ipd为漫反射有效光亮度,H0为沿L和V的角平分线的单位矢量。
也可以把上述公式转换到RGB三基色系统,此时的Phong光照模型为:
(3)Gouraud光照模型
简化一些的光照计算方法有“Gouraud算法”,也可获的较好的计算图像,但无法计算出高亮度光反射效果。这种算法需要计算多边形网格顶点的法矢量用以描述虚拟物体的表面,顶点的法矢量可从确定多边形顶点平均法矢量得到。如图5.2(a)所示,其顶点的法矢量计算公式如下:
(5.1)
从而可由顶点法矢量根据前面讨论过的光照模型计算出顶点的亮度,根据顶点的亮度I1,I2,I3求边亮度Ia和Ib。最后在Ia和Ib的基础上确定多边形内每条扫描线上点的亮度。
三维场景模型的复杂程度的增加几乎是无限的。要提高三维场景的动态显示速度,最有效的就是要减少和降低场景的复杂度,即减少由图像生成计算机系统所要处理的多边形的个数。目前常用的方法有三种:
(1)场景分块(World Subdivison)
一个复杂的场景可被划分为多个子场景,各子场景之间几乎不可见或完全不可见。例如把一个建筑按房间划分成多个子部分,观察者在某个房间内仅能看到自己所在房间内和门口的场景、窗等相连的其它房间。
(2)可见消隐(Visibility Culling)
可见消隐方法与用户的视点密切相关。用户能“看见”的区域才进行图像的运算。
(3)细节等级(LOD,Level Of Detail)
虚拟场景数据库中同一物体的数据描述有不同的复杂度,即描述该物体的多边形的个数不同。当用户的视点距该物体较远时,选取多边形数目较少的库进行运算。这样可大大减少虚拟场景计算的计算量,降低了场景计算的复杂度。
3. 预处理技术
可将真实场景图像中与视点无关的部分事先算好,用到时直接显示。
5.2.2基于图象的实时显示技术
1. 图像镶嵌(Mosaic)技术
2. 图像插值及视图变换技术
(这两种技术的应用有一定的局限性,自己回去看一下,这里不再介绍)。
5.2.3恒定帧频的自适应显示(这部分课上不介绍)
1. 恒定帧频率的自适应显示
2. 改进算法
(1)辐射度方法
(2)细节模型选择尺度
5.3 实时图形加速器
VR模拟的实时需求要求使用性能良好的图形硬件和多处理器,或多工作站分别承担计算任务。但高性能的图形工作站的价格很高,目前除采用较高档的VR系统采用高档工作站外,在中低档的VR系统中,高档微机+图形加速卡的方案也是一个性能价格比高的值得注意的发展方向。
5.3.1图形卡性能与图象画面复杂度
具体内容见书上第106页~107页。
5.3.2基于PC的VR产生器
这就是我们上面所说的高档微机+图形加速卡的方案。以前,一般的图像加速卡的价格在国内也要在人民1万元以上,随着硬件技术的迅速提高和成本进一步降低,现在的比较好的图像加速卡的价格也就在2000元左右。例图53所示,表示了一个基于个人计算机的虚拟环境产生器的简图。
5.3.3基于工作站的图形加速器
1. 虚拟全息工作站
2. Provision 100工作站
目前基于工作站的VR系统许多都采用SGI公司和SUN公司的产品,这里不对再介绍。
5.3.4高度并行VR引擎
1. Super Vision
2. Pixel—planes 5
5.4 大视场双眼体视显示技术
5.4.1立体视觉
很多人都欣赏过体视镜(称“实体镜”),或是戴着偏振眼镜(Polarized filters)看过宽银幕立体电影,有过欣赏这种具有强烈纵深感的静止或活动画面的体验。
人们通过VR系统观察虚拟世界所依赖的就是双眼视觉效应。没有双眼视觉,在这种合成环境中活动时将没有前后纵深感。
VR技术中双眼视觉效应的产生,是借助于在每只眼前边放置一彼此独立驱动的显示器;每个显示器上所显示的图像,是由对应着该眼的视点坐标分别计算出来的。在真实世界中,人们的正常视觉,也是通过同样的途径产生的,即大脑把每只眼睛分别观察到的两幅图像叠加并融合在一起,从而在观察者的大脑中产生一幅具有纵深和立体感的景象。
用户在虚拟环境中的观察范围取决于视锥(Viewing Frustrum)的大小,即水平方向和垂直方向的视角构成的视锥。一般认为,VR系统对视场角在水平方向上视场角大于100°,垂直方向上视场角大于60°,立体视觉重合部分大于30°。视锥的大小由用户的位置、头眼的方向和视场的大小决定。在传统的图形学系统中,观察位置的改变是由鼠标器或其它方法完成的,尽管在功能上能满足要求,但它打破了视觉系统的本体感觉(如中耳)之间的复合。
当用户转动头部时,视觉范围内的显示也随之改变。由于目前直接跟踪眼睛的视线方向技术条件的限制,目前一般还是用跟踪用户头的方向来近似用户的视线方向。
1. 头盔显示器的工作原理
头盔显示器是VR系统中非常重要的一种设备。头盔的作用是把显示部分与光学镜头固定住,并挡住外界的光线以增强沉浸感;只有通过它才能把头盔显示器牢牢地固定在观察者的头上。
当然,能够提供三维显示的不只是头盔显示器,最简单的一种是液晶光闸眼镜,带上液晶光闸眼镜也能看到三维立体景象。但它不能给观察者提供沉浸感,而沉浸感是虚拟现实系统的最重要的和最根本的特征之一。因此,严格地说,液晶光闸眼镜不能算作是虚拟现实系统的显示设备。而对房示器来说,只要它提供的视场角足够大(大于90°),就能给用户提供相当不错的沉浸感。
头盔显示器主要由三个部分构成:显示部件、光学镜头和头盔。
显示部件的作用是把计算机输出的图像显示出来。为了使头盔显示器产生逼真的立体感,显示部件需要用两块显示屏分别显示左右眼观察到的图像,通常采用液晶显视屏(LCD)或阴极射线管(CRT)。因为头盔显示器的体积应尽量小,所以显示屏与观察者眼睛的距离很小,一般只有几厘米。
在这样短的距离内观察者是不会看清任何东西的,更不用说什么沉浸感了。这就需要有一个光学镜头来把显示屏的图像成像在观察者能看清的距离,使图像覆盖尽可能大的视场,并使虚拟环境中的物体看起来的尺寸和真实尺寸差不多(life size),因此它对沉浸感的实现起了关键的作用。
要使一个人能沉浸于一个计算机产生的虚拟环境中,所必要的视场角至少应能覆盖人眼的光轴上所直接能看到的区域(大约90°)随水平视场角逐步增大,沉浸感会随之增强。
在加上立体视觉以及通过头部运动跟踪实现的360°视场,将使沉浸感达到十分完美的程度。这就是头盔显示器的主要功能。由于在头盔显示器的光学系统中采用了视场边缘大畸变的径向压缩技术,使得这个系统在保证大视场的同时,尽量提高了视场内的分辨率,从而在目前的液晶显示和计算机图像技术还不很成熟的状况下,头盔显示器所产生的沉浸感还是非常好的,它预示着新一代计算机界面得到来。
对于当前的主流头盔显示器(HMD—Head Mounted Display),其图像显示装置大都使用的是Sony公司的产品Watchman液晶显示器(LCD)。这种显示器的视频制式使用与美国电视广播的同样的编码,即NTSC制式。这种显示器采用被称为“合成”方式的视频标准。这意味着,在初始图像中就有相当一部分信息被丢掉了。这种“合成”视频标准,无论在几何分辨率显示器,还是在头盔式显示器中的效果都大为逊色。
2. 显示部分
对于VR系统立体视图显示方式的设计,有下列两种类型:一种类型是用两套分离的主机分别计算并驱动对应左、右眼的两个显示器;另一类使用一套主机分时交替生成A、B两组不同的图像序列,A组图像对应左(眼)显示器,B组图像对应右(眼)显示器。在前一种情况下,必须要控制好两套计算机系统的同步运行;在后一种情况下,由于是使用一套计算机系统分时完成两组不同的图像序列,整体的图像更新率会降低。
第一个头盔是美国麻省理工学院MIT的Ivan Sutherland发明的,当时他采用的是CRT作为显示器件。他没有把CRT直接放在眼前,而是放在两侧,然后用反光镜把CRT的图像反射至人眼中。虽然CRT有分辨率较高的优点,但与LCD相比,CRT的重量要大的多,还有射线的辐射,所以后来随着LCD的分辨率的提高,现在大多数头盔显示器都采用了LCD作为显示设备。
目前微型LCD的最大应用是微型彩色电视机。微型彩电一般放在20~30cm的距离观看,其视场角大约是十几度,但也不会感到图像的质量低劣。而在头盔显示器中,视场角要达到90°以上,即要放大7~8倍,这时你看到的是一个个象素,对于彩色LCD,还会看到组成每个象素的红绿蓝三点结构,这将让观察者感到非常难受。对此问题目前有四种解决方法:离焦、漫射器、波前随机化和波前随机化加上空间频率增强器。这4种方法的作用都是使象素变得模糊,从而使观察者看不清象素的边界,也就不会看到一个个象素了。
为了使两块LCD能并排地放在眼前,LCD的尺寸不能做得太大,人的平均瞳距大约为6.4cm,因此LCD的对角线最好不要超过8.9cm,否则就要增加光学系统的复杂性。
现在国外有人采用了一种更高级的显示设备,他们把计算机生成的图像通过特殊的设备投影到一束光纤的一端,然后图像传输到另一端后再通过镜子反射到人眼中。这种方法可达到非常高的分辨率,不过造价也高得惊人。
3. 光学镜头
评价VR系统头盔显示器中光学镜头质量的最重要的指标是视场角。该镜头需要多大的视场角取决于人眼的能力。人眼真正具有很高的分辨率的区域只是在光轴附近1°左右视网膜的黄斑上,但还有宽广的边缘视场。无须转动眼球,单眼就能感受到离轴90°的运动物体,即水平视场可达到180°,再加上眼珠还能转动90°,这样无须头部转动,人眼就能感受到的水平视场就达到了270°。
在目前现有的的技术条件下,现有的头盔显示器还很难提供整个270°。经验证明,90°视场就能提供相当不错的沉浸感。
4. 头盔显示器的设计要求
通过与人们正常的视觉经验相比,头盔的设计要求主要有:
(1)逼真的立体视觉(双眼视觉)立体视觉是人眼形成深度感觉的重要因素。物体在左右两只眼中所成的像略有差别,两个像经过大脑融合后使得物体看上去是三维的。在VR系统中,其立体视觉必须提供深度信息。
“逼真”可被简单而充分地定义为:所看到的景象中的所有点的方位角和俯仰角与原始图像中对应点都一样。“逼真立体视觉”或“逼真体视”则要求两眼所看到的两幅图像同时符合这个条件。在逼真体视的虚拟现实环境中,原来是直线看上去还应该是直线,在任意方向的透视关系也应该是正确的,这是逼真环境的必要条件。
(2)视场
视场是沉浸感的关键因素,影响视场的大小最主要的因素是光学镜头。视场对VR系统的影响包括两个方面:总的视场角和视场重叠角。一只人眼的水平视场角是150°,垂直视场角是135°,而两眼总的视场角是180°(头不动)。所以视场重叠角是120°。光学镜头的两根光轴的位置对视场重叠角有影响,当两根光轴平行(或会聚)时,视场重叠角较大,但总的视场角较小;当两根光轴发散时,总的视场角较大,但视场重叠角却较小。因此,视场重叠角与总视场角是一对矛盾。
(3)分辨率 人眼的最高分辨率为1弧分左右,是在视网膜的黄斑区附近。目前的显示技术和计算技术都还无法在VR系统中提供如此高的分辨率。对于一个3.43cm的LCD,目前世界上较高水平的LCD点阵为480×360,如提供120°的水平视场,中央分辨率为16弧分/每像素左右。这时只能采用牺牲视场边缘的分辨率的方法来劲一步提高视场中心的清晰度。
(4)彩色
真实世界是五彩斑斓的,系统应该尽可提供能丰富的彩色以增加系统的真实性。
(5)消除畸变
要使观察者能产生正确的立体视觉,必须要消除光学镜头带来的畸变,一般可以通过产生图像的计算机软件来实现。
(6)调焦和会聚
人眼在观察自然中的三维景物时,要对空间的一点进行调焦和会聚。只有把调焦和会聚结合起来,人眼才能舒适地观察从无穷远到近点之间各个距离的物体。而在虚拟环境中的立体景象中,人眼无法在对某一点同时进行调焦和会聚,但人眼又只能容忍一定程度的调焦和会聚的冲突。这样显示器中景象的距离范围就受到了限制,而如何限制则依赖与像平面的位置。在VR系统的图像生成软件中,应把这些限制考虑进去。
(7)系统应能适应用于大多数观察者
人与人之间在许多方面都有差异:瞳距。头的大小、以及是否带眼镜等。设计头盔显示器时必须把这些因素考虑进去。瞳距的差异可以有两种办法解决:一个办法是把光学镜头的瞳距做得足够大;另一个办法是使系统能够调节瞳距。不过在这两种情况下,不同的人所得到的感觉还是不一样的,有时甚至无法融合两眼的图像。要解决这个问题只有通过软件,在数学模型中把瞳距的不同考虑进去。
(8)重量
理想的头盔显示器的重量应和一副眼镜差不多,当然,现在还无法达到这个目标。目前最轻的头盔显示器其重量大约是400g左右,常用的减轻重量的方法包括采用塑料头盔壳体和塑料透镜等。
5.4.2大视场头盔显示器
一般把大于90°以上叫做大视场角系统,视场角大是VR系统产生沉浸感很重要的一个因素。在许多情况下,即使在VR系统中实现大视场的图像粗糙一些的航空模拟器车辆模拟器中用户都会沉浸在大视场虚拟环境带来的兴奋中,并不太在意粗糙的分辨率。
在设计头盔时一般情况下,给予视场中央30°区域的信息量应与其余180°的信息量大致相等。
在VR系统中计算机产生的虚拟环境图像必须以二维阵列存储,并以视频信号传输。这样它就必须映射到平面上。对于普通的视频显示,比如电视和录象等,采用的是线性投影。线性投影是针孔照相机或无畸变普通照相机的工作原理,它将三维世界线性地投影到平面上。显然它不适用于大视场角的体视,因为在这种情况下,边缘视场将花费巨大的存储空间和信道。
VR系统中大视场角的光学系统还会造成图像大量的畸变还要靠软件加以校正使其恢复正常。另外还有其它的一些畸变需要进行矫正。
目前的头盔式三维立体显示器还存在一些缺点:过重(1﹒5~2kg),分辨率低、延迟大、刷新率低、行动不便(有些是有线的)、跟踪精度低、视场角不够宽、眼睛容易疲劳等。有必要开发新的三维显示技术。
5.4.3新式显示器
随着电子技术微型化和全息技术研究的进展,显示技术和界面发展得非常快。全世界都在针对基于LCD的高分辨率HMD,特别是Sarnoff Center和Pennsylvania大学已开发出分辨率为1280×1024薄片式LCD“活动矩阵”显示器。这种显示器是单显,它的显示范围不超过来回25×30mm。这样小的显示器可以造出重量很轻的高分辨率的HMD。
5.5 分布式实时处理技术
VR模拟的实时需求,要求使用性能良好的图形硬件和多处理器或多工作站任务分配。同时VR系统要求有大量的和多种类型的传感器,并要求有实时响应能力;VR系统又应该是一个分布式的实时系统,这些问题对计算机系统、图形系统和传感器系统都提出了很高的要求。
1. 分布式系统具有负载分配功能
分布式VR系统可以把模拟时的计算负载分散到同一台计算机的不同的主机板或不同的计算机系统中去。前者是紧耦合的计算机系统。后者可能是主从计算机系统。
另一种方法是利用计算机网络来构成分布式VR系统。最著名的就是美国的分布式交互仿真系统DIS(Distributed Interactive Simulation),也就是人们常说的SIMNET。但计算机网络中的数据传输问题是一个较大的问题。
2. 基于超级计算机系统结构的负载分配问题
对于级计算机,Frederics给出了三种可能的解决方案:(这里不多讲,祥见书上119页)
超级计算机+图形工作站 其负载分配问题称为“过去——处理可视化”。
第二种称为“分布可视化”。
第三种是目前使用最少的技术是在一超级计算机上运行一软件“成像器”。
3. 分布式系统的传输速率问题
下面的图5﹒7是IBM公司开发的专用于以两个互成90°、大小相同的液体涡流的相互作用VR模型。(课下自己看一下,这里不再多说。)
4. 分布式系统的客户机/服务器结构
下面的图5﹒8表示了一种松耦合的客户机/服务器结构它把计算分布在四台工作站上完成。详见书上第120~122页。
虚拟现实技术
第六章 触摸和力反馈
触觉是人们从客观世界获取信息的一种重要的传感渠道之一,它由触觉反馈和力反馈组成。在VR系统中,用以通过触觉和力反馈系统进一步VR系统增强真实感、沉浸感,提高在VR系统中执行任务的成功率。如何更好的反应这两种感知也是现今VR系统需进一步探索的困难问题。
6.1 触摸和力反馈的概念
6.1.1概述
在在很多情况下,人们不仅希望看到物体的颜色和形状,听到它的声音,还希望通过自己的亲手触摸来感知它的质地或温度,从而获得更多的信息,才会感到比较全面地了解了该物体。这就是说,在虚拟环境中操纵和使用物体需要有触摸和力量的感觉。如远程控制的电动机器人实验证明,触摸和力量感觉提高了完成任务的效率和准确度。
在虚拟环境下也是如此,哪怕只是提供了极有限的触觉反馈,就有了对虚拟环境中物体相互作用的感受,从而大大增强了虚拟环境的沉浸感和真实感。如Pairick在进行人类因素实验来检测它的反馈系统时发现,简单的双指活动场景中,将触觉反馈和视频显示综合起来,其性能比单单使用视频显示要提高10%;
然而,当视频失败时(模拟低能见度),附加使用触觉反馈则会使性能提高30%以上。虽然VR系统能生成像真实世界一样(或类似)的虚拟世界,但对许多当前已实现的VR系统来说大都没有触摸和力量反馈功能。
触摸/力量反馈这是一项非常复杂和十分困难的工作。这主要是因为虚拟物体处于虚拟世界,而人则处于真实世界,所以用户不可能像抓住一个真实物体那样去抓住一个虚拟物体。
也就是没有对该物体的物理感知。VR系统的使用者可以用手抓住一只虚拟的玻璃杯,但却不能感受到接触这只杯子的触觉。不象使用你自己的手真正把握一只实实在在的杯子一样,无法判断你抓杯子的动作是否停止在杯子的表面,而不再向杯子内部继续捏进去,更谈不上要从这些动作中的压力大小来判断物体是什么,它的表面光滑程度如何等等。
同时还因为触觉输出设备则要求把你的胳膊和手伸进设备中,这些设备围绕在你的手和胳膊的周围,它才能测量你所用的力,才能与你的手和胳膊发生作用;更困难的是如何正确“理解”力的反馈,例如,如何能使你从力的反馈中识别出虚拟物体的表面是呢子的还是布的?如何向计算机说明是“呢子”表面?用什么参数可以区别呢面和布面?还由于人体感官的复杂性,使触觉反馈系统需包含大量各类各异的传感器(最多有200种类型),从而使触觉处理进一步复杂化。
这些问题都是今天的虚拟现实系统正在探索和需要解决的问题。
根据人感知事物的心理,为了能与虚拟环境交流信息,并向用户显示虚拟物体。特别是要精确地模拟和重现各种触摸/力量反馈,必须在VR系统中增加一些能向用户提供触觉效果的设备和系统,这可以通过虚拟环境本身或通过物体的物理模型来实现,即就是能精确描述这些力的设备。目前已经研制出能有限地实现触摸反馈的产品,并已开始投入应用。
一种是有触觉的手套,戴上这种特殊的手套,就可以以一种新的形式去体验虚拟世界,你可以伸出戴手套的手去触、碰一个虚拟沙发的表面。这时你可能会感觉到稍微有点压力作用在你的手指上。虽然没有东西能阻止你的手继续向下按,但按下去越深,你手上感受的压力越大,移开你的手时,压力也就消失了。其所以你能感觉到所触、碰的是沙发表面,这就是触觉反馈系统帮助你感觉到的。
在虚拟空间中,用户带上数据手套,通过实时操作,可以伸手抓取或操纵虚拟物体,可以探测到虚拟手的表面与物体接触,并把它反馈到应用软件,以确定被抓住的物体是什么?抓取是否成功?等等。
目前已研制成了一些有限的触摸/力反馈商品,但那些能模拟和产生触摸/力反馈的VR系统还是粗糙的和实验性的,距离真正的实用还有一段距离。
但对具有沉浸感的VR系统来说又是必不可少的。这就是我们研究VR系统触摸反馈和力反馈功能的原因。可以相信随着对这些触摸和力反馈的进一步了解随着更先进的传感器的研制成功,这一情况会得到改善。新技术和新材料可能在开发触觉方面引起大的改进,也必将有助于实现人们的愿望,即建立一个能“看得见并摸得着”的虚拟现实系统。
6.1.2触摸/力量反馈的概念及其区别
触觉感知包括触摸反馈和力量反馈所产生的感知信息。触摸感知是指人与物体对象接触所得到的全部感觉,是触摸觉、压觉、震动觉、刺痛觉等等皮肤感觉的统称。所以触摸反馈代表了作用在你皮肤上的力。它反映了人类触摸的感觉,或者是皮肤上所受到的压力的感觉;而力量反馈是作用在您的肌肉、关节和筋腱上的力。
在VR的交互作用中,由于没有真正抓取物体,所以称之为虚拟触摸和虚拟力量反馈。触觉是人们用于感知外部世界的一大感觉通道,而手是实施触摸的主要器官。
为了加深对触摸和力量反馈概念的理解,先举两个例子。例如,当您的手拿起一个玻璃杯子时,通过触摸反馈感觉到杯子是光滑和坚硬的,通过力量反馈,您感觉到了杯子的重量。
又如,您的一只手很轻地推一张桌子,首先反应的感官是指尖触摸感觉器,使您有触摸感。如果手再用力,那么手上和前臂肌肉就开始收缩,这时就由肌肉韧带和骨骼上的感受器提供力量强弱的力量反馈。
这样的例子在日常生活中很多。由于许多因素,与视觉和声音反馈相比,触摸反馈分析比较复杂。
因为触摸传感器提供的是关于接触表面的几何性质(是否在同一平面上或在边缘上)、表面平滑度、温度、几何构造等信息,甚至还还有一个被抓物体由于重力产生的下滑力。
相反,力量反馈提供的是关于全部接触力量的信息,还有表面的硬度或被抓物体的重量(重或轻)信息。在触摸反馈的传感过程中要使用整个人体皮肤和内部器官,而且这些接受器在皮肤表面的分布也不是平均的。
分布密度最大的是在指尖处,达到每平方厘米135个接受器,而手背皮肤的接受器分布密度最低,可降到每平方厘米20个以下。指尖作用力的空间分布大约是2.5mm,也就是说如果两个接触面间隔小于2.5mm,手指就会感到一个接触面。另外,与接触有关的感觉并不只限于辨别身体与环境之间的接触区域,还有用来确定物体的重量的力量反馈,还与“动觉”或因人而异的身体各个部分的相对姿势有很大关系。
手指所感受到的力量依赖于个人和物体的抓取方式。通常男性在抓取物体时能最大施加400N的力,而女性的手的力度是男性的60%到80%。Cutosky和Howt研究了手抓取物体的几何学问题,并划分出两个基本种类:“力量”抓取和“精确”抓取。力量抓取是用整个手和手掌,有很大的稳定性和力量,但缺少灵活性(手指不能移动);精确抓取是只用指尖,用力少,灵活性强。
因此,人体对触摸/力量反馈在心理和控制需求上都不一样,同时,还存在着功能差别。当被抓取的物体较远时,交互作用力就通过计算机控制的反馈“装置”传递给使用者手。而人的手传感宽度即采样频率一般为:在5000~10000Hz范围内时,这个宽度已超过了人手在进行灵活操作任务中感到震动所需宽度;在320Hz界限之外,人手无法区别两个连续的输入信号;
在20~30Hz范围内是力量输入信号能对人手产生感觉的最小宽度;当低于12~16Hz宽度时,人的手指就不能抓住滑落的物体;当低于8~12Hz宽度时,人的手指无法更正它的位置变动;在5~10Hz范围内,人的手指能舒适地提供力量和运动命令的最大宽度;在1~2Hz范围内,人的手指能对未能预知的力量/位置信号作出反应的最大宽度。
6.1.3虚拟触摸/力量反馈的要求
这一小段自己看一下。
6.2 “砂纸”系统
6.2、6.3和6.4节不做介绍。
6.2.1建立模拟纹理
6.2.2实时力量显示处理的物理过程
6.2.3力量显示的控制
6.3 触摸和力反馈技术及工具
6.3.1触摸反馈技术及工具
6.3.2力量反馈技术及反馈装置
6.3.3虚拟反馈和力量反馈的结合的设备
6.4 基于物理模型的力量反馈
6.4.1基于物理模型的力量反馈
6.4.2新式触觉显示器
虚拟现实技术
第七章 三维虚拟声音的显示
听觉系统是仅次于视觉系统的重要的传感通道,虚拟环境中的三维声音可以与视觉同时并行,使用户从既有视觉感受又有听觉感受的环境中获取更多的信息,从而增强沉浸感和交互性。这一章主要介绍三维声音的概念、定位原理、虚拟声音显示及其作用等。
7.1 三维声音的概念及作用
在虚拟现实系统中听觉信息即三维虚拟声音是一种新的特殊媒体,这种媒体可以独立存在,但它是更大更有意义的多感觉虚拟环境中的一个重要组成部分。如果是在动态三维环境下,基于物理定律的声音传播模拟能以更自然的方式定义许多声学参数,使虚拟环境中的三维音响效果比真实环境中的声音还要好。
7.1.1三维声音的概念及其特征
在虚拟现实系统中,虚拟声音提供给用户的沉浸感和交互性仅次于视觉系统。在VR系统中加入虚拟听觉系统,既可以增强使用者在虚拟环境中的沉浸感和交互性,又可以减弱大脑对于视觉的依赖,降低对视觉沉浸感的要求。
1. 三维声音的概念
当我们听调频立体声(FM Stereo)广播时,有左右声道的立体声感觉,但它还是来自你面前某一个平面(是否可把它称为“平面立体声或二维立体声”)。当在虚拟环境中听到的声音是球面立体的,声音可能来自你头的上方、后方或前方。一个普通的立体声系统不能使我们正确地判断声源的精确的空间位置。在虚拟现实中,只有三维立体声才能当此重任。
2. 三维声音的特征
三维声音定位是虚拟现实系统中三维虚拟声音的核心技术。主要有:
(1)全向三维定位特性 三维定位(3D Steering)是指在三维虚拟空间中把实际声音信号定位到特定虚拟声源的能力。俗话说“耳朵的功能是指点眼睛”,可见三维声音系统能提供粗调的机制,用以引导较为精细的视觉能力的注意。
在受干扰的可视显示中,用听觉引导眼睛对目标的搜索,要优于无辅助手段的肉眼搜索,即使是对于处于视野中心的物体也是如此。这就是声学信号的全向特性。
(2)三维实时跟踪特性 三维实时跟踪特性(3D Real Time Localization)是指在三维虚拟空间中实时跟踪虚拟声源位置变化或景象变化的能力。声音效果应该与实时变化的视觉相一致,才能产生视觉和听觉的叠加与同步效应。
比如说,用户在虚拟环境中漫游时,看到一只从远处跑过来的小狗,用户就应该能同时听到由远至近的狗吠声,也许因为怕用户而掉头走开,狗叫声由越来越远直至消失,这样的变化完全取决于用户的参与。如果三维虚拟声音系统不具备这样的实时变化能力,看到的景象与听到的声音会相互矛盾,听觉反而会削弱视觉的沉浸感。
三维声音除了上述特征外,还有我们十分熟悉的沉浸感和交互特性。三维声音的沉浸感就是指使用互产生身临其境感觉的能力。三维声响对于虚拟环境的创建者而言,是一个强有力的表象工具,它可以进一步吸引你沉浸在虚拟环境之中,有助于增强临场感。而三维声音的交互特性是指随用户的临场反应和实时响应能力。
7.1.2三维虚拟声音的作用
声音效果的使用是一项令人惊奇的、富于感染力的因素,每个人都会有此体验,有时仅仅听到一段动人的音乐就可以给您身临其境的感受。如果在舞台上表演或电影画面中,配上了狂风怒吼、电闪雷鸣、哗哗雨声,即使在炎热的夏天,也会顿生凉意;即使在一般情况下,音响至少可以为VR系统使用者提供一些能起到辅助作用的反馈信息。
另外,在真实房间中的声音会在地板、墙壁、天花板上发生反射还包括从声源直接收到的声音。声音反射(回响)依赖于房间的几何结构和所用的建筑材料,为了提高模拟虚拟房间的真实性,需要考虑反射声音部分。因此,一个包含六面墙、四个声源的虚拟声音计算环境需要计算机进行每1000次以上的运算。
三维虚拟声音系统的作用,详见page 145~147。
7.1.3虚拟声音显示的研究目标
(1)声音提示足以在可听见范围内重现频率分辨度和动态范围;
(2)在三维空间上精确地呈现信息;
(3)能表达多个静止或移动的声源;
(4)声音的显示是实时的和交互的,也就是说可以应答用户使用中的需求;
(5)能提供具有与头部运动适当关联的动态声音显示的稳定声音环境;
(6)在可显示的声音信息的类型方面有灵活性,例如真实环境的声音、听觉图符、语音以及多维听觉模式等等。
7.2 人类的听觉模型
7.2.1概述
人类有很好的确定声源方向的能力。如果人和声源处在同一水平面内,一般来说声音到达两耳总要产生“相位”延迟,即 声音到达一个耳朵和到达另一个耳朵之间有时间差。在水平面外确定声源方向,是人们凭借经验积累起来的一种技能。可见三维声音显示依赖于人类的听觉模型。
三维声音显示的使用主要依赖于用户对听觉空间中各种信息源的定位能力。例如当我们听到歌声时能大致判断出声音来自何方,大致有多远等。再如当汽车朝我们急驶而来时,发出的声音会变尖锐;但当汽车从我们身边离去时,同样车速发出的声音就会变低。要在虚拟现实系统里实现这样的效果是不容易的。要实现这种功能,就必须要求声源位置完全独立于VR系统使用者头部的运动。
7.2.2混响时间差和混响压力差
Wenzel和Begault根据经典的“双工理论”在NASA Ames研究中心,就人类三维声音感知作的一分合作研究报告中指出,听者根据两个主要线索显示来确定声音定位,即“内部时间差异”和“内部强度差异”。一个声源放在头的右边测量声音到达两耳的时间,声音会首先到达右耳,然后再到达左耳。在到达时间上的差异就是上面所说的“内部时间差异”。
这种理论是基于两种基本显示作用(图7.1),即到达两耳的时间差(ITD)和强度差(IID,或称压力差IPD)。IPD对高频率定位特别重要,而ITD对低频率定位重要。人的耳朵是根据这两种定位机制来判定声源方向的,也就是说,只要到达两耳的声音存在着时间差或强度差,人就会产生方向感。根据这个声音的强度、时间差异制成人的头部模型,在耳朵的鼓膜位置进行录音,并用头带受话器进行再生的技术,称为“双耳音响差再生”技术。
1. 混响时间差(Interaural Time Difference,ITD)
对频率低于或等于4000Hz的声波,混响时间差(ITDs)为:
对频率高于4000Hz的声波,混响时间差(ITDs)为:
其中:θ是声源角位置,r是头部半径,v是声速;
假设θ为0°,表示声源位于受试者的正后方,按顺时针计,这意味着左耳位于90°,而右耳:位于270°处。考虑低频情况时,假定声速是343米/秒,头部半径是0.09米,则:
如果声源位于实验者右侧45°,计算得到的ITD值为0.05566秒,这就是说到达左耳的声波与到达右耳的声波之间的混响时间差是55.66ms。
为了在虚拟环境中模拟这一情景,可以先使右扬声器发声,55.66ms后再使左扬声器发出相同的声音。
2. 混响压力差(Interaural Presure Difference,IPD)
1.“双工理论”的不足之处
2. 头部传递函数HRTF(Head Related Transfer Function)
7.2.4声音合成技术的验证
1. 用静止声源验证
2. 声学定位的个体因素
3. 虚拟声音显示的其他因素
7.2.5三维合成声音定位的实验
NASA关于三维合成声音定位的实验。重要的一部分是HRTF(Head Related Transfer Function )
7.3 虚拟声音显示
7.3.1概述
“Sound rendering”可译为声音绘制,因为它所用的方法类似于图像绘制和纹理影射,而且它又与几何数据紧密相关,为区别于图像绘制,这里译为声音显示。
声音显示非常似于计算机图形中的图像绘制方法,即以光照模型绘制图像的情况一样,即考虑光源(这里是声源)、材料以及纹理等,它还可以采用基于物理定律等其他的建模方法。
本书这里主要介绍Tapio Takala 和Hahn实现的基于三维虚拟声音显示形成混合跟踪的过程,包括利用产生方向、位置、声音的跟踪及其合成等等。这是一个实现声音产生、表示和同步的结构化方法。在他们的论文中提出了一种在虚拟环境中产生同步声音跟踪的通用方法,这是一个由六维运动来决定声音的新方法。这是一个由六维运动来决定声音的新方法。它与传统的声音跟踪方法相反,它允许所有类型的运动控制来自动产生声音事件,而不是按物理定律定义。
对于关键帧运动来说,声音参数也可以关键帧化。这种方法是通过为画面中的每个物体附连一种特征化声音。来建立一个声音世界模型即虚拟声音模型。这些声音可以产生于行为的模拟或基于身体的模拟,例如,根据具有弹性的人体对于碰撞脉冲产生的振动响应,可计算出碰撞声音;另一种方法是可将固定的已录下的声音效应与物体的每个交互作用相联来产生声音。声音也可以是阶段性产生的,用一声音事件文件描述声音世界,并分两个阶段产生声音,其方法是:
(1)首先分析从三维事物到每个麦克风的传播路径,并根据声音环境计算声音信息。这些效果是回旋的,可译码成两个基本参数,即延迟和每个声音的衰减率。将这两个参数的时间依赖性用关键帧来表示,因而与原始的三维动画描述完全无关。
(2)在第二阶段,具体示例与物体相联的声音,并用内插的关键帧进行调节,最后累加形成声音跟踪。这种模块结构的优点是对于同一方法,可用于所有类型的动画,包括关键帧的和行为的动画。
附:计算机图形学中关键帧的概念示意图: 典型的是在变形计算机图形学中变形技术的应用,如一辆飞驰的小轿车变成一只老虎,这里所示的是一根线段变为两根线段的例子,从关键帧k变换到k+1帧。
7.3.2虚拟声音显示的建模
1. 采用类似于图像绘制的方法
图像绘制是依据光照模型算法来实现的,而光和声音作为波来讲,在许多方面的行为都是相似的。根据Huygen原理,二者都是以波的形式传播,并向四面八方扩散,在障碍物边缘产生衍射现象。然而他们不同的传播速率和波长造成了本质上的差别。
光的传导没有明显的延迟,波的性质也只是当它遇到微观结构时才显露出来。而声速易于产生延迟并表现为回声,还有相当明显的衍射现象。因为声音的波长与人体成比例,声音能够绕着物体边缘传播,因而使用简单的光学镜头无法准确跟踪声音的传播。
人类对光线和声音的感觉器官也对不同的特征信号产生敏感。眼睛具有良好的空间分辨率,而耳朵能综合来自所有方向的信号。光线是经过一段时间的综合后,以一种颜色光谱的形式感知的,而且还是以单个波的形式被感知。相反,声音是及时感知而不是在频率范围中以静止的波谱形式被兄
声音是一个一维信号,可以用按固定时间间隔取样的强度来表示。这种间距和声音长度的概念近似于传统音乐,但却无法描述讲话和噪音。。尽管一个对每个组成部分的每一个阶段和高度的频谱分布在理论上是完整的,但从直觉上就感到这种方法不适用于动态波,而且不适用于时间依赖效应,比如回声。类似的讨论涉及到其他表示方法如拉普拉斯变换。
2. 基于物理原理的建模方法
2. 基于物理原理的建模方法
(1)物体的振动声
许多声音是当物体受到打击后振动产生的。这个过程对于没有使用复杂的有限元素模型定义的任意物体来讲比较困难。解决这个问题的一个方法是计算出一个物体的所有可能振动模式,并求出所有这些模式的加权和近似模式。尽管这种方法对于瞬时振动不严格准确,但它给出了主观上可接受的结果,问题的关键是(在物体变形或碰撞基础上)计算出每种模式的权值。
在图7.5中在吉它的弦上自然的谐音是沿着弦有固定偏移的固定波,由等式dn(x)=Wn sin(nx)给出。振动模式是垂直的,因此假设弦的初始位置是d0(x),每种模式的加权因素是积分:
其权重就应为
用一指数函数计算加权和,其衰减因子与频率成正比。这就给出了一个弦上对应于拨动点偏移量的波,可将其当作这根弦的碰撞声音原型。这根弦的每次拨动都会产生这个声音的一个实例,其声音的高度与碰撞脉冲的数量级成正比。
(2)摩擦和干扰噪声
(3)其它过程声音
7.3.3合成声音显示的过程
Tapio Takala 和James Hahn将形成合成声音跟踪的过程称为“声音显示”图7.6 是整个系统的结构图(即过程流程图),其中过程有:
(1)产生声音原型。
(2)引用声音原型。
(3)将物体发出的声音变换到麦克风上。
(4)在最后过程中提供声音。
7.3.4虚拟声音提示
声音提示是指合成声音的输出。在动画设计中所有重要的输出包括打击反弹等,都定位在关键帧中,这些关键帧可用来合成声音效果。
7.4声音传播
7.4.1距离和方向的影响
7.4.2声音跟踪模型
图7.8 麦克风的敏感度曲线形状
7.4.3声音描述的再现和处理过程
图7.9 声音跟踪的原理
7.5 三维声音产生器
这一节介绍一些三维声音产生工具。
7.5.1实时数字信号处理器
Scott Foster 研制了一个称为Convolvotron的装置(实时三维声音定位系统,又称实时数字信号处理器),次装置能同步地处理4个彼此独立的点声源,它可以补偿使用者头部的任何运动。
1.实时数字信号处理器的功能
Convolvotron是专用设备,价格昂贵。现多采用DSP(Digital Signal Processor)来做自己的音响系统。
2.实时数字信号处理器的结构
7.5.2 THE BEACHTRON和THE ACOUSTETRON
1.THE BEACHTRON
2.THE ACOUSETTRON
3.声音控制
4.这部分是一具体的系统,不做介绍,自己看一下
虚拟现实技术
第八章 三维视觉建模及视觉成像
8.1 三维视觉的显示原理
三维视觉是虚拟现实技术最重要的环节。三维复杂模型的建立和实时动态显示,是为虚拟现实环境提供沉浸感的最重要的一个方面。这里主要介绍三维视觉原理、视觉建模技术、图像自动生成及三维立体图像的快速成像等算法。
1.双眼视觉效应
双眼视觉效应是人们通过虚拟现实系统观察虚拟世界的基础之一。人类的视觉具有双眼坐标定位功能。
在现实生活中人之所以能够看见有立体感的三维世界,是因为左右眼存在一定的视差,进而由视差产生深度感。景物的空间深度信息是通过左、右眼视线在空间的交点而感觉到的。传统的三维计算机图形一般都是根据单视点计算,其左、右眼视线交于屏幕上同一点。虽然使用了多种增加立体感的技术(如透视、消隐、阴影等),但所产生的三维图形的立体感,特别是三维纵深感依然不强。
由于人的每一只眼睛都能独立地观察外部事物,而两眼同时看我们周围的同一世界时,由于两眼在头部的位置不同,即视点的三维坐标存在微小差别,同一事物在两只眼睛的视网膜内的成像也相应地存在细微的差别,大脑利用这一线索将两幅视图融合后,合成一幅画面并辅之以景物深度,产生一幅单一的立体图像,使人产生一种深度感。只有当这种深度感连同其它因素,比如视野宽度、运动感觉、视差调节立体图像和交互作用结合在一起,才能使用户在虚拟环境中获得沉浸感。
2.视运动知觉
深度感知可以由一只眼睛或两只眼睛同时产生。当只使用一只眼睛时,基于传统的图形处理方式即可获得,如单视点透视投影、阴影、消隐处理、纹理和物体细节等方式。在单目深度感知中另一个重要线索是运动并行,当我们移动头部时,近处的物体似乎比远处的物体更远些。虚拟环境中的这种视运动知觉,对于创建一个逼真的虚拟现实系统非常重要。
有些虚拟的视觉显示的确能在某一时刻达到以假乱真的效果,但当观察者进一步接近虚拟物体时,这种感觉马上就会消失。所以,在没有考虑到用户视觉运动知觉的VR系统中,一些不自然的视流场线索(visual flow field),就会导致本体运动知觉真实感的消失,若一个VR系统不能生成粗略的视觉流模式(optical flow patterns),用户马上就能知道看到景象是假的。因此,在真实世界中,视流带(optical flow streamers)对于人们判断物体的运动、速度及高度至关重要。
人们大都把深度感知与立体观测联系起来,两眼都寄存一幅画面,并通过大脑使用两眼寄存的画面中的水平位置来测量深度。如果把一个人的整个视景角度算作“视域”,那么,水平方向大约为180°,垂直方向约为150°。在视域范围之内眼睛可以寄存观察者周围的物体。假如物体B前面有物体A,当眼睛集中在A物体上,聚焦于“固定点”F时,视线轴与眼睛到点F连线的夹角确定了“收敛角”。这个角度也依赖于两眼瞳孔间距。
此距离称作“内瞳孔距离”(IPD),它在成年女子与男子之间的变化范围是53~73mm。一个人根据IPD可计算出在真实世界中离物体的距离。IPD越大,收敛角度就越大。
若物体B的某点看起来会在左右眼之间移动,这是因为它相对于两眼的位置不同,称此移动为画面“并行”。需要由VR图形和立体视野硬件重现此过程,以帮助大脑在模拟环境感知深度。所以利用此原理要设计出一种能充分向使用者提供具有立体和沉浸感的显示器看来并不那么简单。
3.三维立体图的显示
视觉系统中三维立体图像的生成常采用三种算法:
用两台摄象机合成立体图像;
基于投影变换原理的左、右眼视图生成方法;
基于相关性理论的立体图生成算法;
使人们获得立体效果的关键部件是立体显示设备(如;立体眼镜、头盔显示器等),主要可分为如下两类:时间平行(time parallel)立体显示设备和时间多路复合(time multiplex)立体显示设备
(1)在时间平行立体显示设备中,把左右眼视图同时显示在两个不同的CRT屏幕上或单个CRT屏幕上,如果显示在单个屏幕上,那么必须用一种特殊仪器来把左右眼视图分别送给左眼和右眼。一种实用的方法是把两幅图像用不同的光波波长显示,用户所戴的眼镜分别配以不同的光滤波片,从而使左眼和右眼分别看到各自的视图,进而产生立体感。
(2)在时间多路复合立体显示设备中,左右眼的两幅图像以一定频率交替显示。早期的显示设备都使用60Hz的交替速率(每秒30幅左眼画面视图和30幅右眼画面视图),在30Hz的隔行扫描监视器上很容易做到这一点,只要把左眼视图写到偶扫描行,而把右眼视图写到奇扫描行。用户可通过高速液晶开关立体眼镜来观察图像。
8.2 虚拟世界中对象的定义
在VR系统中,当用图形表示所创建和成像的数据时,称为构造场景(或境界),也称为创建虚拟环境。场景是由一系列对象组成的,而对象就是虚拟环境中的成员。场景一般包括几何对象、传感器对象、光源、视点等。
(1)几何对象 它是场景的基本元素,它的形状特征是利用已有造型软件(或建模工具软件)建立和制作的。其中一部分具有静态特征,它包括位置、方向、材料、属性等特征;
另一部分还具有运动特征,它反映的是对象的运动、行为约束条件(如碰撞等)以及力的作用等。运动特征是通过作业指派的,给出行为特征,按层次组织存入已建立的几何数据库。
(2)传感器对象 传感器的概念适用于任何为计算机提供输入线索的外部设备,这些输入主要用于控制对象的位置和方向,改变场景对象的行为,以及控制参与者的视点等。
(3)光源对象 虚拟环境提供的光源类型主要有点光源、平行光源、面光源,还包括环境光,也可使用任意多的有向光源,置于场景中的任意位置和方向。
(4)视点对象 用户可指定观测参数,以便于在任何位置、任意方向和任意角观察虚拟环境。在同一场景还可保留几个不同的视点,但同一时刻只能使用一个视点。它可与传感器相连接,根据传感器的运动动态地改变视点,从而使参与者在所构造的环境中漫游和浏览。
8.2.1几何对象的描述
几何模型的描述与建立是计算机图形学中传统的方法。首先在计算机中建立起三维几何模型,一般都采用多边形的表示方法。在给定观察点和观察方向后,使用计算机的软/硬件功能实现消隐、光照、纹理影射及投影等成像的全过程,从而产生几何模型的图像。
几何对象的几何模型描述了虚拟对象(多边形、三角形、边)的形状和它们的外观(纹理、颜色、表面反射系数等)。
几何模型的描述与建立是计算机图形学中传统的方法。首先在计算机中建立起三维几何模型,一般都采用多边形的表示方法。在给定观察点和观察方向后,使用计算机的软/硬件功能实现消隐、光照、纹理影射及投影等成像的全过程,从而产生几何模型的图像。
几何对象的几何模型描述了虚拟对象(多边形、三角形、边)的形状和它们的外观(纹理、颜色、表面反射系数等)。
1.几何形状的定义
虚拟环境中的几何对象的几何描述主要有有两类信息构成:点的位置信息和它们的拓扑结构信息。例如:
点的位置信息:
V1=(x1,y1,z1),V2=(x2,y2,z2),……
Vn=(xn,yn,zn)
扑结构信息:
Polihedron={VertexList,FaceList};
VertexList={V1,V2,……Vn};
FaceList={front={…},right={…},bottom={…}};
当前有各种三维图形库供用户使用(例如:PHIGS,Starbase,GL,XGL,Open GL,OpenGvs,Vtree等)。真正用于实用的VR系统在建模时就应根据需要,考虑将建立的几何模型分为高、中、低等几个分辨率不同的等级。目前较好的建模工具有:MultiGen,当然也可以使用象Auto CAD、3D Studio等软件环境和工具。但是要考虑到最终的输出格式应尽量与你所使用的图形系统的格式相一致。
有时所模拟的对象在现有的数据库中没有,可使用三维数字化仪,如Hyper Space Model 100。这种数字化仪有一个Polehemus测量头,可用来获得三维空间点的位置坐标信息。用户可先做一个对象的(非金属)模型,然后把测量头放在模型表面以获得框架的顶点(坐标)信息,一个内置的编辑器允许线段和多边形沿着任何测量轴重新定位,线段的点和多边形连接点可按Bezier曲线重新分布。
2.对象表面的纹理
所谓纹理主要就物体表面的是细节,目前多采用照片纹理。
8.2.2动态建模
8.2.3对象特征定义
8.2.4柔韧性物体及其变形
8.2.2,8.2.3,8.2.4这三个小节本次不做介绍。
8.2.5数据库模式及主要特点
三维建模是VR系统设计的核心,三维数据库又是整个虚拟现实系统三维场景的基础。目前,不同的VR软件系统有不同的数据格式,比较著名的有MultiGen和OpenFlight格式,许多其他的VR开发环境都与它们兼容或支持它们的格式。
MultiGen是一种基于层次细节概念开发的造型软件包,用户可利用它建立有细节层次物体建立三维数据库。
这些数据库可供其它软件包使用,这些软件包可以遍历该数据库,显示和描绘出该物体的线框图等。当视点接近或远离物体时,可自动转换物体的层次细节。该系统也有PC机版本的运行程序。
OpenFlight使用几何体、层次结构和属性来描述三维物体。几何体是坐标的集合。如立方体的角或顶点。
每个顶点由一个矢量和一个坐标点组成。一对顶点之间的距离定义为立方体的边,立方体同一边的一组顶点集合成为多边形或面,6个面合起来组合成一个立方体,它们又被称为对象(Object)。一个数据库包含一个或多个这样的模型。对象面的顶点之间的关系定义了数据库的层次结构,层次结构的每个元素看作是一个节点。
在数据库中,数据标识符用来标识每个节点。标识符是自动生成的。用户也可以自己定义。在每级数据库组织水平上,有包含标记、数字及文本的数据库属性,数据库中每种类型的结点有它自己的属性。例如颜色存储在面节点上,转入转出存储在LOD节点上,属性可以观察也可以编辑。OpenFlight同时支持许多VR应用十分重要的建模特性。
1.变形LOD(LOD morphing)
变形是一种动画制作技术。在这一过程中,一个物体改变或转变为另一个完全不同的物体。变形LOD允许在不同LOD之间动态地改变形状,防止LOD转入转出时的突然变化。这些变形图像描绘了从一种状态到另一状态之间的平滑过渡。如果变形控制点选择合适,控制点会自动生成,VR系统在运行过程中就不会有变形过程中的图像的突变。
2.实例(instance)
在一个复杂的视景系统中,会由于使用了大量相同的几何体而是几何体数量迅速增加,这将大大增加存储空间。例如,工厂里有多台完全一样的机器;教室中有多台完全一样课桌椅等。而在计算机中这时只需要存放一个实例,并通过几何变换而得到其它位置的同样的物体。
实例是一种减少相同几何体数量的重要方法。数据库中的每个实例都能被缩放和单独放置。
例如一棵树的模型能被多次作为实例引用,来创造出一个由不同大小的树组成的森林。每一个实例都引用了原始几何体的数据,原始几何体的任何变化都将影响所有实例。这样可以节省内存,提高动态显示的速度。
3.外部引用(External reference)
外部引用可以让用户直接把其他数据库引用到当前的数据库中。引用的数据库能在当前数据库中重新定位。外部引用类似于实例,不同的是它是只读。
4.自由度DOF(Dimension Of Freedom)
自由度用来在数据库中定义模型某一部分的移动和旋转。例如可以把一个自由度加到一扇门上,允许门绕着指定的轴转动。DOF是通过定义运动类型和运动范围的,如“在45°135°之间绕x轴旋转”。自由度也是有层次结构的。例如,一个机器人有一个固定的基座和旋转的上身,两只手可独立移动。然而当上身转动时,两只手也同样转,手上有拇指可张开合拢。手指随着手运动,手则随着身体运动。
8.3 细节层次模型分割及自动生成
8.3.1单元分割法
8.3.2细节层次分割
8.3.3多细节层次模型自动生成算法
8.3.1,8.3.2,8.3.3本次不做介绍。
8.4 三维立体图的视觉成像方法(Page 188)
在三维场景的几何建模完成之后,必须有适当的算法生成有较好视觉效果的虚拟世界动态立体图像。这里的动态既包括虚拟世界的运动物体的图像,也包括由于“操作者”在虚拟世界中“运动”(如行走和飞行等)而引起的周围景象的变化。实时地产生上述动态图像,并在双视设备上显示出来,是产生沉浸感和交互感的关键,这里所说的好的视觉效果指的是模拟环境看起来像真的。
这就要求快速生成的图像是一个具有色彩、阴影的视觉效果的三维立体图像,也就是需要进行成像(rendering)处理。三维立体图像生成与传统的计算机三维图形生成是有区别的:
(1)成像速度快,通常应在1/10~1/25秒内产生一幅图像;而不是几分钟甚至几个小时;
(2)成像质量好,具有一定的真实性,不同于要求质量很高的所谓真实感图像;
(3)应采用接近人眼的、以双视为基础的成像模型;
(4)应能产生大范围、复杂的环境图像,包括复杂的地形、众多的建筑物。
8.4.1基于投影变换原理的立体图生成算法
计算机成像CIG(Computer Image Generation)的基本思想源于1000多年前的摩尔族科学家Alhazen首先想出的方法,他设想在观察者的眼前有一个窗口,观察者通过窗口看到的东西就是最终在屏幕上应显示的东西。
同计算机图形学中三维图形计算的方法一样,对VR中的物体,首先要对它建模,通过透视投影变换生成线框图,然后对该物体成像,即在线框图上加上颜色、纹理、阴影及其它物理特性,从而生成一幅逼真的图像。
1.单视点透视投影
标准投影变换是计算机图形学中常用的一种三维图形显示处理技术。它用单视点投影。
在右手坐标系中,当以视点为投影中心,将三维物体上的点投影于某平面(屏幕)上,便在该平面内产生三维物体的像。对于三维物体上的一个点来说,透视投影的任务在于求得该点至投影中心连线与投影平面的交点(即投影点)。图8.6中,投影中心(视点)Cop(0,0,-d),d为视点到投影平面的距离,将三维空间物体上的点P(xp,yp,zp),投影在x-y平面上产生的投影点为Ps(xs,ys),则有:
xs=xp×d/(zp+d) (8.15)
ys=yp×d/(zp+d) (8.16)
2.左右眼双视点投影算法
对于立体图像要求生成左右两眼的不同视图。每一只眼都是从不同的位置观察景物,两只眼睛所看到的就是不同的画面。我们的目的是要根据不同的投影中心生成这些视图。
投影平面位于z=0处,两眼距离为e,对应与左视图的投影中心为Lcop(-e/2,0,-d),而右视图的投影中心为Rcop(e/2,0,-d),
见图8.7所示,d为视点到投影平面的距离,将任意一个三维点P(xp,yp,zp),以左视点Lcop为投影中心,投影在z=0的x-y投影平面产生的投影点为Psl=(xsl,ysl),其中:
xsl=(xp-zp×e/2)/(d+zp) (8.17)
ysl=yp×d/(d+zp) (8.18)
同样,对同一点P(xp,yp,zp)以右视点Rcop为投影中心,投影在z=0的x-y投影平面产生的投影点为Psr=(xsr,ysr),则有:
xsr=(xp+zp×e/2)/(d+zp) (8.19)
ysr=yp×d/(d+zp) (8.20)
假定我们已经计算出左眼视图的投影点,那么右眼视图的投影点与前者具有相同的y轴纵坐标。且x轴坐标满足
xsr = xsl + e [zp/(d+zp)] (8.21)
上述算法仅利用了标准投影变换和平移(d/2,或-d/2)变换,这一功能可以用硬件加以实现,从而可以大大提高运算速度。
8.4.2基于相关性原理的立体图光线跟踪算法
8.4.3快速全息图象的成像方法
这二小节不介绍。
8.5 三维场景装配技术 这一节不介绍。
补充内容:
虚拟现实中图像计算中常用的矢量运算 及Open GL简介
矢量运算
矢量运算坐标的平移和旋转等都与矢量的运算有关。这里再重新介绍一下有关的运算方法和概念,其主要目的是复习和加强一下我们学过的这些矢量运算方法,并了解在图形图像的计算中的一些应用。
二维矢量
一个二维矢量是一条有大小和方向的直线。矢量由它对XY原点的偏移来定义。例如,一个矢量被定义为(1,1)意味着它有一个端点在(0,0),而另一个端点在(1,1),还表示它有着长度为1,方向为45°等一系列的属性。一个矢量的长度是它的两个分量的平方和的平方根。例如,一个矢量为(10,10),它的长度是14。
二维矢量的加减法
对二维矢量进行加减运算时,对其各个分量进行相应的操作:
,则
标量乘法
当一个二维矢量乘以一个标量时,应将两个分量都乘以此标量:
,则
点积(点乘)
点积是两个二维矢量的一种特殊乘法,产生一个常数,两矢量点积是两矢量相应分量乘积的和:
, ,则
直线的二维矢量表示
直线可由二维矢量的差及标量乘法表示:
,
若是从(0,0)指向一点的矢量,该点在直线PQ上,则将是的标量乘积。
,
三维矢量
三维矢量是三维空间有着大小和方向的一条直线,一个三维矢量是由它对XYZ原点的偏移量来定义的。
例如,一个矢量被定义为(1,1,1)表示它有一个端点在(0,0,0),而另一个端点在(1,1,1),被定义为(1,1,1)的矢量将有大小为1、45°右偏角、向上仰角45°等一系列属性。再如一个矢量为(-1,1,1),将有375°右偏角,和向上仰角45°等属性。三维矢量的长度是它的三个分量平方和的根。如矢量(10,10,10)的长度为17。
三维矢量的加减法
对三维矢量进行加减运算时,对这两个矢量的各个分量进行相应的操作:
, ,则
例如:
=(2,1,7), =(3,2,-5) 则:
标量乘法
当一个三维矢量乘以一个标量时,应将该矢量的每个分量都乘以此标量:
,则
例如:
点积(点乘)
三维矢量的点积是一种特殊乘法,结果也是产生一个常数,两个三维矢量的点积是各矢量相应分量乘积的和:
,
则
若两矢量之间的夹角在0°~90°之间,那么点积将为正值;若夹角在90°~180°之间,则点积为负值。余弦和反余弦可用来计算两矢量间的夹角:
,
叉积(叉乘)
两个三维矢量叉乘的结果是与这两个矢量所在平面垂直的另一矢量。如下所示:
, 则
对单位矢量,有:
例如:如果 ,
则:
两个矢量间的点积和叉积在三维浓淡的计算(光照计算)以及消除背离面的计算(即软件计算消除隐藏面)等方面是很重要的。这里还要强调的是,两个矢量的叉乘是不能交换的。
和 得到的这两个矢量的方向相差一个符号,即方向相反。
坐标系
一般虚拟现实VR的坐标系
在一般的VR系统中,大多采用如下的右手坐标系,为了方便和统一起见,绝大多数的坐标系(包括平面坐标系)都采用右手坐标系:举起右手,将全开的手掌朝向面部并将手指向上,将大拇指指向右方,食指向上。弯曲中指使之指向面部,弯曲其余两个手指到手掌心。这样就创建了一个右手坐标系,大拇指指示的方向是+X,食指指向+Y,中指指向+Z。掌心为原点(0,0,0)。见下图
一个典型的三维变换包括下面6个坐标系:
对象坐标系
对象坐标系是XYZ坐标用来定义在三维体素的基本形状和大小。如长方体、球体、圆柱体、圆锥体、楔形体等。对象坐标描述对象空间(即物体本身)。
结构坐标系
结构坐标是XYZ坐标用来定义组成一个大的结构的三维体素在这些三维元组中的地位。结构坐标描述结构空间,一般用作层次变换。
在变换子序列中的一个结构被当作单独一个三维体素来处理。层次造型可以通过将三维体素彼此接触来构造复杂的三维体。这些三维体被称为结构、组合体或子组合体。层次坐标可包含可弯曲的连接。这是可能的,因为一些实体(后裔)的XYZ坐标定义成同一结构中其它元(祖先)的位移。有交点或连接部分的实体称做连接实体。
世界坐标系
世界坐标系是XYZ坐标用来描述应用程序所使用的三维世界中一个实体(或结构)的特定位置或角度。世界坐标描述世界空间,一个三维体在世界空间中从一个定点移到另一点,称作平移;一个元在世界空间转到另一方向称为旋转。
照相机坐标系
照相机坐标系是XYZ坐标。用来定义一个实体与照相机相关的位置和方向。照相机坐标描述照相机空间。照相机坐标指明实体在照相机中是怎样的状态(形状)。
图像平面坐标系
图像平面坐标是XY坐标系。用来表示当一个二维平面插入到照相机与实体之间时,三维实体在照相机中是怎样的。图像平面坐标描述图像平面空间,图像平面空间是设备独立的,因为它可以落到任何取值区间。移动图像平面离照相机更远,就会在图像平面中获得更大的区域。图像平面坐标的另一种叫法为视平面坐标。
光栅坐标系
光栅坐标系是XY坐标系,它由图像平面坐标系缩放以适应应用程序视口大小后产生的。光栅坐标系描述显示器空间。一些程序员把光栅坐标看作显示器坐标。光栅坐标是设备相关的,因为它们只适合于特定的视口。光栅坐标系又称为屏幕坐标系。
OpenGL简介
OpenGL(Open Graphics Library)接口目前是由几百个过程与函数组成,用以支持高质量(高分辨率、全彩色)三维图形图像的生成。最初是SGI公司为其图形工作站开发的独立于窗口系统、操作系统和硬件环境的图形开发环境。其主要目的是将用户从具体的硬件系统、窗口和操作系统中解脱出来,只要按照OpenGL规定的格式书写应用程序就可以在任何支持该语言的硬件平台上执行。目前SGI、Microsoft、Intel、IBM等很多公司都支持OpenGL。包括PC机上的Visual C/C++都支持OpenGL。
OpenGL图形操作基本步骤原理
1. 图象生成步骤
2. 坐标系中目标几何外形描述数据
目前绝大多数图象生成系统的几何是用三角形来描述的。很重要的一个原因是三点共面。由顶点表和面表构成。面表中的点的顺序必须是按逆时针排序。(有时还需要法向量表,同时也要化为单位向量的形式。)按数据结构建立这些表。(对C语言来说,就是用struct)。
在一般的VR系统中,一般三维物体(对象)多采用的多边形表面的构造生成方法(而且多采用三角形):设给定对象的几何数据描述为(点表和面表):
在一般的VR系统中,一般三维物体(对象)多采用的多边形表面的构造生成方法(而且多采用三角形):设给定对象的几何数据描述为(点表和面表): Polihedron={VertexList,FaceList};
其中: VertexList={V1,V2,……Vn}; V1=(x1,y1,z1), V2=(x2,y2,z2), …… Vn=(xn,yn,zn) FaceList={ front={…},right={…},bottom={…} };
描述物体的建模现在一般都用建模工具软件来完成。例如SGI工作站上的MultiGen软件建模工具软件是一种很好的工具软件(该软件也有PC机版)。
3.透视投影(perspective)与剪取(clipping)
按三角形相似有 ,同样 ;这样就得到了一个点在屏幕坐标系中的位置。
Windows NT下的OpenGL函数类型和函数名
Open GL实际上是一种用户开发图形系统的一个软/硬件接口,包括100多个图形函数使用者可利用这些函数建立三维模型和进行三维实时交互。
这些函数都按一定的格式命名:
(1)OpenGL实用库函数 43个函数,每个都以glu开头;
(2)OpenGL辅助库函数 31个函数,每个都以aux开头;
(3)Windows专用库函数(WGL)6个函数,每个函数以wgl开头;
OpenGL的基本功能
OpenGL的基本功能主要包括:
1)模型绘制;
2)模型观察;
3)颜色模式的指定;
4)光照运算;
5)图像效果增强;
6)位图和图像处理;
7)纹理影射;
8)实时动画;
9)交互技术;
OpenGL建模
齐次坐标(Homogeneous Coordinate)
在OpenGL的空间直角坐标系中,任意一点都可用一个三维坐标矩阵[x,y,z]表示。如果将该点用一个四围坐标的矩阵[Hx,Hy,Hz,H]表示时,则称为齐次坐标表示法。在该齐次坐标中,最后一维H被称为比例因子。
在OpenGL中二维点都被看作是三维坐标点,所有的点都用齐次坐标来描述,统一作为三维齐次点来处理。每个齐次点用一个向量(x,y,z,w)表示,其中四个元素全不为零。齐次点有以下性质:
1. 如果实数a非零,则(x,y,z,w)和(ax,ay,az,aw)表示同一个点,这就类似于x/y=(ax)/(ay)。
2. 三维空间点(x,y,z)的齐次坐标为(x,y,z,1.0),二维平面点(x,y)的齐次坐标为(x,y,0,1.0)。
3. 当w不为零时,齐次坐标点(x,y,z,w)即三维空间点坐标(x/w,y/w,z/w);当w为零时,齐次点(x,y,z,0.0)表示此点位于某方向的无穷远处。
点(Point)
在OpenGL中用浮点数表示的点称为顶点(Vertex),所有顶点在OpenGL内部计算时都作为三维点处理,用二维坐标(x,y)定义的点在OpenGL中默认z=0。并且所有顶点坐标都用齐次坐标(x,y,z,w)表示,如果w不为0.0时,这些齐次坐标表示的顶点即为三维空间点(x/w,y/w,z/w)。一般,当w缺省时为1.0。
线(Line)
在OpenGL中,线代表线段(line segment)。有闭合与不闭合之分。
多边形(Polygon)
在OpenGL中,多边形是由一系列线段依次连接而成的封闭区域。这些线段不能交叉,区域内部不能有空洞,但必须是凸多边形。
OpenGL变换
从三维空间变换到二维
三维空间的物体要在一个平面上显示出来,这类似于用照相机照相,对比如下:
1.设置相机 视点变换
2.调整物体位置 模型变换
3.调焦拍照 投影变换
4.冲印相片 视口变换
OpenGL的视点坐标系和世界坐标系
三维图形显示流程
上面所说的视点变换和模型变换本质上是一回事,都是计算机图形学中的几何变换,即点、线、面(多边形)从一个坐标系中(的值)变换另一坐标系来表示,总体来说就是平移变换和旋转变换。在OpenGL中都有相应的函数进行平移和旋转变换。平移变换相当于矩阵加法,旋转变换相当于矩阵的乘法。
投影变换
投影变换的主要目的是把三维图形变换为二维图形
正射投影(Orthographic Projection)
OpenGL中也提供了两个正射投影函数,也就是我们工程制图中的正射投影方法,这种方法也用于机械的计算机辅助设计。
透视投影(Perspective Projection)
透视投影符合人们的生理和心理习惯,即物体是“近大远小”。OpenGL提供了两个透视投影函数。通过透视变换可将三维空间的图像变换到二维平面(即我们的屏幕)。
剪取变换和视口变换
剪取变换和视口变换也是OpenGL提供的变换,这里不再介绍。
OpenGL颜色
OpenGL使用红绿蓝的RGB(Red,Green,Blue)颜色。
颜色可以用不同的方法表示出来:RGB、CMYK、HSL(HSV或HIS)及YUV等。计算机的CRT产生颜色的原理不同于绘画或印刷中的颜色。它是由三种不同颜色的光相加融合而生成的。
RGB模型和CMYK模型
这里的图就是通常采用是所谓的三基色相加原理,即红绿蓝的RGB(Red,Green,Blue)原理。打印机和印刷技术中是使用CMYK(Cyan Magenta Yellow Black)相减色原理。
RGB彩色空间和CMY彩色空间表示法: RGB立方体和CMYK立方体。
目前常用的还有YIQ、和YCrCb彩色空间模型。YIQ用于NTSC彩色电视制式,YUV用于PAL彩色电视制式,YCrCb则多用于计算机的显示器。
在OpenGL中还提供了颜色模式,主要有RGB模式和颜色索引模式。
OpenGL光照
OpenGL提供简单光照模型的。当光照射在物体表面上时,会出现三种情况。光可以通过物体表面向空间反射;对透明物体还可以有一部分光透射;另外有一部分光被物体表面吸收。这三部分只有反射光和透射光能够进入人眼产生视觉效果。简单光照模型假定环境由白光照射,只考虑被照明物体表面的反射光。并且一般认为反射光由环境反射、漫反射和镜面反射构成。这里不再多介绍。{几个词的英文名:环境光(Ambient Light),漫反射光(Diffuse Light),高光(Hight Light)}
OpenGL纹理
纹理映射(Texture Mapping)是较好的、有真实感的图形图像系统必须有的功能。OpenGL执行的纹理映射所需的步骤有:
·定义纹理;
·控制滤波;
·说明映射方式;
·绘制场景给出顶点的纹理坐标和几何坐标;
*注意:
纹理影射只能在RGBA模式下执行。OpenGL还提供了融合(Blending)、抗混叠(Antialiasing)、雾等特殊效果的功能,这可以为用户的虚拟环境提供一个更好的效果。这里不再多说。
VRML简介(这部分是9﹒1﹒4的内容)
Internet是国际性的计算机互连网络,特别是后来的WWW(World Wide Web)是Internet上产生和发展起来的。如果说超文本标记语言HTML(HyperText Markup Language)使你能够为Web建立文本文件,为WWW网增加了二维界面;VRML为WWW增加了三维世界功能。虚拟现实建模语言VRML是Virtual Reality Modeling Language(M也曾写为‘Markup’)的缩写。使用VRML使你能够在Internet上设计自己的三维虚拟空间。
VRML的设计是从在Web上欣赏实时的3D图像开始的。
VRML浏览器,既是插件,又是帮助应用程序,还是独立运行的应用程序,它是传统的虚拟现实中同样也使用的实时的3D着色引擎。这使得VRML应用从三维建模和动画应用中分离出来,在三维建模和动画应用中可以预先对前方场景进行着色,但是没有选择方向的自由。
VRML提供了6+1度的自由,你可以沿着三个方向移动,也可以沿着三个方位旋转,同时还可以建立与其他3D空间的超链接。因此,VRML是超空间的。
如何操作VRML:
主要是下面一些软件之一的安装和浏览器的使用:
(1)Netscape Live 3D
(2)SGI Cosmo Player
(3)Netscape Live 3D
以Live 3D为例:
正确装完Netscape Navigator后,在Netscape \ Navigator目录下应有一个Live 3D的目录,里面包含了Live 3D的主要部分(如api.dll,live3d.dll),同时在Netscape \ Navigator \Program \ plugins 目录下,还有npl3d32.dii、npl3d32.zip。
1.VRML的发展
1995年6月份正式提出。得到SGI、Microsoft、IBM、Apple、Oracle、AutoDesk、Macromedia、Adobe等计算机公司的支持。VRML现有两个版本,即VRML1.0和VRML2.0
2.VRML的作用
VRML使得信息(包括与其他Web内容相关的信息)能够在一个交互的三维空间中很容易被表达出来。VRML能在PC机包括苹果机及多种工作站平台上播放。VRML是节省带宽的、复杂的交互形式的三维空间的描述。
当用户在互连网中漫游且当用户浏览器通过一个“VRML”站点时,它会知道要装入一个内嵌的VRML浏览器。VRML文件是以扩展名﹒wrl,也是虚拟空间的文本性描述。
除了关于几何建模等有关图形图像方面的有关描述外,VRML还有对纹理映射、细节等级LOD、视点控制、声音、传感器、光照、雾、创建脚本等诸多功能支持。
3.VRML的浏览器
VRML浏览器主要有SGI(Silicon Graphics Inc)公司的Cosmo Player,Sony公司的Community Place,Intervista公司的World View,WREAM公司的Wirl、Dimension X公司的Liquid Reality等。
4.VRML的开发和应用
科学计算可视化——分子结构、三维流场、三维电磁向量场、天文学三维星系显示等。
视景仿真——可用于飞行仿真,也可用于旅游景点的介绍和浏览等。
教育领域——网络的三维远程教育系统。如细致的三维昆虫模型等。
文化艺术——在Internet上已有许多虚拟艺术馆,可以创造现时主义的三维场景,也可以产生超现实主义作品。
工程应用——可用于CAD领域、工厂流水线可视化仿真。
房地产业——房地产商可进行虚拟房屋建筑的介绍、浏览和广告。
商业金融——三维网络超市的商品展示、美国TIS(Transaction Information System)实时三维股票信息显示。
网络游戏娱乐——如Yahoo网站的VRMLChess。VRML滑雪场场景等。
虚拟现实技术
第九章虚拟现实系统的开发环境及系统评估
第九章 虚拟现实系统的开发环境及系统评估
虚拟现实系统的设计就是利用各种先进的硬件技术及软件工具,设计出合理的硬、软件系统结构及交互手段。显示器、跟踪器是产生沉浸感的关键设备,而软件则用来创建和运行虚拟环境,使参与者能交互地考察该系统生成的虚拟世界。可见,任何一个虚拟现实系统的设计都是为了达到两个目标:即参与者具有“真实”的体验,另一个就是要提供方便的、丰富的,基于自然技能的人机交互手段。
VR系统是一种极为复杂的人机交互系统,它不是把多种技术(如各种传感器技术,数据手套、数据衣等)简单地叠加,而是要用多种设备集成为一个完整的、协调一致的、复杂的VR系统,要考虑多种系统的协调综合效果,还要考虑视、听、触、力、姿态、运动等生理和心理因素。设计一个好的VR系统要对单个的、集成的有关参数进行全面的和综合的分析、评估。
9.1 虚拟现实系统开发的支撑软件
VR编程需要程序员具备实时系统、面向对象语言、网络、造型、多任务褚方面的知识,而具有这些知识的人员又可能不了解应用领域(如医药、建筑、金融等)方面的知识。解决这些矛盾的唯一可靠办法是最大限度地利用实用的和有效的VR软件平台和软件开发工具,也有利于提高VR系统开发的效率。
VR系统开发工具能帮助用户尽快地建立模型,将自然的三维交互综合到模型和实时运行系统中。VR开发的工具软件是专为VR系统设计的面向对象的函数的可扩充库。面向对象的设计方法极大地简化了复杂世界的程序设计难度。库还可以扩充,开发者可专注于编制专门的应用模块,而且使用相同的模拟核心。
VR开发工具共享的另一个重要性质是硬件独立性。编写的函数使用各种硬件平台,而且本质相同。可通过高层函数的专门硬件来实现,而低层“转换器”辨别运行时的具体I/O工具。这对于把一个应用从一个平台转移(或移植)到另一个平台上去是很有用的。
现有的开发工具大致可分为三类:三维建模软件、实时仿真软件以及与这两者相关的函数库。
所有的工具软件都支持某种网络格式(内置的或可选择的),并允许并行或分布式处理以及多用户交互功能。这样的一组人员同时工作可提高系统开发的效率。下面介绍的开发工具都支持CAD 3D标准数据交换文件格式(DXF和其它格式)。所有的VR工具软件都有内置的通信驱动器,是为了普遍使用的I/O工具(三维鼠标、三维跟踪仪等)准备的,高端软件包也支持数据手套(Data Glove和Cyber Glove)。
现在市场上能见到的VR高级软件开发工具有:World Tool Kit——WKT、VC Tool Kit——VCT、Cyberspace Developer Kit——CDK、Virtual Reality Tool Kit——VRT3、Mercury、Virtual Reality Distributed Environment and Construction Kit(VR——DECT)等。
9.1.1 WTK工具
World Tool Kit,WTK是美国Sense 8公司开发的VR应用工具软件。可运行于包括PC机在内的各种硬件平台。WTK是用C语言开发的面向对象的VR开发函数库,最新的2.1版包括650个函数。还提供了大量的数学函数来管理对象的动态行为和处理三为操作任务。
1.WTK的特点
WTK是基于应用的系统工具,一般由主机、WTK库、C编译、3D造型软件包、图像捕获硬件/软件、诸如Paint BOX的位置编辑软件等组成》。
(1)可提供650个C语言库函数。因此能在较短的时间内建立起实时三维图形图像的应用系统。如果只是简单的预演,只要写20行左右的编码就能实现。
(2)可以实时、高速地将纹理粘贴在三维对象的表面上。具体地说,收纳于CD—ROM上的图像单元(1100种以上的纹理,如木纹、大理石花纹、各种树木等图像的纹理数据文件)和来自摄象机的画像作为静止画面,取出并粘贴到对象的表面上去。所以它能简便地对三维空间的对象任意进行设计。
(5)支持VR系统常见的虚拟现实外部设备——头盔、跟踪系统、空间球、等提供支持。对用户在系统中的特殊设备,也可以利用WTK很容易开发出来并组合应用到VR系统中去。
2.WTK的主要功能