性。设定导控与操作训练平台分离可方便系统扩充,使一个 导控台可控制多个操控台进行训练 。导控台的主要功能 为:①显示系统主界面:②进行火控系统架设与撤去的仿真训 据库以供实时视景仿真时应用。 战场背景的天空由一个称为天空盒的方盒来模拟,这个 天空盒的各个面上贴有表示天空的图片。用于天空背景的图 片有特殊要求,即:4面图的边与顶面图的边相连,4面图前后 相连,图片大小为2的N次方(32、64、128、…)。生成背景如图 3所示。 练:⑧设定操作训练平台的训练课目和参数,评定操作成绩。 1.2操控台 操控台由操控台主机、Tv、PPI显示器、指定球、单柄操纵 杆、单片机及其外围接口设备等组成,图2为操控台实物图。 其中,TV显示器主要显示基于虚拟现实技术构建的仿真场 景、电子十字线、TV跟踪门及主要战术诸元等;PPI显示器上 显示了表示搜索与跟踪目标航迹、指定标记、提前点等实时动 态符号;通用轨迹球来代替原系统的目标指定球;高性能的游 ●墨 戏摇杆代替原系统的单柄操纵杆;单片机组成通信板、接口 板,用于控制和响应操控台上指示灯、按键、旋钮、报警器和灯 阵。其主要功能为: (1)控制外设实时显示由导控台传输过来的各训练课目的 内容; (2)对操作人员的操作做出响应; (3)记录操作人员的操作动作和时机,作为对操作人员操 作过程优劣评判的依据。 TV显示器PPI显示器 单柄操纵杆 指定球 图2操控台实物 2软件仿真的实现 系统软件由导控软件和操控软件组成。导控台主机软件 实现了系统的仿真训练和成绩评定的功能。操控台主机软件 有3个线程:第1个是主要完成仿真平台的TV监示器场景仿 真,第2个线程是主要完成PPI显示器的视景仿真,第3个线 程用于监视自身的串行通信,实时发出显示命令,响应通信板 传回的各接口板上采集到的操作手对按键、键盘的操作动作, 并对这些动作记录、备案,以实现操作成绩的评定。 在软件仿真中,虚拟现实的关键技术主要包括建模技术、 视点控制和高性能的计算处理技术 。虚拟现实建模是以几 何实体建立虚拟环境,几何实体可采用计算机图形学技术绘 制,也可用已有的建模工具如3DS MAX建立模型,然后以统 一数据格式输出,进行实时渲染。建立虚拟现实模型后,通过 加入事件响应,实现移动、旋转视点变换等操作,从而实现虚 拟环境的构建。 所有软件在操作系统Windows NT Workstation4.0下开发 及运行。编程语言为Visualc++6.0,动态模型用ANSIC编写, 虚拟现实支持工具软件为World T0ol Kit forNT、OpenGL。 2.1战场环境仿真 战场环境的生成应该以假定的火控系统配置点为基准, 采用数字化图像处理过的图片作为战地背景数据存入视景数 图3天空背景及组合 创建天空盒的部分程序代码如下: void baiscobj::CreateSkyBox(int a,int wi,int he,int le)//显示 天空 { floatwidth=MAP*wi; //天空盒宽 lfoat height=MAP*he; //天空盒高 lfoat length=MAP le; //天空盒长 lfoatX=MAP—width/2; //天空的位置X lfoatY=MAP/a—height/2; //天空的位置Y lfoatz=一MAP—length/2; //天空的位置z texture(gcactus[2]); //设置BACK贴图左 glBegin(GL—QUADS); //多组独立填充四边形 glTexCoord2ff1.of,o.o0;glVertex3ffx+width,y,z); glTexCoord2ff1.Of,1.o0;glVertex3ffx+width,y+height,z); glTexCoord2ff0.Of,1.o0;glVertex3f(x,y+height,z); glTexCoord2ff0.of,o.o0;glVertex3f(x,y,z); glEnd0; texture(gcactus[3]); //设置FRONT贴图右 glBegin(GL—QUADS); //多组独立填充四边形 glTexCoord2ff1.of,o.o0;glVertex3f(x,y,z+length); glTexCoord2ff1.Of,1.o0;glVertex3f(x,y+height,z+length); glTexCoord2ff0.of,1.o0;glVertex3ffx+width,y+height,z+ length); glTexCoord2ff0.of,o.o0;glVertex3ffx+width,y,z+length); glEnd0; texture(gcactus[4]); //设置TOP贴图顶 glBegin(GL_QUADS); //多组独立填充四边形 glTexCoord2ff0.Of,1.o0;glVertex3ffx+width,y+height,z); glTexCoord2ff0.of,o.o0;glVertex3ffx+width,y+height,z length); glTexCoord2f(1.of,o.o0;glVertex3f(x,y+height,z+length); glTexCoord2f(1.Of,1.o0;glVertex3f(x,y+height,z); glEnd0; texture(g_cactus[5]); //设置LEFT贴图前 glBegin(GL__QUADS); //多组独立填充四边形 glTexCoord2f(1.Of,1.o0;glVertex3f(x,y+height,z): glTexCoord2ff0.Of,1.o0;glVertex3ffx,y+height,z+length); glTexCoord2ff0.of,o.o0;glVertex3f(x,y,z+length); glTexCoord2ff1、of,o.o0;glVertex3ffx,y,z); -——935-—— 维普资讯 http://www.cqvip.com glEnd(); texture(gcactus[61); _件格式 .c,然后再以显示列表的方式建立对象的三维模型 。 //设置RIGHT贴图后 //多组独立填充四边形 3DS MAX是Autodesk公司推出的以Windows NT为平台,基 于OpenGL的三维造型和动画制作软件,在这里我们使用的是 它的三维造型功能。Wcvt2pos是一款强大的矢量图形处理软 件,它可以识别3DS、DXF、TTF、OBJ、NFF、RAW、GEO、TPO等 文件格式,以DXF、ASC、NFF、POV、1NC、PSB、RAW、TPO、 WRL、OBJ、C等格式输出。 glBegin(GL QUADS); glTexCoord2f(0.of,o.Of);glVertex3fix+width,y,z); glTexCoord2fil.of,o.Of);glVertex3f(x+width,y,z+length); glTexCoord2fil.0f,1.Of);glVertex3fix+width,y+height,z+ length); glTexCoord2fi0.0f,1.Of);glVertex3fix+width,y+height,z); glEnd(); } 在OpenGL中飞机的绘制可以放在一个显示列表中,一 是因为飞机的绘制是独立的功能模块,宜于单独管理;二是飞 机的绘制工作量比较大,应用显示列表可以优化程序性能,提 void baiscobj::texture(U1NT textur) ∥设置贴图滤波 {glBindTexture(GLTEXTURE2D,textur);∥设置贴图 __高效率。根据上面讲述的 .c提供的数据完成飞机绘制任务 且构建OpenGL显示列表算法 如下: glTexParameteif(GLTEXTURE2D,GLTEXTURE____ WRAPS,GL__CLAMP); glTexParameteri(GLTEXTURE2D,GL_TEXTURE__ WRAP_T,GL__CLAMP); //缩小采用线性滤波 //glTexParameteri(GL_TEXTURE2D,GL__TEXTURE MIN_FILTER,GLJLINEAR); //放大采用线性滤波 glTexParameteri(GLTEXTURE2D,GLTEXTURE____ MAG_FILTER,GL__LINEAR); glTexParameteri(GLTEXTURE__2D,GL_TEXTURE_ MINFILTER,GLLINEAR MIPMAP___NEAREST); } 战地环境中对地面的描绘使用了OpenGL中的曲面函数, 并贴以有山势图的地面。这里涉及到3个表地域的数组。 lfoatg_terrain[MAP_W MAP W113] ∥地域数据3维 intg_index[MAPJW MAP_W 2] //顶点数组l维 lfoatg_texcoord[MAP—W MAP W][2]//索引数组2维 地域数组是构成一个三维的曲面的数组。x、z两个分量 构成了一个平面,Y分量描述了所在面的高度。地域数据的 三维数组可以完全地记录构成曲面(包括起伏)的三维坐标点。 在计算机图形处理技术上,用一幅灰度图像来表示山势的高 低,定义白色为最高,黑色为最低,将从灰度图像中读出的对 应点高度赋给Y,从而在OpenGL场景中生成高低变化的地 表。实际上就是用灰度图来模拟等高线图,只要调入不同的 灰度图,就能生成不同的地表。生成的战场环境如图4所示。 一 图4战场环境仿真 2.2空中目标模型建立 空中目标几何模型的建立分成两个步骤:①在3DSMAX 中建立对象的三维几何模型,以3DS文件格式输出;②利用专 用图形格式转换软件KeithRule公司的Wcvt2pos,将3DS格式 存储的三维模型数据直接转化成C语言和OpenGL描述的文 ———936-—— glNewList(MAKEPLANE,GL_COMPILE) for(k=0;k<i;k++){ ∥由ii控制绘制全部三角形 glBegin(GL_POLYGON); ∥绘制由indices[k][0]、indices[k][1]、indices[k][21指定 的三角形 glNormal3v(normal[indices[k]【O]]); glVertex3v(vertex[indices[k]【O]】); glNormal3v(normal[indices[k]【1]】); glVertex3v(vertex[indices[k]【1]】); glNormal3v(normal[indices[kl【2】】): glVertex3v(vertex[indices[k]【2]】); glEnd0; } glEndList0; 在显示飞机图像时,只需使用命令glCallList(MAKE- PLANE)调用显示该列表即可。 2.3 PPI实时目标信息的综合显示 P型显示器进行工作时,主要分为3个过程:上电过程、扫 描过程和断电过程。在这3个过程中都存在有亮度的变化。 上电过程中有扫描线渐亮的过程,扫描过程中有长余辉现象, 断电过程中有扫描线渐暗过程。由于整个系统的视景都是在 OpenGL环境下画出的。而要扫描上面的过程,采用OpenGL 直接按扫描线颜色的画法,对上电过程和断电过程的模拟是 可以的,但在对余辉现象进行模拟时,由于雷达显示器是有一 定的底色的,但余辉由高亮度慢慢变为没有亮度时,依靠这种 直接的画法就不能够显示出我们想要的效果。所以要利用雷 达显示器的底色和余辉模型生成的HIS转化成RGB颜色所采 用的融合算法。图5为生成的PPI仿真显示图。 图5 PPI仿真显示 (下转第941页) 维普资讯 http://www.cqvip.com
ceStAXParser平均比Woodstox快13.32%,若支持名字空间,On— ceStAXParser平均比Woodstox快14.10%。 跎 鲫 厘 曾 蜷 琏 船 /。 5结束语 二 — —_/ /’ 本文对XML解析器的高效验证技术进行了研究,我们采 用了多项性能优化措施,包括属性验证的优化实现、元素验证 自动机的高效实现和基于统计的预测算法。性能测试表明, 在进行验证的条件下,OnceStAXParser2.0具有十分出色的解 析性能。下一步的工作包括在OnceStAXParser中增加对XML . / _,// / / 模式的支持。 选择型元素声明中的项数 一不进行预测; o・ 50%预测准确率;一60%预测准确率 参考文献: 一70%预测准确率;一80%预测准确率 图6不同项数下使用预测算法的性能 【l】Java Community Process,JSR 173:Streaming API for XML[S/ OL].http://www.jcp.org/en/jsr/detail?id=1 73/,2004. Test1.1对OnceStAXParser进行了性能测试。我们的硬件环境 【2】 World Wide Web Consortium,Document object model(DOM) 为Pentium42.8GHzCPU、l GDDR内存,操作系统为Windows 【S/0L].http://www.w3,org/DOM/,2005. XP Professional SP2,Java环境为J2SE 1.4.203。 【3】 Simple API ofr XML[S/OL].http://www.saxproject.org/,2004. 表3给出了OnceStAXParser与Woodstox在进行有效性验 【4】World Wide Web Consortium,Extensible markup language 证条件下的性能对比,为了排除偶发因素,我们对每一项测试 (XML)1.0(third edition)【S/OL】.http://www.w3.org/TR/REC— 都重复进行了7组,表中的数值代表了XMLTest1.1所定义的 xml/,2004. 事务吞吐量。其中,Non-NS表示不支持名字空间,NS表示支 【5】Ren Xin,Cao Dong—lei,Jin Bei—hong.An efficient StAX based 持名字空问,Test-l到Test-3的定义请参见文献【8】。 XML parser[C].Proceedings ofthe l lth Joint International Com— 概括而言,在进行验证的条件下,若不支持名字空间,On一 puter Conference(JICC),2005. 【6】 Codehaus,Woodstox【EB/OL】.http://woodstox.codehaus.org/ 表3验证条件下Once与Woodstox的事务吞吐量对比 Documentation,2006. 事务吞吐量 Woodstox Non-NS Once Non-NS WbodstoX NS OnceNS 【7】Apache,Xerces【EB/OL】.http://xerces.apache.org/xerces2-j/, Tbst.1 127.95 145.01 119.12 135.65 2006. Tbst 2 64.86 73.95 60.25 69 57 【8】Sun Microsystems,XML test v1.1【S/OL】.http://java.sun.com/ Tbst 3 33.05 37.22 30.69 34.66 performance/reference/codesamples/,2004. (上接第936页) 2000. 3结束语 张冠杰.“防空卫士”火控系统的体系结构【J】.火控雷达技术, 本仿真平台在设计上立足于成熟的计算机多媒体技术, 2001(9):l一5. 吸纳了先进的仿真设计理念,在硬件设计上尽量采用标准计 Luthi J,Berchtold C.Concepts for dependable distributed dis— 算机外设,以降低开发难度和生产成本,功能上除实现常规防 crete event simulation【C】.San Diego,CA,USA:SCS Europe, 空火控系统的训练课题外,还能根据需要进行连协同的部分 2000:59—66. 训练课题。 于海风,邢桂芬,张凯.虚拟现实技术在视景仿真系统中的应用 本平台经相关部队试用验证,获得了很好的实际效果,已 【J】.计算机工程与设计,2006,27(6):l108一lll0. 部分产品化投入使用,同时,为院校教学和部队训练提供了新 翁轶丛,倪苏云,陈宏民.OpenGL在AHMS仿真系统中的应用 的模式。 【J】.系统工程理论与实践,2001(1 1):107一ll 1. 参考文献: Mason Woo.OpenGL编程权威指南【M】.北京:中国电力出版社, 2001. 【l】 刘颖,朱元昌.通用雷达装备虚拟维修训练系统设计【J】_军械工 和平鸽工作室.OpenGL高级编程与可视化系统开发【M】.北京: 程学院学报,2004,l6(4):19—22. 中国水利水电出版社,2002. 【2】Distributed Simulation Technology Inc.GL studio users guide Dave Shreiner,Mason Woo.Jackie Neider,等.OpenGL编程指南 (version 1.04)[Z1.USA:Disrtibuted Simulation Tecnhology Inc, 【M】.5版.徐波,译.北京:机械工业出版社,2006.
因篇幅问题不能全部显示,请点此查看更多更全内容