毕业设计(论文)道路工程网络三维交互式可视化关键技术及应用_第1页
毕业设计(论文)道路工程网络三维交互式可视化关键技术及应用_第2页
毕业设计(论文)道路工程网络三维交互式可视化关键技术及应用_第3页
毕业设计(论文)道路工程网络三维交互式可视化关键技术及应用_第4页
毕业设计(论文)道路工程网络三维交互式可视化关键技术及应用_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 1 摘 要道路工程网络三维可视化技术是实现道路工程领域信息化、可视化的一项重要内容,在道路工程的应用可以贯穿设计、建设及运营的全生命周期,具有重要的研究意义。本文综合应用了道路路线设计、计算机网络技术、计算机图形学、网络地理信息系统等理论和方法,针对道路工程网络三维可视化中道路三维模型构建、网络框架总体设计、海量三维模型数据的调度与快速传输以及与网络地理信息系统的集成等难点问题进行了深入的研究。主要研究内容和成果如下:(1) 在分析和对比几种常用的计算机网络模型及体系结构的基础上,设计了适用于道路工程网络三维可视化需求的基于 http 协议的 b/s 模式三层网络框架。(2) 采用几何三维模

2、型构建技术,快速高效地实现了组成道路三维场景各要素模型的构建,为道路工程网络三维可视化提供了模型基础。(3) 提出并实现了一种面向海量模型数据网络快速传输的多分辨率简化算法,在服务器端将原始三维模型分解为最粗糙模型和一系列细节层次记录,并且最粗糙模型在客户端具有自动恢复到原始模型的能力。结合离散化处理、数据缓存、数据压缩等技术进一步提高了海量模型数据的传输速度。(4) 研究了基于较高性能 gpu 的客户端三维模型快速绘制方法,运用显示列表、vbo 等技术提高了复杂道路三维场景在客户端绘制效率,分析讨论了 gpu 可编程技术在道路工程网络三维可视化中的应用前景。(5) 提出了一种基于 mapxt

3、reme 和 ajax 技术的道路工程网络地理信息系统构建方法,重点研究了道路工程网络三维可视化系统与之集成和通信的机制,并实现了在 b/s 模式的客户端三维交互式场景和二维电子地图中,针对道路设计和建设信息的远程快速查询。(6) 综合运用以上所述方法和技术,在导师的指导和其他同学的协助下,采用 j2ee、jogl 等开发工具,结合 web3d 与 webgis 2技术开发了基于 b/s 架构的高速公路建设信息可视化查询平台,并将该平台应用于高速公路建设管理中,实践证明了本文所述关于道路三维网络可视化的理论和方法的正确性。关键词:道路,三维网络可视化,模型简化与调度,jogl,webgis 3

4、目录第一章第一章 绪绪 论论 61.1 引言61.2 研究目的及意义71.3 国内外研究现状71.3.1 道路三维建模71.3.2 道路模型视相关简化81.3.3 网络框架总体设计91.3.4 客户端渲染引擎101.4 主要研究内容131.5 论文结构14第二章第二章 网络框架总体设计网络框架总体设计 172.1 概述172.2 计算机网络模型与协议172.2.1 osi模型172.2.2 tcp/ip协议182.2.3 http协议192.3 计算机网络体系结构192.3.1 client/server结构202.3.2 browser/server结构202.3.3 c/s与b/s结构比较

5、212.4 系统开发环境选型222.4.1 客户端222.4.2 服务器端232.4.3 数据库242.4 整体框架和功能逻辑设计262.5 本章小结27第三章第三章 道路三维建模道路三维建模 283.1 三维模型的构建方法3033283.1.2概述283.1.2 路线场景三维模型总体构建方法313.2 地形三维模型323.2.1 地形三维模型概述323.2.2约束delaunay三角网模型的快速构建33 43.3 道路三维模型343.3.1 三角网模型343.3.2 孔斯模型353.3.3 道路三维模型构建37第四章第四章 网络环境下模型数据的调度与传输网络环境下模型数据的调度与传输 384

6、.1 概述384.2 模型多分辨率简化算法384.2.1 常用的地形三维模型简化技术384.2.2 多分辨率网格基本原理404.2.3 半边折叠414.2.4 顶点分裂444.3 模型的离散化处理454.3.1 地形三维模型的离散化处理464.3.2 道路模型的离散化处理474.4 数据调度与传输优化策略494.4.1数据缓存设计494.4.2 数据压缩传输504.4.3 客户端多线程524.4 三维模型总体调度流程53第五章第五章 客户端三维模型快速绘制技术研究客户端三维模型快速绘制技术研究 555.1 概述555.1 可视范围撷取555.2 显示列表565.3 vbo 顶点缓存 585.4

7、 gpu 直接编程技术595.4.1 gpu计算特性595.4.2 基于gpu的通用计算60第六章第六章 web3d 与与 webgis 技术集成技术集成636.1 概述636.2 基于 mapxtreme的 webgis 平台构建656.2.1 mapxtreme简介656.2.2 基于mapxtreme的道路webgis构建666.3 基于 mapxtreme的 webgis 平台改进和优化686.3.1 ajax技术简介686.3.2 运用ajax改进mapxtreme696.3.3 webgis服务器端的性能优化716.4 webgis 与 web3d 的集成及双向查询机制的建立73第

