1、浅析月球车仿真系统中若干视景真实感实现技术论文关键词:虚拟现实 视景仿真 月球车论文摘要:虚拟现实技术的出现为月球漫游车的设计、优化等提供了新的有效手段。为在虚拟现实环境下开发月球车仿真系统,视景真实感实现技术在其中具有重要地位。研究了真实感地形生成技术、仿真过程中的粒子系统特效技术以及车轮沉陷和车轮轨迹生成技术。基于分形技术和月面特征地形生月面高程数据;利用 Muhigen Creator构建和渲染了月面几何模型;基于 OpenGL Performer开发 了仿真程序并 应用到一种月球 车运动仿真系统中。系统可在微机和SGI图形工作站运行,仿真结果显示具有良好的真实感。1 引言进入 21世纪
2、后,世界各国掀起 了一股新的探测月球的高潮,对月球车的研究也不断深入。作为一个复杂的系统,月球车的设计和优化需要经过大量的试验验证。仿真无疑是提高设计效率、降低设计成本的有效手段。在计算机中对月球车运动性能进行仿真,除了需要一个理想的地形、一个完备的动力学模型和一个准确的车轮一地面作用模型,同时也需要能给予设计者直观和具有真实感的反馈。虚拟现实技术的出现,无疑为仿真注人了新的活力,为月球车系统的设计、优化提供了更加有效的手段。虚拟现实技术的一大特点是沉浸性(Immersive),而沉浸性是指用户对虚拟世界的真实感,此种真实感将使用户难以觉察、分辨出其 自身正处于一个由计算机生成的虚拟环境中。真
3、实感的形成对于仿真的效果非常重要。只有逼真的仿真输出效果使得仿真结果更加直观,更容易被理解,也就提高了仿真的实用性和意义。在以往的仿真研究中,比较注重的是对月球车运动学和动力学的分析,缺乏经过三维渲染的视景输出,使得仿真结果不易观察和比较。本文即在一个月球车视景仿真平台基础上,着重研究了视景真实感的若干实现技术。2 系统基本架构介绍本文中的视景仿真建立在一个虚拟仿真平台中,其系统架构如图 1所示。系统主要包括三个大的功能模块。模块的功能分述如下 :1)几何建模模块,负责系统几何模型的建立。主要是用于生成真实感数字月面模型。2)动力学模块主要定义月球车仿真系统中的作用力模型与约束关系等。3)可视
4、化模块。主要功能为根据导入的几何文件建立场景树,并利用三维视景渲染技术(场景管理,光照,三维文字,纹理映射以及实时阴影等)输出一个具有沉浸感和立体感的虚拟环境,并能够处理用户与场景之间的所有交互。可视化模块在整个系统中具有重要的地位,可视化的效果直接影响到仿真结果的表达和用户与系统的交互 ,因此实现具有真实感的可视化效果有着十分重要的意义。本文主要介绍在可视化模块中为实现仿真真实感的若干实现技术。3 真实感实现技术月球车仿真中显示模型的真实感主要包含两部分:一是真实感几何模型的生成和渲染,主要包括月面地形和月球车模型等;二是在仿真动态循环中的真实效果生成,比如用粒子系统来模拟尘埃以及在仿真过程
5、中实现车轮沉陷效果和车轮轨迹生成等。31 真实感地形整个月球表面覆盖着一层松散层,由岩石碎块,角砾状岩块、砂和尘土组成的松散层,称为月壤。月球表面起伏不平,高差悬殊,可以划分出不同地形,如月海、月陆、环形山月谷和月溪等,图2是真实的月面照片。根据月球车仿真平台实时的需要,首先利用分形技术生成随机月面基础地形。然后,在生成的月面基础地形上根据真实统计规律添加月而特征,如陨石坑、石块等,建立了一个符合月球表面特征的基础地形,详细设计过程见文献1。 要使数字地形具有如同照片般的真实感 ,需要综合运用包括光照,纹理,材质,阴影在内的计算机图形学技术。本文基于 Multigen Creator,提出了一
6、整套地形渲染技术方案。311光照与材质处理在处理月面的光照时,本文主要考虑了以下因素:1)由于月面并不是理想的漫反射体,也不是镜面反射体,而是介于两者之间的物体。所以,要创建逼真的月面地形,二者都必须模拟。所以需要考虑月表地面上任意点光的反射强度与光源及地面特性之问的关系。2)充分考虑影响光照效果的因素,在设计光照时考虑各种光源之间的关系及相互影响。这样,模拟月面的地形才能在光照条件下显示更加逼真的效果,更加接近真实的地面环境。所以该地形选用了无限光源(Infinite),即从无限远处照亮整个模型数据库的光源,无限光源的光线是相互平行的可以达到了与太阳光类似的照明效果,从而在光照效果上达到真实
7、的程度。同时为了体现月面地形与光照的关系,必须在建模软件中对模型的材质进行恰当设定Creator软件中模型材质设定的基本步骤是:使用材质窗 口来设置材质球的属性 ;然后将设定好的材质球属性应用到模型上,从而控制模型表面的光照效果材质球的属性包括 Ambient,Diffuse,Specular,Emissive及 Shininess,Alpha等 6个分量Ambient分量设置模型表面环境光反射的强度和颜色,相当于环境光反射系数Diffuse分量设置模型表面漫反射的强度和颜色,相当于漫反射系数Specular分量设置物体高光的亮度和颜色,相当于镜面反射的系数;Shininess分量设置物体表面
8、的高光质量,该分量相当于镜面反射参数,Specular和 Shininess共同作用来控制物体表面的镜面反射光照效果本文通过计算以及不断的测试调整参数设置的组合 ,使之达到了一个逼真的效果312 纹理映射纹理映射(Texture Mapping)是通过将数字化的纹理图像覆盖或投射到物体表面,从而为物体表面增加表面细节的过程。纹理映射图像可以通过采样得到,也可以通过数学函数生成。物体的很多表面细节是多边形逼近或其他几何建模的方法是难以表现的,因此纹理映射技术能够使得计算机生成的物体看起来更加逼真。本文在处理纹理映射时,可以简单的归纳为以下几个步骤1)准备纹理图像。本文采用的图像是经过处理的真实的
9、月表图片,使生成的月面更加具有真实感。2)将纹理的U、v坐标映射为屏幕空间坐标。3)将纹理颜色与三维地形模型颜色和材质颜色融合。4)进行适当的纹理过滤处理,优化纹理映射的效果。本文综合使用了 Creator和 Openflight API完成了地形的纹理映射。用 Openflight API编写的给几何模型添加纹理所采用的关键代码mgSetCoord3d (tmRec, fltTM3PtOriginUV,00, 00, 00);设置参考点mgSetCoord3d(tmRec,fltTM3PtOriginXYZ,zxO,zyO,zzO); 设置图形中的映射点坐标mgUpdateTextureMa
10、pping(tmRec);更新纹理调板mgSetAttList(precl,fltPolyDrawType,1,fltPolyTexture,He-windex,fltPolyTexmap,newindex,MG NULL);为所选 面片贴纹理313 阴影设置Creator提供了 Flat(平面模式)、“t(动态模式)、Gouraud(高氏模式)、Lit Gouraud(混合模式 )四种不同的着色模式(即阴影处理模式)。本文利用模式来处理月面地形的阴影。模式利用顶点的法线方向跟光源相对,同时也考虑面的颜色和材质以及光照条件的影响来进行着色处理,可以产生逼真的光影效果,能够进行动态的着色处理。3
11、2 粒子系统特效月球车在松软的月面上行驶时,车轮会带起月面上的尘土,显示出一种“尘土效果”。为在仿真中再现和模拟这一效果,用基于 SGI OpenGL Performer的编写的粒子系统程序来模拟这一过程。SGI OpenGL Performer是一个可扩展的高性能实时三维视景开发软件包,构建于工业标准 OpenGL图形库基础上,可以用于开发实时仿真应用程序和其他专业的基于高性能的三维图形应用程序。OpenGL Performer提供了一组标准 C和C+语言绑定的编程接 口,通过一个便捷的三维图形工具集提供高性能几何图形渲染功能。粒子系统(particle system)是三维计算机图形学中模
12、拟一些模糊现象的技术 ,而这些现象用其它传统的渲染技术难以实现真实感。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘 、流星尾迹或者象发光轨迹这样的抽象视觉效果等。通常粒子系统在三维空间中的位置与运动是由发射器控制的。发射器主要 由一组粒子行为参数以及在三维空间中的位置所表示。粒子行为参数可以包括粒子生成速度、粒子初始速度向量、粒子寿命、粒子颜色、在粒子生命周期中的变化以及其它参数等等。本文即利用 Performer建立了一个发射器,仿真流程如图3所示。33 车轮沉陷特效月球表面是松软的沙土,在月球车的行进过程中,会有部分车轮陷入到沙土中(沉陷量),同时,月球车走过
13、的月面会留有车辙。这一效应的模拟对于实现月球车行驶的真实感具有重要意义。本文应用动力学模块与视景仿真模块几何模型间的相互对应关系,模拟车轮沉陷特效。331 车轮沉陷效果的实现在本文的仿真系统中,动力学模块实时计算沉陷量,同时通过数据交互将数据传给可视化模块,从而在可视化模块中可以实时根据沉陷量数据更新显示模型的沉陷效果。此处沉陷量 z。依据 JYWong给出的理论公式其 中, 为土壤粘性模量,k 为土壤剪切模量为车轮载荷,b为土壤粘性模量,k 为土壤剪切模量为车轮宽度,n为承压指数,k 、k 为土壤粘性模量和土壤剪切模量,D为车轮直径。332 车辙的实现车辙的模拟是记录月球车车轮每一时刻与月面
14、的接触位置,根据车轮走过的路面情况,在月面上加载-J,段带有车辙纹理的图片累积而成。车轮的实时位置数据由动力学模块计算并通过数据交互提供给可视化模块。依据几何模型相互对应关系,在视景仿真模块内建立与bodyTrack对应的显示模型:载人贴有车辙图片的车辙分段pfNode pfdLoadFile(“track”);将车辙分段加入动态坐标系中pfDCS:addChild(pfNode child);在月球表面分布着大小不一的碎石,因此在月球车的巡视过程中,会越过一些体积比较小的碎石,此时月球车的某些车轮会脱离沙土月面,如果此时仍旧显示车辙,则会看到车辙悬空的情况。为了避免这种情况的发生,在车轮上设
15、置碰撞检验条,实时监测车轮与月面的接触情况。主要代码碰撞检测条的设置struct pfSegSet设置碰撞的类型,包括检验针对面片的碰撞还是包围盒的碰撞;设定检验模型的正面或反面;是否返回接触点的法向量int mode;用户 自定义的数据void userData;设置检测条的方向、长度信息pfSeg segsPFISMAXSEGS; 是否激活检测条uint activeMask;设定是否监测碰撞uint isectMask;Performer特有的绑定在振动物体上的检测条,此处并未用到,设为 NULLvoid bound:碰撞检测的增强功能,可以判断碰撞的合法性,此处并未用到,设为 NULL
16、int ( discFunc)(pfHit);int pfNode:isect(pfSegSet$segSet,pHit $hits);检测碰撞通过设置碰撞检验,可以大致判断出月球车车轮与月面的接触情况,当检测到车轮与月面接触时,即可将车辙分段添加到月面上:设置车辙的位置void pfDCS:setMat(pfMatrix&m);4 应用实例将上述提到的几种真实感实现技术应用到了真实感地形建模和某型月球车仿真系统中。该系统为一跨平台系统,可运行于微机或者 SGI图形工作站。41 真实感地形在基于分形算法生成的基础地形上,通过融合各种月面特征,并经过Creator光照,材质,纹理和阴影处理之后,
17、得出的真实感地形效果如图4所示。42 真实感仿真通过将前述各种真实感实现技术运用仿真系统中的可视化模块,将该可视化模块与其他模块良好的集成,实现了月球车真实感仿真。图5为仿真的整体输出界面。该界面不仅具有一般的图形窗口界面特眭,同时实时输出仿真结果、显示各种仿真特效。其中,运用各种特效技术实现的各种仿真效果细节如图6所示。5 总结与展望本文主要研究了在月球车虚拟仿真平台中为实现具有真实感和沉浸感效果的若干技术方法。运用了 MultiGeCreator,OpenGL Performe相关软件和 API,以及计算机图形学等相关技术,建立 具有真实感的月面数字地形,实现了月球车实时仿真过程中的若干特
18、效。仿真结果显示具有良好的真实感。在未来的工作中,可以对其他仿真特效进一步开发,如实现实时阴影渲染等。参考文献:1 杨艳春,鲍劲松,金烨一种真实感虚拟月面建模方法J系统仿真学报,20076,19(11):25152518Dong Xiaolong,Sun Bo,Zhu Suyun,Lia Heguang,Jiang JingshanFeasibility and Design of the Surface Penetrating Radar forLunar LanderJGeoscience and Remote Sensing Symposium 2004,(3):17781780唐荣锡,汪嘉业,彭群生,汪国昭计算机图形学教程(修订版)M北京:北京科学出版社,2000王乘,周均清,李利军Creator可视化仿真建模技术M武汉:华中科技大学出版社,2005J Y WongTheory of ground vehiclesM JJohn Wiley andSons,1976