虚拟战场中基于GPU的动态地形仿真

上传人:zhan****gclb 文档编号:115585570 上传时间:2022-07-02 格式:PPTX 页数:51 大小:2.71MB
收藏 版权申诉 举报 下载
虚拟战场中基于GPU的动态地形仿真_第1页
第1页 / 共51页
虚拟战场中基于GPU的动态地形仿真_第2页
第2页 / 共51页
虚拟战场中基于GPU的动态地形仿真_第3页
第3页 / 共51页
资源描述:

《虚拟战场中基于GPU的动态地形仿真》由会员分享,可在线阅读,更多相关《虚拟战场中基于GPU的动态地形仿真(51页珍藏版)》请在装配图网上搜索。

1、虚拟战场中基于GPU的动态地形实时可视化技术研究 虚拟战场是指利用虚拟现实技术生成虚拟作战环境,通过计算机网络、计算机图形学、地理信息系统等交叉技术进行战略、战役、战术等交互仿真的应用。 地形可视化指的是将地形的高程DEM数据绘制成3D模型,以便在虚拟的世界中进行实时地浏览。在DEM中,地形空间被分割成规则的几何单元,通常是正方形,而每个几何单元代表了一个高程采样值。在静态地形可视化中,地形的高程数据是不变的。在动态地形中,地形的高程数据会被实时的修改。例如导弹爆炸生成弹坑 导弹撞击地面导弹撞击地面 修改地形模型和纹理修改地形模型和纹理导弹爆炸生成弹坑不同的导弹入射角不同的导弹入射角 产生不同

2、形状的弹坑产生不同形状的弹坑用细节层次(LOD)技术简化地形网格数据车辆行驶产生轮胎痕迹车痕修改地形模型和纹理修改地形模型和纹理 用用LOD技术简化地形网格数据技术简化地形网格数据主要创新点主要创新点 1 改进的改进的LOD算法算法 LOD(Level of Detail)技术采用各种细节层次、各种精度的地形模型来描述地形的整体或局部区域,从而达到“近处精细,远处粗略”的效果。 LOD技术减少了所需要绘制的三角形数量,提高了系统的实时效率,保证了输出的地形图像具有一定的逼真度。LOD地形网格近处密度大,远处密度小1.1地形数据地形数据LOD的构建的构建我们首先将整个地形的高程数据分割成若干正方

3、形的block其尺寸大小为257X257,并且以四叉树结构进行组织。 如图,根节点block代表整个地形,每个父节点都被分成四个子块。而树的层次L越低,节点block的网格精度就越高。为了进一步简化地形网格,从而加速地形绘制,我们将每一个block分成16个tile,每一个tile又分成16个tilelet。1.2 LOD的选择 每一个block或者tile的层次都有一个屏幕误差t: 其中是地形区域的几何误差,D是视点到地形区域的最近点的距离,W是屏幕空间的像素宽, fovy是视场角。 我们会根据t选择地形的LOD,使得t小于给定的误差阈值。 在实时运行中,先根据误差自顶向下的在四叉树中选择所

4、需的block层次,得到一个粗略的简化地形: 然后根据误差选择每一个block中tile的层次,得到一个精细的简化地形。tile的简化方法就是去掉中间行以及列的顶点,得到新的网格层次。 tile的简化方法可以在GPU中快速并行的执行。图中白色的顶点被去除 为了便于后续GPU算法的实现,我们将CPU内存中的block地形高程数据转化成block纹理图,存放于GPU存储器中。block纹理图中每一个元素的颜色值代表了对应顶点的高程值,它可以通过顶点处理器进行访问。1.3视景体裁剪技术视景体裁剪技术视景体裁剪技术就是在绘制前剔除不可见的三角形。首先在CPU中进行初级裁减。红色表示处于视景体外部的ti

5、le,它们被直接剔除。黄色表示处于视景体内部的tile,它们被直接送入管线绘制。而灰色表示与视景体相交的tile,它们的tilelet被传输到GPU中进行二级裁剪。为了减轻CPU的负担,我们用Vertex buffer object(VBO)来建立一个几何模板用于传输tilelet 。VBO是一个点阵,它描述了tilelet 的索引信息。通过VBO在GPU中找到tilelet四个角的顶点数据,然后就可以进行并行的二级裁剪。如图红色表示处于视野之外的tilelet,它们被剔出。这样就进一步减少了需要绘制的多边形数量1.4 动态再细分区域 原始的地形数据有一个最大分辨率,这个分辨率往往不足以表达动