8、七章第七章 系统开发及应用实例系统开发及应用实例 767.1 概述767.2 系统概况767.2.1 系统开发环境76 57.2.2 运行环境777.3 系统界面777.4 系统模块80第八章第八章 结论与展望结论与展望 838.1 结论838.2 展望84参考文献参考文献 85致谢致谢88攻读硕士期间发表的论文及科研情况攻读硕士期间发表的论文及科研情况 89 6 第一章 绪论1第一章第一章 绪绪 论论1.1 引言科学计算可视化是发达国家在 80 年代后期提出并发展起来的一个新的研究领域。美国国家科学基金会(nsf) 1987 年 2 月专门召开了一次研讨会,会上提出了“科学计算可视化”这一全

9、新的解决方案,简称 visc(visualization in scientific computing)或 sv(scientific visualization),一门崭新的交叉学科应运而生1。此后,科学计算可视化成为近二十年来国际学术会议讨论的一个热点问题。自 1990 年以来,美国电气和电子工程师学会(ieee)每年举行一次有关科学计算可视化的学术会议,出版论文集。自 1995 年开始,美国 ieee 汇刊中又增加了一种刊物“ieee transactions on visuali-zation and computer graphics” 。与此同时,美国、德国的超级计算机中心、研究

10、所及大公司着手开发用于科学计算可视化的软件系统,并形成商品推向市场。如美国 stardent 计算机公司推出的 avs 系统,美国俄亥俄超级计算机中心开发的 ape 系统,德国达姆斯达特 fhg-agd 研究中心开发的 vis-a-vis 系统等。经过近二十年的发展,科学计算可视化理论和方法的研究已经在国际上蓬勃开展起来并开始走向应用2。随着互联网的迅速普及,传统的单机科学计算可视化也开始逐步朝着网络三维可视化(web3d visualization,本文中简称为 web3d)的方向发展,网络三维可视化技术的目的在于在互联网上建立三维的虚拟世界。由于具有信息表现形式直观生动、跨越地域限制、最大

11、程度地实现了数据共享和融合等显著特点,网络三维可视化技术已经成为当前科学可视化新的发展方向。web3d 是三维可视化与互联网的有机结合,是三维可视化在广域网环境下的一种应用。web3d技术虽然是近十年才逐渐发展起来的,但它的出现使得远程用户能够突破地域限制身临其境地浏览到三维交互式动画场景,所以从信息技术的角度而言,web3d 能最大程度地保证使用者实时、生动、直观地从任意角度浏览到三维场景所要表达的信息,并能借助于无处不在的网络将这种信息的触角延伸到世界每一个角落。web3d 技术的应用极其广泛,几乎可涉及自然科学和工程技术的所有领域,能很好地推动传统科学可视化的进一步发展和普及,在道路工程

12、中的应用更是可以贯穿设计、建设及运营的全生命周期,更好地促进道路工程领域的信息化、科学化进程。作为构建“数字公(铁)路”的基础核心技术之一,web3d 技术在道路三维可视化协同设计、道路建设与运营的远程管理等方面都将具有广阔的应用前景。 第一章 绪论21.2 研究目的及意义当前的道路三维可视化还只能实现单机环境下道路三维建模与动态交互式浏览,为了实现网络环境下的道路三维可视化,还存在网络框架总体设计、海量三维模型数据的调度与快速传输、与网络地理信息系统集成等问题尚需研究。针对道路工程网络三维可视化的难点问题,本研究提出了一揽子相应的算法和策略,并将研究成果运用于高速公路建设管理中。本研究的研究

13、意义如下:1. 道路设计:可在设计过程中逼真呈现道路建成后的场景,为方案评审、环境评估、安全审计等提供直观的辅助设计工具,特别是通过互联网不同地域设计人员可以进行可视化的协同设计,可充分满足道路设计的群体性、交互性、分布性和协调性的客观需求。2. 道路施工:可完全呈现道路建设区域地理环境、施工进度的真实情况,使各级决策层及管理、技术人员无论走到哪里,无论何时,都可按优先级别在道路虚拟场景中得到任何一个地方、任何部门的信息,这一信息以动静结合、具有高度沉浸感和临场感、交互方便的特性及表现方式展现在用户面前,为决策及生产指挥提供依据。3. 道路运营:建立反映道路运输状况的虚拟电子沙盘,能较好地适应

14、道路点多、线长、面广的特点,为事故抢险、设备维修、路径优化选择、列车追踪、道路安全管理等提供科学决策的依据。通过网络平台上可视化数据的共享,使管理者及时直观地了解全线道路信息,对全线运转状态进行统一的调度与管理,真正做到管理意义上的“所见即所得” 。1.3 国内外研究现状自 20 世纪 90 年代初开始,国内外学者、研究机构及著名软件公司针对道路三维可视化开展了长期深入的研究,取得了丰硕的成果,主要进展工作有:1.3.1 道路三维建模国外几个著名的道路设计系统如:美国 intergraph 公司的 inroads 和 inrail系统,英国的 mx 系统和德国的 card/1 系统均具有三维建

15、模功能3,4,其中英国的 mx 系统最具代表性,其最大的特点是采用了独特的“串”的概念,地表面模型表达采用串线,将“点集串”的概念扩展到“建议面”用来表达人工构造面模型。 第一章 绪论3国内学者在道路三维建模方面研究的总体思路是采用 delaunay 三角化算法建立数字地形模型;采用 coons 曲面片或三角网建立道路设计面模型,然后将二者拼合成整体模型5,6。其中,道路模型与地形模型的拼合问题是道路三维建模的难点,东南大学王福建博士将其归纳为线与面、面与面、面与网的相交等几种情况分别处理,并对求出的交线(点)作有效性判别7;中南大学道路与铁道工程研究所提出的“地形裁剪算法”8,应用约束 de

