虚拟现实是多种技术的综合,包括实时三维计算机图形技术,广角(宽视野)立体显示技术,对观察者头、眼和手的跟踪技术,以及触觉/力觉反馈、立体声、网络传输、语音输入输出技术等。下面对这些技术分别加以说明。
实时三维计算机图形
相比较而言,利用计算机模型产生图形图像并不是太难的事情。如果有足够准确的模型,又有足够的时间,我们就可以生成不同光照条件下各种物体的精确图像,但是这里的关键是实时。例如在飞行模拟系统中,图像的刷新相当重要,同时对图像质量的要求也很高,再加上非常复杂的虚拟环境,问题就变得相当困难。
人看周围的世界时,由于两只眼睛的位置不同,得到的图像略有不同,这些图像在脑子里融合起来,就形成了一个关于周围世界的整体景象,这个景象中包括了距离远近的信息。当然,距离信息也可以通过其他方法获得,例如眼睛焦距的远近、物体大小的比较等。
在VR系统中,双目立体视觉起了很大作用。用户的两只眼睛看到的不同图像是分别产生的,显示在不同的显示器上。有的系统采用单个显示器,但用户带上特殊的眼镜后,一只眼睛只能看到奇数帧图像,另一只眼睛只能看到偶数帧图像,奇、偶帧之间的不同也就是视差就产生了立体感。
用户(头、眼)的跟踪:在人造环境中,每个物体相对于系统的坐标系都有一个位置与姿态,而用户也是如此。用户看到的景象是由用户的位置和头(眼)的方向来确定的。
跟踪头部运动的虚拟现实头套:在传统的计算机图形技术中,视场的改变是通过鼠标或键盘来实现的,用户的视觉系统和运动感知系统是分离的,而利用头部跟踪来改变图像的视角,用户的视觉系统和运动感知系统之间就可以联系起来,感觉更逼真。另一个优点是,用户不仅可以通过双目立体视觉去认识环境,而且可以通过头部的运动去观察环境。
在用户与计算机的交互中,键盘和鼠标是目前最常用的工具,但对于三维空间来说,它们都不太适合。在三维空间中因为有六个自由度,我们很难找出比较直观的办法把鼠标的平面运动映射成三维空间的任意运动。现在,已经有一些设备可以提供六个自由度,如3Space数字化仪和SpaceBall空间球等。另外一些性能比较优异的设备是数据手套和数据衣。
人能够很好地判定声源的方向。在水平方向上,我们靠声音的相位差及强度的差别来确定声音的方向,因为声音到达两只耳朵的时间或距离有所不同。常见的立体声效果就是靠左右耳听到在不同位置录制的不同声音来实现的,所以会有一种方向感。现实生活里,当头部转动时,听到的声音的方向就会改变。但目前在VR系统中,声音的方向与用户头部的运动无关。
在一个VR系统中,用户可以看到一个虚拟的杯子。你可以设法去抓住它,但是你的手没有真正接触杯子的感觉,并有可能穿过虚拟杯子的“表面”,而这在现实生活中是不可能的。解决这一问题的常用装置是在手套内层安装一些可以振动的触点来模拟触觉。
在VR系统中,语音的输入输出也很重要。这就要求虚拟环境能听懂人的语言,并能与人实时交互。而让计算机识别人的语音是相当困难的,因为语音信号和自然语言信号有其“多边性”和复杂性。例如,连续语音中词与词之间没有明显的停顿,同一词、同一字的发音受前后词、字的影响,不仅不同人说同一词会有所不同,就是同一人发音也会受到心理、生理和环境的影响而有所不同。
使用人的自然语言作为计算机输入目前有两个问题,首先是效率问题,为便于计算机理解,输入的语音可能会相当啰嗦。其次是正确性问题,计算机理解语音的方法是对比匹配,而没有人的智能。