飞行器虚拟现实仿真的研究
作者:王昊鹏(空军航空大学,130022,吉林长春)
E-mail:wingrocc@email.jlu.edu.cn
摘 要:随着了学技术和Internet的发展,以VRML(虚拟现实建模语言)为代表的虚拟现实技术正在日益受到广泛的重视。本文讨论了利用VRML进行飞行器三维构型的方法,使其在因特网浏览器进行三维全景浏览,从而实现飞行人员针对飞行器的动态、交互的仿真训练。
1.引 言
虚拟现实又称“灵境”技术,它的提出可以追溯到二十世纪八十年代。虚拟现实技术综合了计算机图形技术、计算机仿真技术、遥感技术和传感技术等诸多领域,使人们可以进入一个计算机生成的逼真的三维虚拟环境中。
二十世纪的今天,虚拟现实技术已经渗透到军事生活的方方面面,并在军事领域中发挥着月来越大的作用[1]。如:高新技术武器的研制、开发、论证、评估及预测,虚拟军事地图,虚拟军事医学、救治,虚拟远程控制机械军事装备等都是虚拟现实技术在军事中的典型应用。特别是虚拟现实技术在高新技术武器(如飞行器、导弹等)的研制、开发及讨论方面的应用更是前景广阔。
虚拟现实建模语言(Virtual Reality Modeling Language,简称VRML)是一种基于WWW的具有一定规范的描述性格式语言,它吸取了面向对象的优点,可以生成、修饰三维实体对象[2]。VRML改变了原来WWW的简单、交互性差的弱点,将人们的运动行为作为浏览的主体,提供给用户虚拟的三维空间。本文将以VRML技术为基础,研究并实证对飞行器进行三维仿真构型的方法[4]。
2.VRML实现三维仿真的工作方式
1996年8月发布的VRML 2.0增强了交互性、动画功能和编程功能等。VRML 2.0的主要功能大体可以分为以下两大部分:
(1)创建、修饰三维实体;
(2)对模型对象编程与外部进行消息交递以实现交互功能。
根据VRML 97规范,目前VRML 2.0支持三种水平上的编程方式:第一种是利用内嵌的VRML Script接口节点中的描述性语言进行仿真建模;第二种方式是利用JAVA Script动态生成VRML三维场景和实体对象(仿真的事件处理仍然用VRML Script接口节点完成);第三种方式是通过VRML 2.0的外部编程接口API进行开发,通过发送或者读取三维场景中的节点的事件消息,使VRML 2.0构建的虚拟空间与外部网络空间上的其他对象沟通,进而提高VRML的可用性[3]。
利用VRML构建的三维仿真场景和实体以VRML文件(*.WRL)形式存在。VRML文件使用ASCII或UTF8字符,与其他技术相比,其占用的存储空间很小,这不仅大大加快了3D场景和实体在网络上的传输速度,而且使用户在PC机上就可以方便、快捷地浏览和研究3D场景,实现跨平台发布和多用户网络间交互操作。VRML的工作流程如图1所示。
图1 VRML的工作流程示意图
3.飞行器的三维虚拟模型的建立
对于简单的三维实体,VRML支持多种规则几何体结构的构型,包括立方体、圆锥体、圆柱体和球体等。这些规则几何体可以由VRML的geometry节点中的基本几何节点box、cone、sphere、cylinder等实现。利用VRML中的Extrusion节点,可以创作较为复杂的三维实体,其变化的弹性较大,控制Extrusion节点外形的字段分别是crossSection和spine。crossSection字段控制断面形状,形成二维轮廓。spine字段是一个三维路径,通过crossSection定义好的断面、面的中心,沿着此路径延伸成三维实体。crossSection字段和spine字段在三维构型中的实现过程如图2所示。
图2 crossSection字段和spine字段三维构型实现过程
3.1 飞行器虚拟模型的建立
飞行器是典型的复杂三维仿真对象,其构型不只是简单的三维几何体。因此,单纯的使用代码来建模是件十分繁杂的工作。所以,针对飞行器的造型,通常需要