飞行器虚拟现实仿真的研究
图3 利用3DS MAX对飞行器建模
3.2 VRML构造三维场景
在VRML中可以通过Group节点将一组相关的节点组合在一起,这样的一组节点在虚拟世界中通常是某个特定的空间场景。除夕之外,在VRML中还包括以下编组节点,它们分别是:Switch转换编组节点、BillBoard布告牌编组节点、Transform转换编组节点、LOD转换编组节点、Anchor读取文件编组节点、Inline读取文件编组节点和Collision编组节点。这些节点汇集在一起,即可建立三维仿真飞行器所在的虚拟场景空间。其基本的语法形式如下:
Group {
addChildren MFNode eventIn//输入接口,将指定的节点加到组的了节点列表中
removeChildren MFNode eventIn//输入接口,将指定节点从组的子节点列表中删除
children MFNode exposedField []//包含了该Group节点的子节点
bboxCenter SFVect3f field 0 0 0//包围以组子节点的包围盒的中心
bboxSize SFVect3f field -1 -1 -1//包围该组子节点的包围众在x、y、z方向的大小
}
根据以上语法形式创建的虚拟场景空间模拟效果如图4所示。
图4 虚拟场景空间模拟效果
3.3 与虚拟场景交互
利用VRML建立的三维仿真实体具有极强的真实感,而真实性的一个重要方法就是要允许用户和三维对象进行直接的交互。例如:用户对飞行器的仿真模型的动作方式不只是停留在“静观”上,而是要通过控制设备对三维仿真模型的各个角度、部件,甚至内部结构进行实时的动态交互。实现交互的一个基本方法就是使用VRML中的传感器节点。
所谓传感器节点,就是指一些能够感知用户各种操作的节点。VRML中提供的传感器节点包括:时间传感器Time Sensor、触摸传感器Touch Sensor、鼠标响应传感器Cylinder Sensor、鼠标运动转化传感器Plane Sensor、鼠标单击转化传感器Sphere Sensor、感知用户活动传感器Proximity Sensor和检测用户视野传感器Visibility Sensor。传感器节点的基本语法如下:
Sensor
{
Field Value //域值 Field Type //域值类型 Field Show //域值说明
}
4.应用举例
基于某战斗机模型资料,结合VRML、3DS MAX 6.0和JAVA Script等技术,可实现该飞行器虚拟现实仿真模型。模型所在VRML文件可以基于IE、NetScape、Maxthon浏览器进行全景的网上漫游。图5和图6是飞行器的虚拟现实仿真模型的实例。其中,图5是该飞行器模型局部浏览效果;图6是该飞行器虚拟现实仿真模型的全景浏览效果。
图5 飞行器模型局部浏览效果
5.结束语
本文通过虚拟现实技术的分析、讨论,提出了利用VRML语言对飞行器进行可视化仿真及虚拟现实仿真的实现方法。根据VRML语言在开发三维仿真方面的强大优势、虚拟现实技术