基于OpenGL 的仿真可视化技术研究.docx
- 文档编号:23886979
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:11
- 大小:26.24KB
基于OpenGL 的仿真可视化技术研究.docx
《基于OpenGL 的仿真可视化技术研究.docx》由会员分享,可在线阅读,更多相关《基于OpenGL 的仿真可视化技术研究.docx(11页珍藏版)》请在冰豆网上搜索。
基于OpenGL的仿真可视化技术研究
第22卷第6期计算机仿真2005年6月文章编号:
1006-9348(200506-0158-03
基于OpenGL的仿真可视化技术研究
李文强,华祖耀
(国防科技大学机电工程与自动化学院,湖南长沙410073
摘要:
可视化仿真技术是计算机可视化技术和系统仿真技术相结合形成的一种新型的仿真技术,其最重要的应用之一就是进行虚拟战场环境构建,供军事演习与训练,这样不仅节省了开支,而且资源还可重复利用。
文章介绍了可视化仿真在各领域的重要性,详细阐述了可视化仿真的主要内容(原始数据、环境背景、仿真过程、仿真输出以及视点漫游,简单介绍了各方面的具体实现;并且结合某导弹联网训练模拟器,针对可视化仿真中最重要也是最困难的内容———环境背景,详细阐述了采用OpenGL和层次细节(LOD技术的战场环境渲染流程及方法,最后给出了场景的渲染结果。
关键词:
可视化仿真;层次细节;模拟器;渲染
中图分类号:
TP391.9文献标识码:
A
VisualSimulationTechnologyBasedonOpenGL
LIWen-qiang,HUAZu-yao
(NationalUniversityofDefenceTechnology,ChangshaHunan410073,China
ABSTRACT:
ThevisualsimulationtechnologyisanewtypesimulatingtechnologywhichincludesPCvisualizationandsystemsimulation.Oneofthemostimportantapplicationsisdesigningdummybattlefieldenvironmentfortrainingarmy,anditnotonlycansavemilitaryexpenditure,butalsocanbereused.Thearticleintroducestheimportanceofvisualsimulationinsomedomains,andexpatiatestheimportantcontents(originaldata,environmentbackground,simulationprocess,simulationoutputandviewportrambleofvisualsimulation,andintroducestherealizationofallaspectsbriefly.Besides,thepaperlinkingwiththecertainmissilesimulatorandaimingatthemostimportantanddif-ficultcontentinvisualsimulation-environmentbackgroundexpatiateshowtorenderthebattlefieldenvironmentwithOpenGLandLOD,andgivestheresultoftherenderedscenefinally.
KEYWORDS:
Visualsimulation;Levelofdetail;Simulator;Render
1前言
随着计算机软硬件的发展以及图形处理能力的增强,对仿真结果的可视化显示的要求也越来越高。
在工程设计领域,利用可视化技术可以实现虚拟样机、虚拟飞行和虚拟试验等,使工程设计人员可以提早发现设计中的缺陷,从而改善设计方案。
在军事仿真领域,可视化技术也具有非常广泛的应用价值和非常广阔的前景,如新武器的研制和装备,作战指挥模拟,武器的使用培训等都可应用可视化技术,这样不仅节省了开支,而且资源可重复利用。
2仿真可视化
仿真可视化,又称可视化仿真,在这里不做严格的区分。
主要的目的是给用户提供一个多视点、多角度、多层次观察仿真进程的可视化平台的人机交互环境,用户可以直观地修改各个仿真参数,系统可以根据修改的仿真参数可视化地显示出仿真结果。
因此,基于这个目的,可视化系统的设计人员应该尽可能地考虑到所有用户关心的可视化因素,这些因素就是研究的主要内容。
归纳起来主要包括以下几个方面:
2.1原始数据可视化
原始数据可视化就是把冗余无序的数据通过尽可能直观有序的方式表达出来。
例如为了实现导弹原始数据可视化,可以使用多个气动曲线(如推力曲线、升力曲线和阻力曲线来表示气动参数随攻角和马赫数的变化。
此外,为了对导弹有一个感性、立体化认识,还可借助多媒体技术手段,把导弹及其战术背景资料通过图片、文字、甚至声音等多种媒体信息表现出来。
2.2环境背景可视化
对可视化仿真来说,环境背景的可视化程度直接关系到
收稿日期:
2004-02-02
仿真的逼真程度。
根据可视化系统的对象不同,对于环境背景的可视化要求也不尽相同。
对于地面战场模拟来说,地面的景物如山脉、河流、建筑物、沙漠、海洋等必须作为可视化对象。
而对于一般的空战仿真来说,作战背景相对简单,只需对蓝天白云进行可视化即可,而地面的景物通常可通过生成空战背景图来衬托出作战实体之间相对空间位置与关系的变化。
下文将结合某导弹联网训练模拟器的开发详细介绍基于OpenGL的地面战场仿真环境可视化实现。
2.3仿真过程可视化
仿真过程的可视化主要指对仿真实体的外观形状、运动和姿态变化,如导弹飞向目标、命中、爆炸、弹片飞散等过程做出尽可能真实地描述。
为此,必须首先建立能够真实反映仿真实体外观形态的三维模型以及实体的数学模型,然后在这个基础上进一步实现对模型的实时驱动,从而显示出整个仿真运动的动态过程。
2.4仿真输出可视化
可视化仿真的计算量一般很大,通常产生大量的数据,并且这些数据随时钟的推进而不断变化。
仿真输出可视化就是把众多数据的变化情况用尽量直观的方式显示给用户,以便于观察理解,并迅速做出判断。
对于导弹飞行模拟,显示方式主要有:
数据表格、轨迹图(三维轨迹图、二维投影图和关键曲线(速度、高度、坡度、俯仰角、偏航角和推力等。
2.5视点漫游
从计算机绘图角度来看,一个可视化场景是由多个曲面、曲线和不规则几何体所构成的一个复杂造型。
在实际中经常需要处于不同空间位置上观察仿真的情景,以便深入理解和分析仿真的进程,这就是所谓的视点漫游。
利用系统实现的视点漫游功能可以从不同角度、高度来观看仿真场景和随意切换窗口显示比例[2]。
3地面战场环境可视化实现
3.1背景
随着计算机技术、信息技术和系统技术的飞速发展,计算机仿真的应用领域不断拓宽,而军事需求是其强大的推动力。
越来越多的国家认识到,采用仿真手段代替真实装备进行训练是迅速提高部队战斗力,节约国防预算的重要途径。
因此,各发达国家相继开展训练仿真器的研究。
某导弹系统自装备部队以来,缺乏方便简易的训练模拟器,为此正在为此导弹系统研制开发一套模拟器,其中模拟逼真的战场环境是开发训练模拟器的关键。
战场环境是指作战空间中除人员与武器装备以外的客观环境。
从战争所涉及的客观因素来分析,战场环境应包含战场地理环境、气象环境、电磁环境和核化环境,并且随着网络信息战的形成,战场网络环境也将成为战场环境的一个重要组成部分。
以下将结合某导弹联网训练模拟器,对基于OpenGL的战场环境可视化的实现做一下介绍。
3.2OpenGL
现在市场上有很多很好、很成熟的仿真可视化开发软件包,比如Vega、OpengVS等等,但是实际上这些软件包几乎都是基于OpenGL的(其中最新发布的VegaPrime也是这样的。
虽然这些软件包可以节省开发时间,但是作为商业产品,其昂贵的价格对于开发小型的视景仿真是不可取的,并且由这些软件开发的产品很难移植到其他的操作系统下,比如UNIX。
相对来说,OpenGL作为一种图形与硬件的接口就不存在上述缺陷。
OpenGL是一种工业标准,它的前身来自SiliconGraphics(SGI公司的IRISGL。
它的实现不是一种响应OpenGL函数调用并创建三维图像的软件库,就是一种实现相同功能的硬件设备(通常是显卡的驱动程序。
典型情况下硬件实现要比软件实现快很多倍,现在的PC机硬件基本上都能实现。
其工作过程如图1所示[1
]。
图1OpenGL基本工作流程
在战场环境的可视化实现中,参与可视化处理的场景数据包括三维地形模型、三维地物模型和地形地物的表面纹理(如果考虑到综合战场环境的构成,还应该包括武器装备模型及其纹理以及各种特效数据,其数据量十分庞大[6]。
在目前的普通微机上实现这样庞大数据的实时交互,还是一个比较困难的问题。
为了实现大数据量地景的实时交互显示,就必须解决场景数据的组织与管理问题。
为此我们采用了目前比较成熟的LOD算法。
3.3LOD算法
LOD(LevelofDetail是一种使用多边形进行3D地形渲染的算法,它根据一定的规则来简化物体的细节,如离观察者近的选择较高的细节程度,反之选择较低的细节程度[5]。
层次细节(LOD技术是一种符合人的视觉特性的技术。
当场景中的物体离观察者很远的时候,它们经过投影变换后在屏幕上往往只是几个像素,此时完全没必要为这样的场景去绘制它所有的细节。
另外,一般的战场环境漫游都是通过视点的移动,这样对于大规模的战场环境来说,任意时刻都将有很大面积的场景不在视野中,如此,为了节省有限的资源,也没有必要去绘制那些不在视场中的场景。
地形作为一种特殊的几何物体,在运用LOD算法时有一些特殊的技巧,因为地形通常是一个规则的矩形网格,其简化模式可以有两种:
规则的简化和非规则的简化。
规则的简化通常是对这个矩形网格采用自顶向下、分而治之的策略,典型的有四叉树和二叉树,它们从场景的最低细节度开始,按需要不断的提高细节;非规则的简化通常采用自底向
上的方法来处理的,它的实现通常较少用。
在本文中采用了
LOD四叉树。
图2地形的四叉树表示(粉红色区域为可见部分根据四叉树的数据结构,假定地形的大小为(2n+1×(2n+1
同时采样间隔必须均匀。
如图2所示,采用四叉树的概念来描述一个多分辨率地形,图中的每一个正方形为四叉树的一个节点,每个节点保
存了一定区域的信息。
从整个完整的地形出发,递归地把地形不断的分割成相等的四个区
域,分割的深度越大,则得到的分辨率越高。
由图2可以很清楚地看到,在地形中哪些区域是在视场中的,哪些则不是。
在渲染前,计算出在视场中的节点,并确定其渲染细节层次,就可以渲染出当前视点的战场环境,而忽略没有出现在视场中的场景。
对于节点的细节层次,可以采用一个0、1矩阵来表示,0表示在当前视点次节点不必再细分,已达到最高细节层次,1则相反。
至于如何确定一个点的细节层次,则要根据当前点距离视点的距离和与周围点的
坡度[4]。
如图
3。
图3右图为地形示意图
(黑点表示需再分,白点表示已达最高细节,
箭头表示父子关系
图6具有纹理的场景模拟
3.4渲染
基于OpenGL进行战场环境的渲染大致可以分为四个步骤,既初始化工作、场景的设置、地形模型
的建立和地形的显示与交互操作[7]。
在初始化工
作中主要完成设备环境的初始化;场景的设置主要完成对模型视图矩阵和投影矩阵的操作,将模型的数据映射到屏幕坐标,同时进行场景的布置,设置光源的位置和模型的材质;地形模型的建立和显示主要是利用给定的地形数据,辅以LOD算法,转化成OpenGL语言,最终显示真实的战场环境。
具体过程如图4。
渲染时采用透视投影,它符合人们的心理习惯,即离视点近的物体大,远的物体小,远到极点即为消失。
它的视景体类似于一个顶部和底部都被切除掉的棱锥,也就是棱台。
在OpenGL中利用
glPerspective(
函数很容易就能建立一个透视投影的视景体。
图4
战场环境渲染过程
图5透视投影视景体
建立了视景体以后,根据OpenGL提供的投影矩阵和模型矩阵,我们就可以计算出图5棱台中六个平面的方程,根据这些方程我们便可以计算出场景中的任何一个点是否在此棱台中,由此决定是否渲染此点,这也是LOD算法的精华。
如果这个点在棱台中,则就要进一步计算这个点的细节层次,只到最高层次细节,最后输出渲染结果(网格渲染采用GL-TRIANGLE-FAN。
图6、图7分别为具有纹理和不具纹
理的试验结果。
其中DEM数据来自USGS网站。
4结束语及展望
本文采用OpenGL,结合LOD四叉树算法,实现了一个30×30km2的战场环境视景仿真,并且可以随视点任意漫游。
利用该方法实现的战场环境具有较高的真实感,同时由于采用了LOD算法,降低了计算量,能够很好的满足
(下转第204页
速度快,而且求解精度高,对汽车ABS系统的开发起到了积极作用。
4结论
本文对汽车系统动力学仿真分析领域中最广泛使用的两大软件SIMPACK和MSC.ADAMS从理论基础、建模思想、组成模块、分析功能和实例分析等几个方面进行了对比。
可以看出,SIMPACK软件由于其理论基础的原因,利用它所建立的动力学分析模型在求解时速度更快、更稳定,解算的精度也较高,另外在应用于含有控制系统的动力学系统的开发设计中更有特色。
而MSC.ADAMS软件的组成模块更丰富,方便用户根据自身的实际需要选用合适的工具,市场化程度高,全球范围内已有大量应用实例,表明该软件具有较高的可靠性,且有丰富的实际工程应用经验可资借鉴。
两种软件在汽车工程中的应用各有特色和所擅长的领域,用户应根据研究内容的实际需要进行综合考虑来合理选用。
参考文献:
[1]PPapalambros,NMichelenaandNKikuchi.Distributedcoopera-
tivesystemsdesign[C].Proceedingsofthe11thInternationalCon-
ferenceonEngineeringDesign,Tampere,Finland,1997,2:
265
-270.[2]张越今,宋健.多体系统动力学分析的两大软件-ADAMS和
DADS[J].汽车技术,1997,(3:
16-20.
[3]WKortüm.ReviewofMultibodyComputerCodesforVehicleSys-
temDynamics[J].VehicleSystemDynamics,1993,22.
[4]詹文章.汽车独立悬架多体系统动力学仿真及转向轮高速摆
振研究[D].吉林大学博士论文,2000-12.
[5]PeterHoldmann,MichaelHolle.Possibilitiestoimprovetheride
andhandlingperformanceofdeliverytrucksbymodernmechatronic
systems[J].JSAEReview20,1999:
505-510.
[6]BobThurman.SIMPACKAnalysisatLANDROVER[C].SIM-
PACKUserMeeting
2001.
[作者简介]
陈潇凯(1977-,男(汉族,河南人,博士生,研
究方向为:
车辆系统动力学、虚拟样机技术等。
林逸(1953-,男(汉族,吉林人,博士,教授,
博士生导师,研究领域为:
车辆系统动力学、电动汽车等。
施国标(1972-,男(汉族,浙江人,博士,博士后,研究方向为:
车辆系统动力学。
詹文章(1969-,男(汉族,浙江人,博士后,副教授,研究方向为:
车辆系统动力学、虚拟样机技术等
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
。
(上接第160页
图7不具纹理的场景
军用模拟器的实时性。
然后,根据需要可以将武器装备的三维模型及数学模型加入到场景中,实现战场的综合视景仿真。
参考文献:
[1]RichardSWright,Jr.MichaelSweet著,潇湘工作室译.OpenGL
超级宝典([M].人民邮电出版社,2001-6.
[2]和平鸽工作室编著.OpenGL高级编程与可视化系统开发-系
统开发篇[M].中国水利水电版社,2003-1.
[3]PLindstrom,DavidKoller,WilliamRibarsky,Larry
FHodges,NickFaustandGregoryATurner,Real-
Time,ContinuousLevelofDetailRenderingofHeight
Fields[C].InSIGGRAPH96ConferenceProceedings,
Aug1996.109-118.
[4]PLindstromandVPascucci.VisualizationofLarge
TerrainsMadeEasy[J].LawrenceLivermoreNa-
tionalLaboratoryAgust7,2001.
[5]潘李亮.基于LOD的大规模真实感场景室外场
景实时渲染技术的初步研究[D].西安电子科
技大学学士学位论文,2002.
[6]游雄.基于虚拟现实技术的战场环境仿真[J].
测绘学报,2002-1.
[7]郝燕玲,路辉.基于OpenGL实现海底地形显示
的研究[J].计算机仿真,2003-
10.
[作者简介]
李文强(1979-,男(汉族,山东德州人,硕士
生,研究方向为系统仿真。
华祖耀(1945-,男(汉族,江苏无锡人,教授,
研究内容为系统仿真,训练模拟器,计算机控制,网
络与软件,接口技术、方向为控制理论与控制工程,
获国家科技进步一等奖一次,部委级科技进步二等奖三次,三等奖两次,享受国家政府特殊津贴。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于OpenGL 的仿真可视化技术研究 基于 OpenGL 仿真 可视化 技术研究