6、态地形的细节。所以我们引入动态再细分区域技术。该技术就是在发生地形形变的区域,用GPU对地形分辨率进行实时的扩展,加入新的顶点与多边形。 具体步骤如下: 1)将最大分辨率为nXn的地形区域的高程数据转化为GPU中nXn的 纹理图。 2)用nXn的 纹理图绘制并填满一个nXn的屏幕空间。对不匹配的纹理坐标点进行线性插值,从而得到一个nXn的纹理图。下图黑点为插值处:3)将nXn的纹理图还原为nXn的高程数据。 于是原来nXn 的分辨率扩展为nXn。 nXn 的地形高程数据的地形高程数据 nXn 的地形高程数据的地形高程数据2.物理模型与过程纹理 在虚拟战场动态地形系统中,为了生成实时的弹坑以及车

7、痕, 我们就要实时修改地形的高程数据。而这个操作依赖于弹坑以及车痕的物理模型。此外在改变地形表面几何特征的同时,还要改变地形表面的纹理特征。原始的单一纹理无法满足仿真的需求,因此这里提出了一种过程纹理的方法来描述地形表面细节上的变化。2.1 弹坑物理模型与过程纹理根据爆炸力学,我们设计弹坑模型如下在导弹撞击地面所引发的爆炸事件中,由于导弹与着弹点区域的地形表面存在一个入射角,而导弹自身的冲量会在水平面上产生一个分量。这个分量就会改变弹坑的形状,因此我们设计了带方向Vc的弹坑模型。它是一个不对称的几何体。为了生成弹坑的过程纹理图,我们采用了三种基本纹理图:焦土,岩石以及草地。由于弹坑中心区域受到

8、爆炸的冲击最大,所以中心区域的地形表面主要由焦土构成。稍微远离弹坑中心的区域主要由岩石构成,而弹坑边缘区域则由草地构成。根据这一原理,我们对三种基本纹理图的元素颜色值进行加权平均运算,得到一个渐变的合成纹理图。公式如下,texturetileI是基本纹理图的元素值,percentagei表示权值。 2.2车痕物理模型与过程纹理我们根据经典的 “压力-下陷”理论设计了车痕物理模型,公式如下。其中其中W表示轮胎的负载重量,b表示轮胎的厚度,D表示轮胎的直径,Kc表示粘聚因子,k表示裁剪模量,n表示下陷系数。Y就是轮胎压力作用在地形表面时,顶点高程值的偏移量。 车痕的基本纹理图有两个:上层地貌纹理图

9、以及下层地貌纹理图。越靠近车痕的对称轴,地形表面的下陷越明显,这时主要是下层地貌纹理图。相反越靠近车痕的边缘区域,就主要是上层地貌纹理图。根据这一原理,我们进行加权平均运算,得到一个渐变的合成纹理图。其公式与弹坑纹理类似。3. 地形形变策略设计 地形形变策略直接影响着动态地形仿真的实时效率。它主要分为两个步骤: 1)顶点偏移量的计算。 2)形变地形的生成。 以前的算法主要依靠CPU完成地形形变操作,这里我们将该操作移植到了GPU中,大大提高了实时效率。3.1车痕地形形变策略车痕地形形变策略为了用GPU计算车痕地形的偏移量,我们首先将视点移动到车辆模型的底下,并且使其低于整个地形的最低点。然后使

10、视点方向向上并垂直于水平面。最后将投影方式设置为平行投影,并使视口的大小囊括车辆所在的地形区域。这样就可以用frame buffer object(FBO)比较地形与车轮胎的顶点深度,如果轮胎深度大于地形深度则说明该顶点产生了下陷。将轮胎深度与地形深度之间的差值绘制到GPU中,就得到了车痕偏移量纹理图。 然后用GPU将对应的地形高程纹理图与车痕偏移量纹理图进行混合,将两者的数据进行减法运算。然后还原成地形高程数据,就可以生成车痕形变地形。3.2 弹坑地形形变策略弹坑地形形变策略 弹坑的偏移量是固定的,它可以由弹坑模型直接转换为偏移量纹理图,并且一直保存在GPU中。 然后根据弹坑中心点坐标以及弹

