基于OpenGL的河道地形实时仿真方法

来源 :计算机辅助工程 | 被引量 : 0次 | 上传用户:zhangyuxin_718
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:由于分析跨河桥梁、防洪堤坝等水利工程影响河流过水断面、上下游防洪的相关软件较少,而且目前多数三维建模软件侧重于三维对象的建模,缺乏对场景和模型的实时控制,因此,提出并实现基于OpenGL的河道地形实时可视化显示系统. 该系统首先从航测数字线划图(Digital Line Graphic,DLG)文件中自动提取数字高程模型(Digital Elevation Model,DEM)数据,然后选用分段2次Lagrange插值基函数对原始河道地形数据进行插值处理,最后以三角形不规则网(Triangular Irregular Network, TIN)为基础,采用Visual C+
  关键词:数字高程模型; 插值基函数; 河道地形; OpenGL; 实时仿真
  中图分类号:P931;TP391.41
   文献标志码:A
  
  Real-time simulation method of riverway terrain
  based on OpenGL
  JIA Aichen, SU Jiangfeng
  (School of Civil & Hydraulic Eng., Dalian Univ. of Tech., Dalian Liaoning 116024, China)
  Abstract: The bridges, dams and other hydraulic engineering influence the river transect and capability of preventing or controlling flood, and there is less related analysis software. And most of the three dimension modelling softwares emphasize particularly on three dimension object and lack the real-time controlling of scene and models. So the real-time display system of riverway terrain based on OpenGL is proposed and implemented. Firstly, the system picks up Digital Elevation Model (DEM) data from Digital Line Graphic (DLG) files automatically. Secondly, it uses the method of distributing quadric Lagrange interpolated function to interpolate original riverway data. Finally, it is implemented by Visual C+Key words: digital elevation model; interpolation basis function; riverway terrain; OpenGL; real-time simulation
  
  0 引 言
  
  为避免桥梁、堤坝和水利枢纽等工程对河流自然条件的影响对河流防洪能力和河床演变形成不利条件,设计人员在修建这些工程的决策阶段就要对其影响有直观形象的认识,因此流域地形的实时可视化具有重要的工程应用价值.
  地形三维可视化技术近年来一直是相关领域研究的热点问题.但地形高程数据异常庞大,超出一般图形系统的实时渲染和内存管理能力.随着数字地形规模的不断增大,解决由地形数据构成的复杂三维地形模型与计算机图形硬件有限的绘制能力之间的矛盾成为地形可视化的核心问题.[1]因此,地形三维可视化技术研究的关键问题就是三维地形模型的管理、调度与实时渲染,以提高地形实时显示速度并达到视觉效果的最佳平衡.
  由于目前针对修建跨河桥梁、防洪堤坝等水利工程影响河流过水断面、上下游防洪分析的相关软件十分缺乏,一些三维建模软件如3DS Max,Maya,MultiGen,AutoCAD和Surfer等主要侧重于三维对象的建模,缺乏对场景和模型的实时控制.结合实际需要,从航测数字线划图(Digital Line Graphic,DLG)中自动提取数字高程模型(Digital Elevation Model,DEM)数据,采用面向对象编程语言(Visual C+[KG-*2]+),结合高性能图形和交互式视景处理国际标准OpenGL,实现河道地形的三维动态实时可视化显示.
  
  1 构建三维地形模型的关键技术
  
  1.1 三维地形数据
  1.1.1 三维地形数据格式概述
  
  要在计算机上生成三维地形,首先遇到的问题就是地形数据的来源、结构和组织.数字地域模型[2](Digital Terrain Model, DTM)是空间地形数据集合的统称.地形本身是一个三维的概念,但DTM却不是三维的数据对象,通常将DTM视为2.5维,因为DTM是通过为平面上具有二维坐标的空间对象(如点或线)赋予第三维的属性值(即Z值)加以实现的.DTM有3种类型[3],即DLG,DEM和三角形不规则网(Triangular Irregular Network,TIN).
  DLG常用于生成DEM和TIN的中间产品,目前对DEM和TIN的使用较多,二者各有优缺点.
  DEM的优点是:存储格式简单;与卫星数据兼容.其缺点是在地形复杂的情况下,容易造成精度不够或数据冗余.
  TIN的优点是:(1) 以最少的高程点保证一定的精度要求;(2) 具有拓朴结构;(3) 可直接利用图形库实现可视化.其缺点是初始网格的建立耗费时间较多.
  程序模块中自动生成的DEM网格数据将DEM和TIN的优点结合起来,既能保证图形的精度要求,又可以避免冗余数据的产生.
  1.1.2 地形数据自动生成
  首先在AutoCAD中打开DLG,然后将等高线和三维地形高程控制点图层复制到一个新建立的文档中并以.dxf格式进行保存.
  接下来在DEM地形数据自动生成程序模块中依次读入网格节点的X,Y坐标和上一步骤中保存的.dxf文件,然后单击数据处理菜单下的生成地形高程子菜单,程序便会根据预先设定的搜索半径逐个搜索DEM网格节点附近满足条件的地形高程控制点,加权平均后得到网格节点的最后高程数据.
  需要说明的是河堤网格数据的生成不同于河滩、河道网格数据的生成,它是沿着河堤走向来搜索高程控制点的.
  图1(a)和(b)分别给出河道、河滩以及河堤数据的算法流程图.最终生成的地形网格数据类似于DEM数据格式,但包含高程点坐标值.
  
  1.1.3 三维地形数据处理
  由DLG直接生成的原始河道地形网格边长一般为15~20 m,不能满足三维真实感地形显示的精度要求,因此需要对原始数据进行加密处理.根据Lagrange插值基函数
  
  可以得到Lagrange插值多项式p(x)=∑[DD(]n[]j=0[DD)]zjlj(x)[JY](2)
  由于河道地形数据十分庞大,综合考虑计算机处理的速度与真实感显示的精度要求,程序实际采用分段二次Lagrange插值多项式,即取n=3对地形网格分别沿径向和纬向进行插值计算,见图2.图中黑色的圆点即为需要插值计算的点.
  
  图 2 河道地形插值计算模型
  另外,考虑到河道地形高程数据的变化相对于其空间坐标数据的变化而言往往差两个数量级,为了能产生立体感更强的三维地形效果,也为了后面场景管理的方便,程序中将地形数据全部进行归一化处理.
  1.2 场景的管理
  前面提到地形三维可视化技术研究的关键问题就是三维地形模型的管理、调度与实时渲染,程序中结合OpenGL的工作原理,由归一化的地形数据生成地形显示列表,便于在不同的显示模式之间切换时调用,以解决真实感地形的实时生成与电脑硬件设备之间的矛盾.
  
  2 程序模块的工作原理及流程
  
  2.1 实时动画技术
  
  OpenGL是利用双缓存技术来实现动画的.程序把帧存看成是两个视频缓存,在任意时刻,只有两者中的一个内容能被显示出来.当完整的画面在后台视频缓存中画出以后,调用SwapBuffers()函数[4],使其成为可见视频缓存.在交换前台和后台缓存中的内容之前,还必须调用glFlush()或glFinish()函数进行同步操作.
  2.2 地形场景的真实感显示
  
  通过对地形材质、场景光照模型及光源属性的定义,已经可以显示有一定立体感的三维图形,但这远不能满足人们对图形真实感的要求,也不能够模拟自然界中各种纷繁的现象.因此,可以利用OpenGL所提供的融合、反走样、雾化、纹理贴图、模板缓存及累积缓存等技术进一步提高图形质量.
  2.3 程序模块的工作流程
  
  程序模块的工作流程见图3,详细内容见文献[5].
  图 3 程序模块的工作流程
  
  在生成显示列表的过程中,河道地形的绘制通常采用多个单独的三角形片实现,即通过循环,使程序不断重复以下代码:
  glBegin(GL-TRIANGLES)
  …
  glEnd();
  鉴于河道地形数据非常庞大,这样的程序执行效率不高,因此本程序模块在前期对地形数据预处理的基础上,将绘制参数改为GL-TRIANGLE-STRIP,采用绘制三角形面片的方式,最大限度地提高程序执行效率.
  3 系统实现
  3.1 代码实现[6]
  
  程序中的主要部分代码如下:
  3.1.1 地形数据结构体的定义
  
  struct demdata
  
  
  {
  
  long nodeNumber; //节点编号
  
  float dPointx;//节点的X坐标
  
  float dPointy;//节点的Y坐标
  
  float dHeight;//节点的Z坐标
  };
  //动态二维地形数组的定义
  #include
  typedef CArraySingleArray;
  typedef CArrayDoubleArray;
  DoubleArray m-demData;
  3.1.2 沿纬度方向进行插值计算的代码
  
  for(j=0;j  
  for(i=0;i  
  {
  
  
  Interpolation(m-demData[j*pDoc->
  
  
  m-nColum+i];
  
  
  m-demData[j*pDoc->m-nColum+i+1];
  
  
  m-demData[j*pDoc->m-nColum+i+2]);
  
  
  i+=2;
  
  }
  经度方向的插值计算代码与此类似,故不再做介绍.
  3.1.3 地形绘制代码
  
  for(i=1;im-nRow;i++)
  {
  
  glBegin(GL-TRIANGLE-STRIP);
  
  for(j=1;j<=pDoc->m-nColum;j++)
  
  {
  
   glVertex3f(pDoc->m-demData[(j-1)*pDoc->
  
   m-nRow+i].dPointx,pDoc->m-demData[(j-1)*pDoc->
  
   m-nRow+i].dPointy,pDoc->m-demData[(j-1)*pDoc->
  
   m-nRow+i].dHeight);
  
  glVertex3f(pDoc->m-demData[(j-1)*pDoc->
  
   m-nRow+i-1].dPointx,pDoc->m-demData[(j-1)*pDoc->
  
   m-nRow+i-1].dPointy,pDoc->m-demData[(j-1)*pDoc->
  
   m-nRow+i-1].dHeight);
  
  }
  
  glEnd();
  
  }
  3.2 图形显示
  
  图4(a)和图4(b)分别为河道地形不同角度的真实感透视图.
  (a)
  (b)
  图 4 河道地形透视图
  
  4 结束语
  
  利用显示列表及绘制三角形面片缓解了流域地形大规模数据处理与计算机图形硬件渲染速度之间的冲突.在装有Intel Celeron(R) 3.06 GHz CPU,512 MB内存,256 MB显卡以及Windows XP 操作系统的计算机上,基本上可以达到每秒55帧的显示速率,满足流域地形三维动态实时可视化的要求,为今后进行拟建桥梁对河流防洪能力影响的仿真系统开发奠定了基础.同时本程序模块还具有河道地形的俯视、不同角度透视以及缩放平移和地形数据的实时查询功能,目前已将其初步应用于辽河和太子河拟建大桥对河流防洪能力影响的评估系统中.
  
  参考文献:
  [1] 刘少华, 张茂军, 张恒. 大规模三维地形场景实时漫游系统的构建[J]. 计算机仿真, 2005, 22(6): 178-182.
  [2] 雷磊. 三维地形生成及可视化技术研究[D]. 哈尔滨: 哈尔滨工程大学, 2005.
  [3] 那道尔力格. 具有自适应性多分辨率的地形三维实时可视化系统研究[D]. 大连: 大连理工大学, 2004.
  [4] OpenGL Architecture Review Board. OpenGL参考手册[M]. 孙守迁, 王剑, 林宗楷, 等,译. 北京: 机械工业出版社, 2001.
  [5] SHREINER D, WOO M, NERDER J, et al. OpenGL编程指南[M]. 4版. 邓郑祥, 译. 北京:人民邮电出版社, 2005.
  [6] 马安鹏. Visual C+[KG-*2]+ 6 程序设计导学[M]. 北京: 清华大学出版社, 2003.
  (编辑 于 杰)
  
  “本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”。
其他文献
摘 要 固定的商品价格已经限制了传统电子商务的发展,文章提出了一种基于协商和ASent的电子交易框架,使用购买代理和销售代理代替现实生活中的买卖双方,来解决企业对消费者(B—C)的零售商务活动。这种多ASent的电子交易框架应用谈判模式提取和移动Agent技术,很好地模拟了现实生活中的商务活动。  关键词 Agent 移动Agent 协商 电子商务  文章编号1002—8331—(200
期刊
摘 要 当前,基于Web的设备管理成为了设备管理的一种趋势。该文比较了通用Web服务器和嵌入式Web服务器的不同特点,深入分析了嵌入式Web的应用背景和特殊要求。从这些分析出发,讨论了嵌入式Web服务器的几种体系结构和实现机制,并在此基础上提出了一种可扩展性较好的体系结构。  关键词 嵌入式系统 设备管理 基于Web 嵌入式Web服务器  文章编号1002—8331—(2003)24—0
期刊
摘 要 文章分析了Sybase数据库的适应性组件体系结构,其结构分为三层或多层,在每一层中都体现了组件的思想及其适应性,按照应用需求对数据库系统每一层进行配置,以适应未来发展要求。根据Sybase数据库的结构特点,开发了工商管理信息系统的应用数据库。  关键词 Sybase 数据库 体系结构 应用  文章编号1002—8331—(2003)24—0193—03 文献标识码A 中图分
期刊
摘 要 论文提出了一种新的科技期刊综合评价模型:核主成分分析(KPCA)。通过一个非线性变换,KPCA首先将原变量空间映射到高维特征空间,然后在这个高维特征空间中进行线性主成分分析。通过核技巧,KPCA评价方法只需在原空间进行点积计算,而不必知道非线性变换的确切形式。十种科技期刊综合评价的实证表明,KPCA综合评价方法具有一定的实际应用价值。  关键词 核主成分分析 综合评价 科技期刊 
期刊
摘 要 脱硫过程是一个复杂的非线性系统,文章建立了一个基于RBF神经网络的脱硫预报模型,并提出使用CRBP算法,从而较好地解决了传统RBF神经网络中心难于确定,存在过拟合的缺点。实践证明,该算法应用在脱硫预报模型的建立中是合理的、可行的。  关键词 脱硫 预报 神经网络 RBF GRBF  文章编号1002—8331—(2003)24—0218—03 文献标识码A 中图分类号TP
期刊
摘 要:针对在工程中只应用某一软件完成有限元分析的过程复杂、效率不高的问题,根据UG, HyperMesh和MSC Marc软件的特点,综合运用其长处完成从几何建模、网格划分、分析计算到结果处理的整个过程. 实例表明,综合运用各有限元分析软件,有利于发挥每种软件的优点,可以大大提高有限元分析的效率.   关键词:有限元; UG; HyperMesh; MSC Marc  中图分类号:TB115;O
期刊
摘 要 随着Intemet的出现和发展,电子商务技术也有了长足的进步,ASent概念的出现及其技术的进步,使它成为自动完成电子商务活动代理的理想选择。首先,文章基于多ASent思想构造了一个电子商务系统框架;其次,对此系统中AZent之间的通信协议要求进行了规范;通过分析,选择了XML作为ASent之间通信的消息格式;最后,在上述平台上集中研究了如何将关系型数据转换成XML数据的方法,并对此进
期刊
摘 要 数据可视化是计算机学科的一个重要研究方向,文章简要介绍了数据可视化的概念、研究现状,结合数据可视化技术在过程冶金中的CFD(Computional Flnuid Dynamic)应用,详细介绍了计算数据(速度场、温度场、浓度场等)的可视化方法、程序实现及其特点。  关键词 数据可视化 程序实现 过程冶金 CFD应用  文章编号1002—8331—(2003)24—0221—04
期刊
摘 要:针对制造业对三坐标测量软件的需求,基于三坐标测量机(Coordinate Measuring Machine, CMM)设计并实现测量软件MworksCAD. 将其体系结构分为4层:机器层、驱动层、功能服务层和界面层.将尺寸测量接口规范(Dimensional Measuring Interface Standard,DMIS)测量语言作为系统的信息载体,实现智能化的测量点采样、测量路径选
期刊
摘 要:研究美国航空工业计算机辅助训练委员会(Aviation Industry CBT (Computer-Based Training) Committee,AICC)制定的计算机辅助训练(CBT)课件开发规范,在分析现有CBT技术背景和航空培训需求的基础上,结合多媒体技术、视景仿真技术与虚拟交互技术,开发基于虚拟现实技术的交互式计算机辅助训练(Interactive CBT, ICBT)系统
期刊