16、launay 三角网理论将道路模型区域内的地形首先删除,再与道路模型无缝拼合,使原来的分段分情况进行的交、并、差运算,转化为全线一次性的求并运算,简化了拼合计算过程。可见,国内外现有的三维建模方法都是采用分割归并的思想,分别建立道路和地形的三维模型,然后将二者拼合。这种方法虽然实现了道路模型与地面模型外观的整合,但模型之间的拓扑结构是完全割裂的,给后续的模型简化带来困难。因此,迄今为止,国内外现有的算法只能针对道路场景中的部分模型(地形模型或道路模型)实施简化,针对道路整体模型的简化问题还有待进一步研究。1.3.2 道路模型视相关简化早期的道路三维解决方案9,10通常采用前述方法建立道路三维模

17、型,然后导入 3ds max(或其它三维图形处理软件)渲染,生成指定路径的道路三维动态场景。这一技术已被广泛地应用于道路的设计方案审查,并在国内各道路勘测设计部门推广应用,该技术存在以下不足:(1)缺乏实时性:由于道路三维场景十分复杂、庞大,使得制作过程需要耗费大量的时间和空间,即使采用较高档的硬件配置,用户也往往要等候较长的时间才能浏览到道路的三维动态效果。(2)缺乏交互性:浏览路径一旦选定,难于再次修改,浏览者只是被动的听众或者观众,无法成为方案的体验者。为了解决这些问题,国内外学者开展了实时交互式可视化的研究,其核心问题在于复杂模型的视相关简化,即通过采用适当的算法,在不影响视觉效果的前

18、提下,对场景的绘制进行简化加速。模型简化技术的研究可以追溯到 1976 年,clark 首次提出了 lod 技术11,其基本思想是:用具有多层次结构的物体集合描述一个场景,即场景中的物体具有多个模型,其模型间的区别在于细节的描述程度,实时显示时,细节较简单的物体模型就可以用来提高显示速度。一直到上世纪 90 年代前半期,研究工作主要集中在离散 lod(levels of 第一章 绪论4detail,lod)模型的生成及实时显示方面12,13,即预先生成多个离散的不同细节层次的模型,交互过程中对于每个特定的场景只需选择一个合适的 lod 模型进行渲染。由于不同的 lod 模型之间在拓扑结构上互不

19、相关,因此不同模型间进行切换时,在视觉上会引起明显的突跳感。为了从根本上改变离散 lod 技术存在的上述问题,近年来出现了连续lod 模型。它是一种紧凑的模型表示方法,从这个表示中可以生成任意多个不同分辨率的模型,从而实现模型的连续显示。其优点是两个前后相继的 lod 模型的差别相对较小,进行模型切换时只会引起视觉上非常微小的变化。hoppe14提出的可根据需要控制生成三角形的数目的视点相关累进网格法; mark duchaineau 等15提出的一种基于三角形二叉树划分的实时优化自适应网格(roam,real-time optimally adapting meshes)算法是这一类方法的典

20、型代表。中南大学道路与铁道工程研究所是国内较早从事道路模型视相关简化研究的单位之一,针对道路场景模型,提出了基于边的数据结构,依据二次误差测度构建有序的边折叠操作层次结构,建立了综合考虑视锥截取、背面剔除及屏幕投影误差的视相关简化准则,根据这些准则从层次结构中确定视相关网格模型,从而构建出连续的道路 lod 模型16,17。模型简化技术的研究为实现道路场景的实时交互式可视化奠定了基础,但由于现有的模型简化算法普遍针对单机硬件环境,较少考虑数据 i/o 所耗费的时间,不能直接将其应用于道路工程网络三维可视化的研究与应用中。因而,网络环境下面向模型数据快速传输的模型视相关简化方法还有待进一步深入研

21、究。1.3.3 网络框架总体设计在网络框架总体设计研究方面,面向道路三维场景的研究很少见诸于文献,相关的研究以三维地形网络可视化为主:(1)1995 年, david koller 等人提出了三维地球的初步设计模型 vgis18, 对于虚拟三维地球的研究做出了很好的探索。(2)美国 keyhole 公司19在 2001 年开发的 earthsystem 是迄今为止较为完善的网络三维图形信息系统。 但它对计算机的配置特别是显卡要求很高,一般运行在配有 nvidia 显卡的客户端上。(3)teler 等人提出了服务器端只渲染最低层次的元素, 并把处理结果以图像的形式返回客户端, 而其它的 lods

22、 作为三维模型传到客户端, 可视化工作在客户端进行20。这样做的好处是最低一层的 lod 渲染时间加上图像传输时间比直接传输三维模型的时间要少,但大量元素和客户机同时运行时, 即使 第一章 绪论5最低层次数据的可视化过程也会非常复杂, 服务器的负载过重。(4)用 scense8 和 sgi 的 opengl vizserver 开发的虚拟环境软件 worldtoolkit 提供了一个基于 client/server 虚拟场景的开发环境21。worldtoolkit 虽然能够提供高质量的图形, 但所有的渲染工作全部在 sgi 服务器上完成, 三维场景作为图片传到客户端上, 即使客户端的计算机配置

