阅读:2955回复:2
基于Creator的地形可视化仿真建模技术研究(上)
<DIV align=center>
<TABLE cellPadding=0 width="85%" border=0> <TR > <TD > <P align=center>基于<FONT face="Times New Roman">Creator</FONT>的地形可视化仿真建模技术研究(上)<p></p></P></TD></TR> <TR > <TD > <P align=center><FONT face="Times New Roman">■ </FONT>杨建国<p></p></P></TD></TR> <TR > <TD > <P align=left><p><FONT face="Times New Roman"> </FONT></p></P></TD></TR> <TR > <TD > <P align=left><FONT face="Times New Roman"> </FONT>摘<FONT face="Times New Roman"> </FONT>要:三维地形模型数据库是地形可视化仿真应用的重要数据基础,<FONT face="Times New Roman">Creator</FONT>是专门面向可视化仿真应用的实时三维仿真建模系统,本文详细介绍使用<FONT face="Times New Roman">Creator</FONT>创建三维地形模型数据库的一般流程,结合实际经验指出了在原始地形数据处理、地图投影类型选择、地形纹理应用以及地形批处理生成等过程中常用方法和技巧。重点讨论了<FONT face="Times New Roman">Creator</FONT>提供的包括<FONT face="Times New Roman">Polymesh</FONT>算法、<FONT face="Times New Roman">Delaunay</FONT>算法、<FONT face="Times New Roman">TCT</FONT>和<FONT face="Times New Roman">CAT</FONT>在内的四种地形转换算法和两类地形特征映射方式,文章最后给出了地形可视化仿真建模在广州大学城现状地形仿真模型建立实际应用中的例子。<BR><FONT face="Times New Roman"> </FONT>关键词:地形可视化;仿真建模;地形转换;特征映射<BR><FONT face="Times New Roman"> 1 </FONT>引言<BR><FONT face="Times New Roman"> </FONT>地形可视化问题最初是根据地理信息系统的三维可视化需求而提出的,随着地理信息系统和计算机可视化技术的发展,地形可视化逐渐发展成了一个专门以研究基于数字地面模型<FONT face="Times New Roman"> (DTM)</FONT>或数字高程模型<FONT face="Times New Roman">(DEM)</FONT>的生成、简化、显示和仿真为主要内容的计算机可视化应用技术。目前地形可视化技术的应用领域早已不在局限于地理信息系统中,在虚拟现实、视景仿真、虚拟地理环境、战场环境仿真、电子娱乐游戏、气象数据预报等领域中都可以找到大量地形可视化技术的应用实例。作为地形仿真应用的重要数据基础,三维地形模型数据库的创建是其核心内容之一。<BR><FONT face="Times New Roman"> MultiGen Creator</FONT>是专门面向可视化仿真应用的实时三维仿真建模系统,基于针对实时应用而设计的节点式层级结构的<FONT face="Times New Roman">OpenFlight</FONT>数据格式,<FONT face="Times New Roman">Creator</FONT>提供了强大的多边形建模、矢量建模以及大面积地形的精确生成等功能。特别的,利用其地形建模模块可以通过多种地形生成算法和自动化的层次细节设置、组筛选方便的创建大面积多分辨率地表模型数据库,利用地形特征数据还可以将诸如建筑、道路、树木等地物特征准确的映射到地形表面上,从而形成完整、逼真的地形、地景模型数据库。<BR><FONT face="Times New Roman"> <BR> 2 </FONT>基于<FONT face="Times New Roman">Creator</FONT>的地形建模<BR><FONT face="Times New Roman"> </FONT>利用<FONT face="Times New Roman">Creator</FONT>进行三维地形可视化建模的一般流程如图<FONT face="Times New Roman">1</FONT>所示,其中虚线表示该步骤为可选过程:<BR><FONT face="Times New Roman"> 2.1 </FONT>原始地形数据的转换<BR><FONT face="Times New Roman"> </FONT>为了创建真实的地形模型数据库,通常需要参考实际地形的数字高程模型。可以提供地形原始地形信息的数据格式有很多,常见的有<FONT face="Times New Roman">USGS(</FONT>美国地质勘探局<FONT face="Times New Roman">)</FONT>制定的<FONT face="Times New Roman">DEM</FONT>格式、<FONT face="Times New Roman">NIMA(</FONT>美国国家成像和绘图联合会<FONT face="Times New Roman">)</FONT>制定的<FONT face="Times New Roman">DTED</FONT>格式等,但这些格式的地形数据并不能直接所用,必须首先将他们转换为<FONT face="Times New Roman">Creator</FONT>专用的<FONT face="Times New Roman">DED</FONT>数字高程数据格式。原始地形特征数据一般都被储存为标准的<FONT face="Times New Roman">DFAD</FONT>、<FONT face="Times New Roman">DLG</FONT>或其他矢量格式,但<FONT face="Times New Roman">Creator</FONT>也不能直接使用这些原始特征数据,而必须在使用之前将其转化为专用的<FONT face="Times New Roman"> DFD</FONT>数字特征数据格式。<BR><FONT face="Times New Roman"> 2.2 </FONT>地图投影类型的选择<BR><FONT face="Times New Roman"> </FONT>由于真实的地球不是一个圆球体,所以对于地球上不同位置的地形必须使用不同地图投影<FONT face="Times New Roman">(Map Projection)</FONT>类型以减少投影误差,比如赤道附近地形和地球两极地形就需要不同额地图投影方式,选择地图投影方式处取于目标地形区域在地球上的具体位置、面积大小以及实际形状等因素。<FONT face="Times New Roman">Creator</FONT>提供了五种地图投影类型,其中最常用的为<FONT face="Times New Roman">Flat Earth</FONT>和<FONT face="Times New Roman">UTM</FONT>两种:前者适用在东西向并且不靠近两极的地面区域;后者由于在沿着子午线的方向上比较精确而在东西向的误差较大,主要用于在南北向地形区域。<BR><FONT face="Times New Roman"> 2.3 </FONT>地形转换算法的选择<BR><FONT face="Times New Roman"> </FONT>在实际的地形生成过程中,<FONT face="Times New Roman">Creator</FONT>会根据所选用的转换算法按照一定的规则读取地形高程数据信息,而并不是所有的高程点被最终转换成地形模型数据库中的多边形顶点。对于不同的地形仿真应用,使用不同的转换算法和参数将得到不同结构和效果的地形模型,从而在实时仿真系统中获得不同的运行效率,所以必须根据实际情况合理的选择地形转换算法,在本文的第三节中将有更详细的讨论。<BR><FONT face="Times New Roman"> 2.4 </FONT>地形纹理的应用<BR><FONT face="Times New Roman"> </FONT>将包含真实地形表面细节的纹理应用到生成的地形模型多边形上,可以使地形模型数据库在实时系统中呈现出更加逼真的视觉效果。尤其是对于较低细节层次的地形模型,甚至可以直接使用纹理来代替地形多边形,从而可以有效的提高地形模型数据库的多边形利用率。特别是使用包含真实地学坐标信息的地学纹理<FONT face="Times New Roman">(Geospecific Texture)</FONT>,可以跟地形模型多边形进行准确的匹配。另外,也可以使用间接纹理映射,即直接映射到多边形上的是一个特别的纹理图像,该图像上的每个纹素都对应着特定的颜色、材质和纹理等各种属性。<BR><FONT face="Times New Roman"> 2.5 </FONT>批处理地形生成<BR><FONT face="Times New Roman"> </FONT>通常对于面积较小的地形区域只用一个单独的模型数据库就可以完整的描述了,但是对于大面积的地形区域,如果仍然只生成单独的模型数据库,就可能会导致模型文件本身过大,而不便于实时系统对其进行调度。批处理地形转换提供一个针对此类问题的解决方案,其基本原理是先将原始地形高程数据进行内部切分,将其划分为大小相同的矩形或正方形地域区块单元,然后可以根据需要从中选取任意数量的地域区块进行地形转换,<FONT face="Times New Roman">Creator</FONT>会将每个地域区块生成一个单独的<FONT face="Times New Roman">OpenFlight</FONT>模型数据库,同时以外部引入的方式创建一个包含这些单独地形模型文件信息的主控地形模型文件<FONT face="Times New Roman">(</FONT>即<FONT face="Times New Roman">master file)</FONT>。<BR><FONT face="Times New Roman"> <BR> 3 </FONT>地形转换算法<BR><FONT face="Times New Roman"> </FONT>地形转换算法是地形模型生成的核心,<FONT face="Times New Roman">Creator</FONT>提供了多种不同类型的三角形化算法用来将数字高程数据转换为地形模型数据库,包括<FONT face="Times New Roman">Polymesh</FONT>、<FONT face="Times New Roman">Delaunay</FONT>、<FONT face="Times New Roman">TCT(Terrain Culture Triangulation)</FONT>和<FONT face="Times New Roman">CAT(Continuous Adaptive Terrain)</FONT>等四种。具体选择何种转换算法主要取决于运行地形模型数据库的实时系统软硬件条件,需要考虑的因素包括处理速度、支持的边界匹配类型、三角带化能力、多边形数量限制以及图形子系统的遮挡计算类型及其兼容性等。<BR><FONT face="Times New Roman"> 3.1 Polymesh</FONT>转换算法<BR><FONT face="Times New Roman"> Polymesh</FONT>地形转换算法的基本思想是通过在<FONT face="Times New Roman">DED</FONT>数字高程数据地形文件中,对高程信息进行有规律的采样来获取地形多边形的顶点坐标,从而生成矩形网格状的地形模型数据库。下图所示为采样率为<FONT face="Times New Roman">6</FONT>时的采样示意图:<BR><FONT face="Times New Roman"> </FONT>其中,两个共享斜边的地形多边形形成一个地形多边形对,每个地形多边形对在生成的地形模型数据库中对应一个单独的体节点。如果设置了多个细节层次,地形模型数据库则首先是从最高<FONT face="Times New Roman">LOD</FONT>开始生成的。注意在<FONT face="Times New Roman">LOD</FONT>地形模型数据库的组节点中包含的体节点数目是保持不变的,而每<FONT face="Times New Roman">2x2</FONT>个较高<FONT face="Times New Roman">LOD</FONT>地形模型数据库中的组节点形成相邻的较低<FONT face="Times New Roman">LOD</FONT>中的一个组节点,对较高细节层次地形模型而言,相当于对同一范围内的地形数据进行了密度更高的采样,从而生成更加精细的地形多边形。<BR><FONT face="Times New Roman"> Polymesh</FONT>地形转换算法的主要特点是生成地形模型的速度快、三角带化处理效率高、对地形细节层次的数量没有限制,但是可能会出现相邻细节层次之间转换不连续和过度网格化平地等现象,同时也有容错检测不足的缺点。采样该转换算法生成的地形模型数据库,特别适合于使用<FONT face="Times New Roman">BSP</FONT>遮挡计算的实时系统。<BR><FONT face="Times New Roman"> 3.2 Delaunay</FONT>转换算法<BR><FONT face="Times New Roman"> Delaunay</FONT>转换算法是一种基于<FONT face="Times New Roman">Delaunay</FONT>三角形的地形生成算法,<FONT face="Times New Roman">Delaunay</FONT>三角形是一种可以十分有效的对平面上离散点进行三角形剖分的方法,可以很好的反映数字高程模型在平面分布上的距离相关性。跟<FONT face="Times New Roman">Polymesh</FONT>转换算法不同,使用<FONT face="Times New Roman">Delaunay</FONT>算法时目标区域内地形高程数据中的每个高程点都会被采样,如果设置了多个细节层次则是从最低<FONT face="Times New Roman">LOD</FONT>地形模型开始生成,而且较低<FONT face="Times New Roman">LOD</FONT>地形模型多边形的顶点会被合并到较高的<FONT face="Times New Roman">LOD</FONT>地形模型中以保证相邻细节层次之间的平滑过渡,并能将模型数据库中相应的组节点组织成四叉树的形式。与<FONT face="Times New Roman">Polymesh</FONT>转换算法相比,生成相同精度的地形模型,使用<FONT face="Times New Roman">Delaunay</FONT>转换算法的地形模型数据库中包含的多边形数量较少。<BR><FONT face="Times New Roman"> Delaunay</FONT>地形转换算法的主要特点是可以生成比较精细的地形模型,可以对地形高程数据中描述诸如山谷、山脊和海岸线等一些特殊地形部分进行有效的识别和保留,并能很好的支持相邻细节层次之间的边界匹配以及容错检测。其不足之处是不能预测地形多边形的生成数量,同时地形模型多边形总数目也有一定的限制,还可能生成较短的三角带。采样该转换算法生成的地形模型数据库,通常适合于使用<FONT face="Times New Roman">Z-buffer</FONT>进行遮挡计算的实时系统。<BR><FONT face="Times New Roman"> 3.3 TCT</FONT>转换算法<BR><FONT face="Times New Roman"> TCT</FONT>地形转换算法实际上相当于一种带限制性的<FONT face="Times New Roman">Delaunay </FONT>转换算法,虽然基本的地形多边形生成方式与后者相同,但是在选择<FONT face="Times New Roman">TCT</FONT>转换算法的情况下不能为生成的地形模型设置多个细节层次,而且必须同时应用批处理地形生成。该转换算法的重要特点是允许将从<FONT face="Times New Roman">DFD</FONT>数字特征数据文件中读取的特征数据信息当作地形高程信息对待,并使之与数字高程数据一起生成包含地形特征在内的完整地形模型数据库。<FONT face="Times New Roman">TCT</FONT>地形转换算法因其可以生成更加逼真的带有道路和河流等特征的地形模型,所以主要生成用于低纬度地面仿真应用的地形模型数据库。<BR><FONT face="Times New Roman"> 3.4 CAT</FONT>转换算法<BR><FONT face="Times New Roman"> CAT</FONT>地形转换算法对<FONT face="Times New Roman">Delaunay</FONT>转换算法的进行了改进,可以更加有效的对地形数据进行三角形化,进行连续的自适应性地形<FONT face="Times New Roman">LOD</FONT>转换,它不是使用分块地形而是基于一种面到面级别的替换,即在相邻的<FONT face="Times New Roman">LOD</FONT>地形模型的对应多边形之间进行变化,实现更加平滑的<FONT face="Times New Roman">LOD</FONT>过渡效果,从而有效的避免视觉上的不连续现象。采用该算法生成的地形模型必须使用基于<FONT face="Times New Roman">Performer 2.0</FONT>以上版本的仿真应用程序,通常计算量非常的大,主要运行于<FONT face="Times New Roman">SGI</FONT>硬件平台下。另外,如果使用地学纹理,还必须保证地学纹理所覆盖的地形面积不小于目标区域的地形面积。<p></p></P></TD></TR></TABLE></DIV> |
|
1楼#
发布于:2007-05-31 18:30
学习了~~~~~~~
|
|
2楼#
发布于:2007-05-31 21:51
有感触
|
|