论文部分内容阅读
虚拟现实是在上个世纪60年代才开始出现的计算机应用技术,并于90年代得到飞速的发展。虚拟现实是一个涉及面广的复杂技术。它结合了计算机图形学、人机接口、人机交互、人工智能、心理学、三维声音学等多个学科及技术。虚拟现实具有沉浸感、交互性和思想性三个主要特点:所谓沉浸感,是指用户感到作为主角存在于虚拟环境中的真实程度。理想的虚拟环境应该达到使用户难以分辨真假的程度;所谓交互性,是指用户对虚拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性);所谓思想性,则是指虚拟现实不仅仅是一个媒体,一个高级用户界面,还反映了设计者的思想,是心灵的工具。正是基于虚拟现实的这三个特点,虽然其产生至今不过短短40年的时间,但是已经广泛的应用于军事、医学、教育、文化及艺术等诸多领域。本文所设计实现的空中机械师虚拟现实训练系统就是一个将虚拟现实技术应用到空军高新技术装备日常训练中的科研项目。该项目不仅实现了对虚拟现实系统硬件设备平台的整合,还对虚拟现实系统的软件实现进行了有益的探索。我们首先通过对国内外现有虚拟现实可用设备的研究分析,最终确定的硬件系统,包括:头盔、数据手套、空间定位系统、主控系统、实时图像系统、3D音响系统等。其中,头盔、数据手套和空间定位系统均从国外直接购买。主控系统、实时图像系统、3D音响系统则基于PC机开发实现。系统首先由实时图像系统产生虚拟飞机座舱的立体图像,输出到头盔显示系统实现立体显示,构成空中机械师操作的虚拟座舱空间场景;空中机械师通过立体视觉头盔、数据手套进行某一科目的虚拟操作时,空间定位系统实时地检测并计算出操作者的头盔和数据手套的实际空间位置,并输出手位和头位的数据,数据手套将检测到的手形状态变化通过计算机输出手形数据;头位、手位和手形数据送到主控计算机,进行人机交互、碰撞检测计算和控制,并把头位、手位和手形数据以及交互控制标志量传送到实时图像系统及3D音响系统;实时图像生成系统通过以太网接收到主控计算机的各种数据,实时地实现虚拟空间中的头位视点移动、手位移动、手形变化和座舱环境中虚拟物体的变化,并通过头盔实现立体显示;音响系统通过接收主控计算机的数据,产生<WP=50>立体音响输送到头盔耳机中使操作者在虚拟操作时有身临其境的感觉。虚拟现实训练系统的软件实现是本文的重点内容,它主要包括系统三维建模、主控系统、碰撞检测算法、实时图像生成系统、3D音响系统5个部分。1、系统三维建模是开发虚拟现实系统的一个必要步骤。除了首先要对系统的虚拟工作环境,即三维虚拟座舱环境进行建模外,还包括环境中的人机交互相关的油门、开关、仪表、信号灯等物体,特别是虚拟环境下人手的模型。为保证虚拟环境的逼真,所有物体模型均严格按照实际物体1:1的比例建立,纹理贴图则取材于真实物体的照片。另外为了进一步提高图像系统实时处理速度,我们还在建模过程中运用了Levels of Detail即细节等级处理技术。2、主控系统是整个虚拟现实系统的核心。它指挥协调并控制整个系统的工作。一方面,它与头定位系统、手定位系统、手形系统等外设相连,通过串口取得数据。另一方面,通过网络,主控系统还与实时图像系统和3D音响系统相连,协调它们之间的工作。主控系统包括:数据模型构造、碰撞检测、脚本编程和实时通讯等部分。其中,碰撞检测部分是虚拟现实系统的核心技术,一方面系统接收数据手套的状态参数,并将其转化为手的空间位置和轮廓,另一方面根据模型构造部分所创建的数据模型,判断两者之间是否发生碰撞。正是由于碰撞检测的重要性,本文也对碰撞检测算法进行了较多的分析。3、碰撞检测是实现虚拟现实技术的关键技术,我们在设计碰撞检测算法时,充分考虑了虚拟现实训练系统的特点:1、图像是按帧显示的;2、都是手与其它物体的碰撞;3、碰撞相关的物体结构相对简单。基于上述这些特点,我们采用了离散碰撞检测算法。对于需要进行碰撞检测的物体,如开关、按钮、油门、电门保险盖板等,我们采用CSG表示模型,即用一些基本体素球、圆柱体和长方体来表示这些物体。并对手进行简化,将手掌简化为长方体,各手指的指段简化为圆柱体。进行碰撞检测时,首先对场景中的物体进行过滤,取得手和物体的包围盒,判断包围盒是否相交,只对包围盒相交的物体进行详细的碰撞检测,由于对手和开关、按钮、油门等物体采用了CSG表示模型进行了简化,因此只需通过计算线段与线段、线段与面、线段与点的最小距离就可以进行碰撞检测。这种方法大大减少了碰撞检测的计算时间,满足图像实时显示帧数的要求。最后,对于离散碰撞检测算法所具有的穿越现象,本文采用了<WP=51>二分法对两帧之间的手形进行插值,取得两帧之间时手的位置,然后进行附加的碰撞检测,这样避免了在碰撞检测时漏掉一些碰撞。4、实时图像生成系统是利用OpenGVS应用程序开发工具包开发的。OpenGVS是面向对象的开发工具,我们将场景中的所有物体都定义为对象,由根节点开始,逐级扩展,形成树状结构,这样可以方便的对场景中的物体进行实时控制。5、3D音响系统采用微软公司的DirectX软件开发工具包中的DirectSound进行开发,DirectSound支持