23、很高, 也需要昂贵的服务器.(5)武汉大学测绘遥感信息工程国家重点实验室朱庆教授结合数码城市gis 软件的研发,提出了基于 web 的 3d 城市模型浏览器插件的体系结构22,采用 java 和 java 3d 实现了客户端三维数据在线操作与动态显示。(6)中科院遥感科学国家重点实验室张立强等借助 com 技术设计了一个基于网络的地形三维可视化系统23。该系统采用椭球四叉树空间索引、渐进传输技术和地形简化算法, 通过把海量空间数据发布到 pc 上, 满足多用户并发浏览、查询和分析的需要。网络环境下三维地形可视化信息系统的研究已经取得了一些进展,对道路工程网络三维可视化研究具有一定的参考价值。但

24、总体看来,现有研究成果在网络框架总体设计、海量三维模型数据调度与传输、模型整体简化等方面仍然缺少成熟而简单易行的方法。并且,大多数成果都基于虚拟现实造型语言(virtual reality modeling language,简称 vrml)开发,随着 web 技术的迅速发展和 vrml 应用领域的扩展,vrml 逐渐暴露出了它的缺点,如属性过多难于实现、处理复杂场景时数据冗余过多、与其它应用集成困难、稳定性和一致性不能满足用户要求等问题。因此,选取适应道路工程 web3d 需求的客户端渲染引擎、开发海量模型数据快速传输的策略和算法、在客户端高效地渲染道路三维场景是本文需研究的几个重点问题。1

25、.3.4 客户端渲染引擎当前 web3d 客户端场景渲染引擎尚处于群雄割据的状况,有多种实现方式,主流的客户端引擎有多种,如 vrml、java3d、jogl、cult3d 等,还没有形成各个开发者都遵守的统一标准,这是 web3d 走向普及面临的最大问题之一。但从另一角度而言,目前 web3d 还处于发展阶段,这种格局更有利于它的创新和发展,以下简要介绍几种主流的 web3d 客户端引擎技术。1) vrml24,251994 年 3 月在日内瓦召开的第一届 www 大会上,首次正式提出了vrml(virtual reality modeling language,虚拟现实造型语言)这个名字。

26、1994年 10 月在芝加哥召开的第二届 www 大会上公布了规范的 vrml1.0 草案,以 第一章 绪论6期待像 html(超文本标记语言)作为互联网文本传输协议那样,在互联网界形成一个统一的三维虚拟场景构建的国际标准。1996 年在新奥尔良召开的优秀 3d 图形技术会议 siggraph96 上公布通过了规范的 vrml2.0 第一版。它在 vrml1.0 的基础上进行了很大的补充和完善。它是以 sgi 公司的动态境界 movingworlds 提案为基础的。1997 年 12 月 vrml 作为国际标准正式发布,1998 年 1 月正式获得国际标准化组织 iso 批准,简称 vrml9

27、7,vrml97 只是在 vrml2.0 基础进行上进行了少量的修正和改进。sun 公司于 1997 年推出专门应用于三维图形应用领域的 java3d 开发包。java3d 是在 opengl、directx 等三维图形标准的基础上发展起来的,它的编程模型是基于图像场景的,这就消除了以前的 api 强加给编程人员的繁琐细节,允许编程人员更多的考虑场景及其组织,而非底层渲染代码。2002 年 vrml 设计小组发表了 vrml 的后续技术“x3d” ,但由于运行缓慢,功能不完备,所以并没有得到开发商等方面的普遍认可。虽然 vrml 及后续的 x3d 是作为 web3d 领域的国际标准,但由于其存

28、在数据文件太大、缺乏数据库接口、效率很低、缺乏场景控制等明显弱点,很多 web3d 应用特别是大型复杂场景的项目都没有应用它来实现。2) java3d26-28java3d 由 sun 公司在 1998 年年底正式推出,它是一个应用程序接口(api),用来构建带有三维图形的桌面应用程序和 applet 网页程序,它作为 java 语言的扩展,将 java“一次书写,随处运行”的优点带给了三维图形领域,使得java3d 能运行于多种平台。采用 java3d 编写的应用程序和 applet 可以访问所有的 java 类,使它易于与 internet 集成。java3d 的思想来源于现存的各种图形

29、api 及多种新技术,其低层图形结构综合了其他低层 api(direct3d、opengl、quickdraw 3d 和 xgl)的优点,相应的其高层结构也综合了多个图形系统的优点,它为开发者提供了高层建造工具,用来创建和操作三维图形,并构造了用于渲染图形的组织结构。java3d 的设计有几个目标,最重要的一点是高性能,另一些重要目标包括:(1) 提供一套丰富的特性,避免枝节性和模糊性;图 1-1 采用 java3d 实现的网络三维虚拟社区 第一章 绪论7(2) 提供一个高层的面向对象编程模型,使开发人员能快速开发复杂的应用程序和 applet;(3) 支持运行时装载器,这样 java 3d

30、就可以兼容多种文件格式,包括各种厂商自定义格式和 vrml 97。java3d 实现了以下三维显示所需要的功能:(1) 生成简单或复杂的形体(也可以调用现有的三维形体)。(2) 使形体具有颜色、透明效果、贴图。(3) 在三维环境中生成灯光、移动灯光。(4) 具有行为的处理判断能力(键盘、鼠标、定时等)。(5) 生成雾、背景、声音。(6) 使形体变形、移动、生成三维动画。(7) 编写复杂的应用程序,用于各种领域如 vr(虚拟现实)。java3d 是一个面向对象的 api。应用程序把单独的图形元素作为分离的对象来构造, 然后将其连接到一个树型结构(场景图)中,其编程模型基于图形场景,从而为描绘和渲