11、坑方向,将地形高程纹理图与弹坑偏移量纹理图进行匹配与混合,就可以生成弹坑形变地形4.动态地形中海量地形数据的管理 由于地形数据的海量性,在可视化过程中我们无法将全部的地形一次性的调入内存里。 于是需要将整个地形数据分割成许多子区域(block),然后存储于分布式的外存设备中。在实时运行中,根据需要将数据在内存和外存之间进行读取和交换。 为了高效的管理和调度海量地形数据,我们设计了一种基于GPU的海量地形管理方法,实现了弹坑以及车痕的动态地形管理。4.1地形集群管理系统 地形集群管理系统通过连接大量的普通计算机作为存储节点,从而提供高可靠性、高性能、可扩充的网络存储服务。 地形集群管理系统是独立

12、于虚拟战场可视化系统的外部系统,专门进行地形数据的管理和调度。 地形集群管理系统分为主节点服务器,元数据服务器, I/O节点服务器。 1) 主节点服务器 运行着两个主线程,一个是监听服务,负责监听地形可视化系统的数据请求;另一个是调度服务,负责根据地形可视化系统的请求向元数据服务器查询数据,并向I/O节点服务器转发请求。 2)元数据服务器 记录着所有地形block数据的元数据。所谓元数据是关于地形block的地理空间信息,属性信息,存取方式,组织形式等等一些特征。元数据的作用是帮助数据使用者方便地理解和操作数据。 3)I/O节点服务器 提供最终的数据存储服务和数据传输服务,它由许多分布式的存储

13、设备构成。整个地形数据被分割成block后,这些block会以合理的方式进行编码与分配。最后保存在I/O节点服务器中。4.2 GPU缓冲池预装载策略 缓冲池的预装载策略是为了提前将需要的地形block从外存设备中调入可视化系统的内存,从而保证实时仿真的流畅性。我们在GPU中建立了一个4X4block大小的缓冲池。将视野里的地形高程数据转化成GPU缓冲池里的纹理图。当试点平移时,需要更新的只有黄色的L型区域。蓝色区域不变,虚线部分被移出缓冲池。当试点上升时,需要将原来16个block合并成4个block(蓝色区域),然后更新黄色的L型区域。当试点下降时,只需要将原来中间的4个block分裂成16

14、个block(蓝色区域。4.3 动态地形管理设计 以前大多数的海量地形管理策略都局限于静态地形。在静态地形中由于地形数据不会被实时地修改,外存中的地形数据是只读的。而在动态地形中我们不但要对外存数据进行读操作,而且还要进行写操作用以保存地形的变化量。否则随着block移出内存,地形变化量也随之丢失。当再次调入同一个block时,我们将无法恢复原来的弹坑或者车痕。 以前的方法往往是把改变后的地形block整个保存在外存中,但这样会产生两个问题:1)将block传输到外存会占用大量的网络带宽,增加调度策略的复杂度,甚至严重影响系统实时效率;2)为了不覆盖初始数据,修改后的页面将会占用额外的外存空间

15、,这就使得海量地形变得更加庞杂,从而大大增加了管理与组织的难度。 我们结合前文中的地形形变策略,提出了一个基于GPU的动态地形管理方法。 对于弹坑的仿真,我们为每一个block设置一个元数据Oxy,它记录了弹坑中心点坐标。在调入一个block后,我们可以利用Oxy以及弹坑偏移量纹理图在GPU中快速的恢复弹坑地形。 对于车痕的仿真,我们首先将车痕纹理图简化为中轴线纹理图。这样我们记录的实际上是一系列的点状坐标数据,它的数据量非常小。然后我们将每一个block的中轴线纹理图传输到外存中保存,并且设置一个元数据T。 如果T=1则在调入一个block的同时将对应的中轴线纹理图一起调入,根据轮胎的宽度我们可以在GPU中快速的恢复车痕地形。5.总结 以前的研究大都局限于静态地形的仿真,而且大都采用的是CPU逐个三角形处理的方式。本文充分利用了GPU的并行计算能力,提出了比较理想的动态地形算法。主要创新点如下: 1)提出了改进的LOD算法以及地形分辨率的动态扩展技术。 2)提出了较为良好的弹坑与车痕物理模型以及高效的地形形变策略。 3)提出了海量动态地形数据的管理方法。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!