虚拟战场中基于gpu的动态地形仿真.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
虚拟战场中基于gpu的动态地形仿真

3.1车痕地形形变策略 为了用GPU计算车痕地形的偏移量,我们首先将视点移动到车辆模型的底下,并且使其低于整个地形的最低点。然后使视点方向向上并垂直于水平面。最后将投影方式设置为平行投影,并使视口的大小囊括车辆所在的地形区域。 这样就可以用frame buffer object(FBO)比较地形与车轮胎的顶点深度,如果轮胎深度大于地形深度则说明该顶点产生了下陷。将轮胎深度与地形深度之间的差值绘制到GPU中,就得到了车痕偏移量纹理图。 然后用GPU将对应的地形高程纹理图与车痕偏移量纹理图进行混合,将两者的数据进行减法运算。然后还原成地形高程数据,就可以生成车痕形变地形。 3.2 弹坑地形形变策略 弹坑的偏移量是固定的,它可以由弹坑模型直接转换为偏移量纹理图,并且一直保存在GPU中。 然后根据弹坑中心点坐标以及弹坑方向,将地形高程纹理图与弹坑偏移量纹理图进行匹配与混合,就可以生成弹坑形变地形 4.动态地形中海量地形数据的管理 由于地形数据的海量性,在可视化过程中我们无法将全部的地形一次性的调入内存里。 于是需要将整个地形数据分割成许多子区域(block),然后存储于分布式的外存设备中。在实时运行中,根据需要将数据在内存和外存之间进行读取和交换。 为了高效的管理和调度海量地形数据,我们设计了一种基于GPU的海量地形管理方法,实现了弹坑以及车痕的动态地形管理。 4.1地形集群管理系统 地形集群管理系统通过连接大量的普通计算机作为存储节点,从而提供高可靠性、高性能、可扩充的网络存储服务。 地形集群管理系统是独立于虚拟战场可视化系统的外部系统,专门进行地形数据的管理和调度。 地形集群管理系统分为主节点服务器,元数据服务器, I/O节点服务器。 1) 主节点服务器 运行着两个主线程,一个是监听服务,负责监听地形可视化系统的数据请求;另一个是调度服务,负责根据地形可视化系统的请求向元数据服务器查询数据,并向I/O节点服务器转发请求。 2)元数据服务器 记录着所有地形block数据的元数据。所谓元数据是关于地形block的地理空间信息,属性信息,存取方式,组织形式等等一些特征。元数据的作用是帮助数据使用者方便地理解和操作数据。 3)I/O节点服务器 提供最终的数据存储服务和数据传输服务,它由许多分布式的存储设备构成。整个地形数据被分割成block后,这些block会以合理的方式进行编码与分配。最后保存在I/O节点服务器中。 4.2 GPU缓冲池预装载策略 缓冲池的预装载策略是为了提前将需要的地形block从外存设备中调入可视化系统的内存,从而保证实时仿真的流畅性。 我们在GPU中建立了一个4X4block大小的缓冲池。将视野里的地形高程数据转化成GPU缓冲池里的纹理图。 当试点平移时,需要更新的只有黄色的L型区域。蓝色区域不变,虚线部分被移出缓冲池。 当试点上升时,需要将原来16个block合并成4个block(蓝色区域),然后更新黄色的L型区域。 当试点下降时,只需要将原来中间的4个block分裂成16个block(蓝色区域。 4.3 动态地形管理设计 以前大多数的海量地形管理策略都局限于静态地形。在静态地形中由于地形数据不会被实时地修改,外存中的地形数据是只读的。而在动态地形中我们不但要对外存数据进行读操作,而且还要进行写操作用以保存地形的变化量。否则随着block移出内存,地形变化量也随之丢失。当再次调入同一个block时,我们将无法恢复原来的弹坑或者车痕。 以前的方法往往是把改变后的地形block整个保存在外存中,但这样会产生两个问题:1)将block传输到外存会占用大量的网络带宽,增加调度策略的复杂度,甚至严重影响系统实时效率;2)为了不覆盖初始数据,修改后的页面将会占用额外的外存空间,这就使得海量地形变得更加庞杂,从而大大增加了管理与组织的难度。 我们结合前文中的地形形变策略,提出了一个基于GPU的动态地形管理方法。 对于弹坑的仿真,我们为每一个block设置一个元数据Oxy,它记录了弹坑中心点坐标。在调入一个block后,我们可以利用Oxy以及弹坑偏移量纹理图在GPU中快速的恢复弹坑地形。 对于车痕的仿真,我们首先将车痕纹理图简化为中轴线纹理图。这样我们记录的实际上是一系列的点状坐标数据,它的数据量非常小。然后我们将每一个block的中轴线纹理图传输到外存中保存,并且设置一个元数据T。 如果T=1则在调入一个block的同时将对应的中轴线纹理图一起调入,根据轮胎的宽度我们可以在GPU中快速的恢复车痕地形。 5.总结 以前的研究大都局限于静态地形的仿真,而且大都采用的是CPU逐个三角形处理的方式。本文充分利用了GPU的并行计算能力,提出了比较理想的动态地形算法。主要创新点如下: 1)提

文档评论(0)

karin + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档