31、染场景提供了一个简单灵活的机制。场景图即对整个场景的完整描述,包括图形数据、属性信息和视点信息,利用这些数据,就可以从一个特定视点来渲染图形。java3d 消除了以前的 api 强加给编程人员的繁琐细节,允许编程人员更多地考虑形体本身,而不是组成它们的那些三角形面即考虑场景及其组织,而非底层渲染代码。因此 java3d 能为 web3d 提供很好的性能,一个使用 java3d 作为网络虚拟社区应用的案例如图 1-1 所示。3) jogl28-31jogl 即 java + opengl,由 sun 公司的两位资深计算机图形学专家 ken russel 和 chris kline 最先开发而成的

32、开源 web3d 引擎,是 java 语言对opengl 的绑定,即通过 java 本地接口的方式 (java native interfacejni)对opengl 技术进行访问和使用。jni 是 java 与其它编程语言的集成编程接口,它允许在 java 虚拟机(java virtual machine,即 jvm)上运行的 java 代码调用其他语言,例如 c , c+和汇编语言编写的动态连接库。而且也允许在本地应用程序中嵌入 java 虚拟机。这样 java 代码与其他语言编写的库和应用程序就能够互相调用。在 java 中调用其它编程语言生成的代码是通过动态连接库或者共享对象库的方式实

33、现的,而在其他语言中调用 java 对象是通过引用指向 java 对象的指针来实现的。如前文中所述,java3d 软件包在底层使用了 opengl 技术作为支持,是结合 java 语言和 opengl 的一种有效解决方案,但是它并没有保留 opengl 程序的编写规则,而是将实现过程封装在 api 内部。这样实现的优点是简化了使用 第一章 绪论8者的编程工作量,在构造简单场景时候更是非常有效。但缺点也很明显,就是这种封装掩盖了内部细节实现,束缚了程序员的思想。并且由于代码编写上和传统的 opengl 规则基本没有相似的地方,这对于一个熟练的 opengl 程序员转来编写 java 3d 程序的

34、话,原来的开发经验不会有任何用处,这个特性降低了 java 3d 的开发效率,局限了 java 3d 的推广。而 jogl 所采用的 java 通过jni 调用 opengl 的方式可使复杂的运算转移到系统级,大大提高了运算速度和效率,使得互联网上复杂的三维场景通过程序实现成为可能。当前 sun 公司游戏小组正在使用 jogl 来开发各种高级三维应用,如虚拟社区、游戏等,使用该 jogl 最著名的案例是美国 nasa 的 world wind 数字地球项目,如图 1-2 所示。其它 web3d 引擎如 shockwave3d、cult3d 等偏重于满足电子商务所需求的场景精细化要求,多用于小规

35、模三维场景的构建,在此不赘述。web3d 最初应用于电子商务、小型游戏等场景简单、数据量小的领域,但随着其应用领域的扩大和应用程度的加深,针对复杂场景和海量数据的处理方法逐渐成为 web3d领域研究的重点。1.4 主要研究内容本文的研究内容主要为以下几个方面:1.道路工程 web3d 网络框架总体设计网络框架是 web3d 应用系统的基础,直接关系到 web3d 系统的效率、稳定性和可扩展性,因此选择合适的网络体系结构和客户端引擎是本文需要考虑的首要问题。2.海量数据的管理、调度与传输道路三维场景的模型数据量通常呈海量分布,如何将海量数据在“服务器硬盘-服务器内存-网络-客户端内存-客户端硬盘

36、”这条“传送链”上高效地管理和快速地传输是本文需要研究的重点问题,本文从如建立缓冲区、压缩传输、多线程数据下载等多个方面着手,并结合模型离散化、网络环境下模型简化等“软”的技术手段来解决此问题。3.网络环境下三维模型简化图 1-2 采用 jogl 实现的 nasa world wind 数字地球 第一章 绪论9在 web3d 应用中,客户端的硬件水平参差不齐,为解决海量三维模型数据场景渲染与网络带宽及客户端微机硬件的矛盾,必须从三维模型内部几何结构着手进行面向网络快速传输的模型简化,即:在保证尽可能小的视觉损失的前提下减少初始需要渲染的几何体的数量,并且简化后的模型应具有恢复到原始精度的能力。

37、本文运用多分辨率细节层次模型和可视范围撷取两种模型简化方法,实现了网络环境下地形三维模型的简化,进一步提高了海量模型数据的传输效率。4.与 webgis 平台集成及其应用webgis(web geographic information system,网络地理信息系统)是 gis 与分布式计算技术发展相结合的产物,它将目前作为信息发布共享的平台因特网作为一个能够承载地理信息空间信息的平台,在 web 上提供地理空间数据的共享访问。将 web3d 技术与 webgis 结合集成起来构建成一个信息可视化综合平台则可以从更多维度来管理、展示和分析道路工程中的各种信息。本文研究了基于 mapxtrem

38、e 的道路工程 webgis 系统构建技术,将其与道路工程web3d 系统集成,并综合运用于高速公路建设信息可视化综合查询中,使得远程用户可以随时随地在二维平纵电子地图或三维交互式场景中查询各种工程建设信息和道路属性信息。1.5 论文结构本论文共由八章组成。第一章 绪论,介绍论文的研究目的、意义及国内外发展概况,主要研究内容等。第二章 网络框架总体设计,研究了道路工程 web3d 系统的基础网络结构的构成方法,设计了基于三层 b/s 模式的道路 web3d 系统框架,并介绍了实现各层的途径。第三章 道路三维模型构建,研究了三维几何模型的主要表示方法,并详细阐述了组成道路场景的地形三维模型和道路

39、三维模型的构建方法。第四章 网络环境下模型数据的调度与传输,首先研究了传统的面向单机三维可视化场景快速绘制的层次细节模型算法,以此为基础提出了一种面向网络快速传输 delaunay 不规则三角网数字地面模型的多分辨率简化算法,并提出了一揽子优化海量模型数据网络传输的策略。第五章 客户端三维模型快速绘制技术研究,研究了基于 gpu 高级扩展功能的提高客户端道路三维场景绘制效率的技术和方法。第六章 web3d 与 webgis 技术集成及道路工程信息查询,重点研究了道 第一章 绪论10路 web3d 和 webgis 的集成技术,并采用道路路线设计的计算模型和算法,将这两者以集成联动的方式应用于道

40、路设计及建设属性信息查询。第七章 系统开发及应用实例,结合有关科研课题,介绍了依据本文所述理论和方法开发的“常吉高速公路建设信息可视化综合查询系统”及其应用情况。第八章 结论和展望,对本文所做研究进行概括和总结,提出了道路工程网络三维可视化需要进一步研究的问题做了概要论述。 第一章 绪论11 第二章 网络结构总体设计12第二章第二章 网络结构总体设计网络结构总体设计2.1 概述道路工程 web3d 系统网络结构总体设计包括选择计算机网络模型与协议、选择计算机网络体系结构、开发环境选型等部分,是构建道路工程网络三维可视化系统的基础和前提,它直接关系本研究中后续功能模块的进行和拓展,也会影响整个

41、web3d 系统的运行效率。本章中,在对比分析几种常用的网络模型协议和网络结构的基础上,提出了适用于道路工程 web3d 需求的三层 b/s网络架构,以及各层的实施方案与逻辑功能划分。2.2 计算机网络模型与协议计算机网络是由多台计算机和各类终端设备通过网络媒体连接起来的复杂系统,为了使不同厂家、不同结构的系统能够顺利互联,使用户能从不同的制造厂商获得兼容的硬件设备来组成一个可以相互沟通的网络,各通信系统必须遵守相同的规则和约定。因此,这就必须建立一系列标准化的网络机制,定义一整套关于接口、服务、协议的规范要求,让所有硬件制造厂商都执行统一的标准和体系结构。就像人类的语言一样,要使计算机连成的

42、网络能够互通信息,需要有一组共同遵守的通信标准,这就是网络模型与协议。道路工程网络三维可视化系统的建立,首先需要选择合适的计算机网络模型与协议,然后才能根据道路模型的功能需求,设计系统的整体框架和选用开发环境。2.2.1 osi 模型开放系统互连 osi(open system interconnection)参考模型是国际标准化组织(iso)1977 年制定的标准化开放式计算机网络层次结构模型, “开放”这个词表示能使任何两个遵守该参考模型的系统进行互连。osi 包括体系结构、服务定义和协议规范三级抽象,osi 的体系结构定义了一个七层模型,用以进行进程间的通信,并作为一个框架来协调各层标准

43、的制定;osi 的服务定义描述了各层所提供的服务,以及层与层之间的抽象接口和交互用的抽象原语;osi 各层的协议规范,精确定义了应当发送何种控制信 第二章 网络结构总体设计13息及何种过程来解释该控制信息。如表 2-1 所示,由低层到高层分别描述了osi 七层模型各层的功能。osi 参考模型并非具体协议实现的描述,而是一个为制定标准机制而提供的概念性框架。在 osi 中,只有各种协议是可实现的,并且网络中的设备只有在与 osi 和有关协议相一致时才能互联。2.2.2 tcp/ip 协议tcp/ip 协议(transfer control protocol/internet protocol)即

44、传输控制/网际协议,是网络中使用的基本的通信协议。1983 年 1 月 1 日,在因特网的前身(arpa 网)中,tcp/ip 协议取代了旧的网络核心协议(ncp,network core protocol) ,从而成为今天的互联网的基石。最早的 tcp/ip 由文顿瑟夫和罗伯特卡恩两位开发,慢慢地通过竞争战胜了其他一些网络协议的方案,比如国际标准化组织 iso 的 osi 模型。tcp/ip 的蓬勃发展发生在上世纪的 90 年代中期。当时一些重要而可靠的工具的出世,例如页面描述语言 html 和浏览器mosaic,导致了互联网应用的飞速发展。tcp/ip 协议是一个协议集合,覆盖了 osi

45、七层模型中的六层(除硬件方面的物理层之外),如传输层的 ftp、udp、tcp 协议,网络层的 ip 协议,应用层的 http、ftp、pop3 协议。虽然 tcp/ip 体系不是国际标准,但由于tcp/ip 协议的简单、实用、高效和成熟,更由于 internet 的流行使遵循 tcp/ip协议的产品大量涌入市场,几乎所有的网络公司的产品都支持 tcp/ip 协议,这就使得 tcp/ip 成为计算机网络的事实上的国际标准,它的使用真正保证了许多硬件和软件平台之间毫无困难的连接。层数名称功能1物理层实现计算机系统与网络间的物理连接2数据链路层进行数据打包与解包,形成信息帧3网络层提供数据通过的路

46、由4传输层提供传输顺序信息与响应5会话层建立和终止连接6表示层数据转换,确认数据格式7应用层提供用户程序接口表 2-1 osi 模型中各层的功能 第二章 网络结构总体设计142.2.3 http 协议http 即(hypertext transfer protocol)协议,即超文本传输协议,是用于internet 中服务器与客户端浏览器之间传输基于超文本标记语言(html-hyper text markup language)的文件或数据的协议,它是 tcp/ip 协议应用层的一个子协议,它可以使浏览器与 web 服务器间通过互联网更高效可靠地传输数据,该协议允许在服务器与客户端之间传输任意

47、类型的数据对象。http 协议是基于请求/响应范式的:一个客户机与服务器建立连接后,发送一个请求给服务器。服务器接到请求后,返回相应的响应信息,其格式为一个状态行包括信息的协议版本号、一个成功或错误的代码,而后是 mime 信息包括服务器信息、实体信息和传输的内容。如图 2-1 所示,它分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。(1) 连接的建立是通过申请套接字(socket)实现的。客户打开一个套接字并把它绑定在一个端口上,如果成功,就相当于建立了一个虚拟文件。以后就可以在该虚拟文件上写数据并通过网络向外传送。(2) 打开一个连接后,客户机把请求消息送到服务器的特定端口上,

48、完成提出请求动作。(3) 服务器在处理完客户的请求之后,要向客户机发送响应消息。(4) 客户和服务器双方都可以通过关闭套接字来结束 tcp/ip 对话。综上所述,由于 http 协议具有可靠、高效、灵活性高等显著特点,并且基于 http 协议的网络应用程序可最大程度减少对客户端硬件软件性能的要求,能够满足道路工程 web3d 系统海量三维模型数据实时传输的需要,因此在本研究中采用基于 osi 模型的 http 协议作为系统的基础网路模型与协议。2.3 计算机网络体系结构体系结构就是用于定义一个系统的结构及系统成员间相互关系的一套相对关系和模式,从单机时代的主机/终端模式、文件服务器时代的共享数

49、据模式,客户机/服务器时代的 c/s 模式、电子商务时代的 b/s 网络模式,发展到目前的图 2-1 http 信息交换模式 第二章 网络结构总体设计15三层甚至多层模式,网络应用程序的体系结构己经发生了巨大的变化。2.3.1 client/server 结构client/server (c/s,客户端/服务器)结构是上世纪 80 年代兴起的网络结构,是伴随着网络数据库和图形交互窗口应用及其开发技术的发展而逐渐形成的。1.c/s 两层结构通常所讲的 c/s 结构是两层结构,第一层在客户端结合了表示与业务逻辑,即负责处理用户的输入与输出并完成事务的逻辑处理;第二层通过网络结合了数据库服务器或服务

50、程序。c/s 体系结构在分布处理过程中,使用 socket 类建立可靠的基于连接的网络链接,客户端/服务器再在这条链路上可靠地传输数据,其运作流程如图 2-2 所示。两层 c/s 结构在一段时间内得到了广泛的运用,而且相当成功。然而随着信息系统结构的复杂和规模的日益扩大,两层 c/s 结构逐渐暴露出其架构上的缺陷:由于客户端和服务器端直接连接,服务器将消耗部分系统资源用于处理与客户端的连接工作,那么每当同时存在大量客户端数据请求时,服务器有限的系统资源将被用于频繁应付与客户端之间的连接,从而无法及时响应数据请求。客户端数据请求堆积的直接后果将导致系统整体运行效率的大幅降低甚至全面崩溃。此外,它

51、是单一服务器且以局域网为中心的,所以难以扩展至大型企业广域网或 internet。2.c/s 三层结构为了解决以上所述 c/s 两层结构的问题,三层 c/s 结构应运而生,它将两层 c/s 结构中客户端与用户界面无关的功能移到了中间层。所谓的三层结构包括:表示层、应用层和数据层。(1) 表示层是用户接口部分,是用户与系统间交互的界面。(2) 应用层是应用的主体,它包括应用中全部的业务处理程序。(3) 数据层是数据库管理系统和数据库,负责管理对数据库中数据的读写。2.3.2 browser/server 结构browser/server (b/s,浏览器/服务器)结构是网络技术兴起后的一种网络结

52、图 2-2 c/s 结构运作流程 第二章 网络结构总体设计16构模式,web 浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。b/s 结构实际上是三层 client/server 结构转化而来的。它将 web 浏览器作为表示层,将大量的业务处理程序放在应用服务器上作为应用层,而将数据库放在数据库服务器上作为数据层。如图 2-3 所示,为典型的 b/s 应用体系结构。2.3.3 c/s 与 b/s 结构比较在 c/s 结构中,客户端有完整的应用程序,在出错提示、在线帮助等方面都有很强的针对性;其次,c/s 结构通过将任务

53、合理分配到 client 端和 server端,既降低了系统的通讯开销,又可以充分利用两端硬件环境的优势,因此这种模式具有强壮的数据操纵和事务处理能力;又由于 c/s 是配对的点对点的结构模式,采用适于局域网的安全性较好的网络协议,所以保证了数据的安全性和完整性;它可以将大量计算功能由前台转移到后台处理,既可以大大提高系统处理速度,也可以提高数据访问的正确性。但是,开发成本高、移植性差、系统不利于维护等缺点也显而易见。在 b/s 结构中,业务处理逻辑模块从客户机中分离出来,由 web 服务器来负担,就使客户机的压力大大减轻,使客户机从沉重的负担和不断对其提高性能的要求中解放出来,也把技术人员从

54、繁重的维护、升级工作中解脱出来,形成了“瘦客户端-胖服务器”模式。目前来看,安全性问题是 b/s 结构所面临的最大问题。与 c/s 结构相比,采用 b/s 模式的体系结构具有以下优点:(l) 扩展性好:b/s 结构中采用浏览器作为表示层,由于 internet 支持底层的 tcp/ip 协议,与目前使用的几乎所有局域网都可以做到无缝连接,从而彻底解决了异构系统间的连接问题,同时也可以较为轻松实现与其它 b/s 平台间的集成和互联;(2) 开放性好:采用“瘦客户端” ,使系统具有彻底的开放性,系统不限制将要访问系统的用户数;(3) 易于维护:由于客户端无需安装专用的软件,对应用系统进行升级时,只

55、需更新服务器端的软件,需要更新客户端插件时用户从网上自己下载安装就浏览器浏览器应用服务器数据库服务器图 2-3 b/s 结构 第二章 网络结构总体设计17可以实现升级,实现系统的无缝升级,减轻了系统维护与升级的成本与工作量,使用户消耗的总体成本大大降低;(4) 界面统一,使用简单。总而言之,两种结构都有各自的优缺点,而且在相当长的时期内发展共存,开发者需根据具体情况进行选择,甚至可以采用 c/s 和 b/s 混合结构,发挥二者的优势。道路工程三维可视化系统在应用中需要面向 internet 环境,面向分散于不同地域的众多用户,需要有很好的可移植性和扩展性以及跨平台性,因此,本文中基于三层 b/

56、s 结构来进行道路工程网络三维可视化的研究。2.4 系统开发环境选型2.4.1 客户端在道路工程 web3d 系统中,客户端是与用户直接交互的界面,因此客户端三维引擎的选取直接关系到交互性用户体验、可扩展性等问题。当前主流的web3d 客户端渲染引擎有 vrml、java3d、jogl、cult3d 等,第一章中已经分别探讨了这几种引擎的特点和适用性,本研究中采用 jogl + java applet 的方式作为客户端三维场景渲染平台。java applet 是能够在网页上运行的 java 程序,是基于插件 web3d 应用常用的客户端技术,它是由完整的面向对象编程语言-java 写成的,所以

57、要比解释型语言 html、xml 及脚本技术等的任意组和强大得多,它的出现极大增强了基于浏览器的客户端程序的功能和可扩展性,java applet 同时也继承了 java 语言一贯的跨平台特征。在网页中使用 applet 的思路很简单:html 页必须告诉浏览器需要加载哪个 applet,并且加载到网页中的哪个位置。所以,使用applet 所需要的标记必须说明如下信息:1. 类文件的位置。2. applet 如何布置在网页上(大小、位置等等) 。这样浏览器就可以从网络(或者从用户的机器上的目录中)获取类文件并且使用它的 java 虚拟及自动运行 applet。除了 applet 本身以外,网页

58、也可以包含所有其他 html 元素:多字体、图形、连接等等。applet 只是超文本页的一部分。java 编程语言并不是设计 html 网页的一个工具,它是一个赋予它们生命的工具。applet 不能在 ie 浏览器上运行,所以必须安装 java 插件,使得 ie浏览器能够通过使用 sun 提供的一个外部 java 运行环境 jre(java runtime environment,java 程序运行时环境)来执行 java applet。如第一章中所述,jogl 是 java 语言对 opengl 技术的绑定,而 opengl 是 第二章 网络结构总体设计18业界最为流行也是支持最广泛的一种底

59、层 3d 技术,几乎所有的显卡厂商都在底层实现了对 opengl 的支持和优化,将具有强大网络程序构建能力的 java 及j2ee 平台实现对 opengl 的绑定使得 jogl 在该领域具有很多其它 web3d 引擎无可比拟的优势:(1) web3d 应用方面,jogl 的最大优势在于它的代码可传输性,即用来生成可视化场景的 applet 程序可以方便地从服务器传给客户端,然后在客户端本地运行。也就是说,传输的不是图像本身,而是控制图像生成的程序和数据,从而大大节省了网络传输的数据量;(2) 与 java 及 j2ee 平台的结合使得基于 jogl 的 web3d 技术具有很好的跨平台性和可

60、扩展性,在不同种类的用户操作系统上只需装有 jre 即可运行 jogl程序,并且 j2ee 强大的扩展性也使得采用 jogl 的 web3d 平台与其它网络信息技术的集成相对容易;(3) 与 opengl 的结合使得 jogl 具有高度灵活性,在真实感图形绘制、三维场景组织等方面完全由开发者自由操控,这使得 jogl 可以胜任任意复杂度的三维场景的渲染工作。2.4.2 服务器端在道路网络三维可视化系统中,运行在 web 服务器的程序作为客户端请求和数据源之间的中间层,其任务是处理客户端的请求信息,而后生成并设置相应的结果,最后把结果返回给客户端。在 web 开发中,主要有 cgi(common

温馨提示

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

评论

0/150

提交评论