一种可扩展通用三维地景仿真系统的制作方法

文档序号:6584463阅读:304来源:国知局
专利名称:一种可扩展通用三维地景仿真系统的制作方法
技术领域
本发明涉及地景仿真,尤其涉及一种可扩展的通用三维地景仿真系统,属于数字
化地球、三维地理信息显示与虚拟现实交叉技术领域。
背景技术
实时地景仿真在数字地球,虚拟现实、3D GIS、计算机游戏等系统中有非常重要的应用。在已经公开的技术中对于单个较小规模的地形绘制与显示有较多成熟的技术。Lindstrom在1996年首次提出了连续层次细节的地形多重分辨率绘制方法(P. Lindstrom,David Koller, William Ribarsky, Larry Hodges, Nick Faust, and Gregory Turner.Real-Time,Continuous Level of Detail Rendering of Height Fields. ACM SIGGRAPH 96Proceedings, pp. 109-118, August 1996.),该算法使用四叉树来组织描述地形场景。其自底向上的从最精细模型开始简化的模式会耗费大量的CPU计算时间,而且其顶点依赖关系利用显式数据结构保存也需要大量的存储开销,这样的缺陷使其很难应用到规模较大的地形场景之中。 约束四叉树算法(Restricted Quadtree)是Pajarola在Lindstrom算法基石出之上的延伸禾口改进(Renato Pajarola. Large scale Terrain Visualization usingthe Restricted QuadtreeTriangulation. Proceedings IEEE Visualization ' 98,pp. 19-26&515,1998.)。他使用四叉树阵列数据结构支持大规模场景的数据的载入。该方法只需要记录顶点的高度值和顶点所代表结点所在区域的误差值,而且不需要显式建立各个顶点之间的依赖关系,但是该方法会产生许多的退化三角形。 Lindstrom针对out-of-core的大规模地形数据设计了 一种压縮数据结构,该结构具有很高的相关和一致性,利于从外存或者远程网络快速载入所需数据流
(P.Lindstrom, ValerioPascucci. Terrain Simplification Simplified :A GeneralFramework for View_DependentOut_of_Core Visualization. IEEE Transactions onVisualization and Computer Graphics 8(3) :239-254(2002).)。 ROAM地形绘制算法是属于 一 种规则方格类型方法(M. Duchaineau,Murray Wolinsky, David E.Sigeti, Mark C. Miller, Charles Aldrich, and MarkB.MineevWeinstein. ROAMingterrain :Real_time optimally adapting meshes. IEEEVisualization 97 Conference Proceedings, pp. 81-88, October 1997.)。 该算法弓l入三角形二叉树结构,同时还有双优先级队列结构的层次细节更新机制以满足L0D约束的地形绘制。 针对图形硬件GPU的特殊结构,Lasasso等提出 一 种在GPU上实现的GeometryClipmaps地形绘制技术(Lasasso F, Hoppe H. Geometry Clipmaps :TerrainRendering UsingNested Regular Grids. ACM Transactions on Graphics 23(3):769-776, 2004),该方法将数据存储在GPU的高速顶点缓存中,并动态构建以视点为中心的嵌套规则网格。
以上方法的探讨基本上都局限于三维地形网格的构建与绘制算法,其中数据与数
据结构和算法的紧密耦合,算法对于数据结构的依赖度非常高,且处理的数据集都是规模
不大的本地地形数据,而且难以与地理信息系统相结合。而当今的全球三维地理信息系统
和虚拟现实环境所需要处理的是全球海量(TB级以上)的各种类型的数据,且数据的存储
分布是基于网络环境的。因此对于每个客户端来说,瓶颈往往不仅仅限于地形表面绘制算
法,还在于如何组织和管理各种超大规模海量数据(如地形数据,纹理数据,三维GIS矢量
数据等),以及如何使得数据的获取和传递能够和实时渲染协同而高效的进行。 因此,提出一整套涉及地形算法数据获取和组织、管理,能够胜任现代地景仿真系
统的要求并且具有较强的可扩展可嵌入性的通用系统架构方案是本领域亟待解决的技术问题。

发明内容
本发明的目的在于克服现有技术中存在的地形绘制系统不可扩展,通用性低的技术问题,提出一种新的地景仿真系统。 为了实现上述技术目的,本发明将算法与数据剥离,把系统抽象为四个通用逻辑模块,之间采用低耦合的异步请求通讯方式,可直接替换与重写其中任意模块而不影响其他模块运行而完成系统修改。可支持多种常规地形绘制算法,以及数据组织方式,网络层实现直接嵌入。系统可快速植入其他图形系统。本发明是一个完全通用的框架,不需要针对不同的数据结构,数据规模,数据获取方式进行相应的调整。该系统框架具有处理无限地形数据能力,可以浏览全球任何地点任何精度的地球表面信息,并且提供了三维GIS接口,支持多种地理信息系统动能。 具体来说,本发明采用如下技术方案 —种可扩展通用三维地景仿真系统,所述系统包括三维地形构建模块,映射模块,纹理模块,和缓存模块,所述映射模块和所述纹理模块均分别和所述三维地形构建模块和所述缓存模块数据连接; 所述三维地形构建模块请求并接收来自所述映射模块的高程数据和来自所述纹理模块的纹理数据,构建三维地形,并将绘制信息输出至绘制器; 所述映射模块接收所述三维地形构建模块的高程数据请求、相机的信息输入和用户控制信息输入,并将所述高程数据从所述缓存模块映射至所述三维地形构建模块;
所述纹理模块向所述三维地形构建模块提供纹理数据; 所述缓存模块向数据源请求所述映射模块和所述纹理模块向所述缓存模块所请
求的数据并缓存所述数据中的一部分。
图1给出了本发明三维地景仿真系统的结构图。 优选地,所述三维地形构建模块和一地理信息系统(GIS)接口数据连接。通过该接口可以向本发明的三维地景仿真系统提供对地理信息系统功能的支持。所述三维地形构建模块可进一步将所有复合地理信息(包括矢量地理图层,矢量以及标量地理信息)等显示信息叠加至三维地形表面,共同输出至绘制器。该接口进一步实现的功能优选包括空间坐标查询,空间距离查询,面积和体积测量,水淹分析,通视性分析,等高线查询等地理信息功能。
优选地,所述映射模块包括一不分页的高速二级缓存,所述二级缓存小于所述缓存模块并和所述缓存模块并行。 优选地,所述缓存模块采用三维的环形数组分页结构。 更优选地,所述缓存模块和所述数据源之间还包括一请求队列,所述请求队列保
存所述缓存模块的数据请求,所述请求队列可包括一排序模块,所述模块按优先级对所述
数据请求排序,所述请求队列还可包括一去重模块,所述模块去除所述数据请求中的重复
请求。所述请求队列还可包括一合并优化模块,所述模块将分散区域的数据请求合并成较
大完整区域的数据请求的优化处理,以降低网络请求或者磁盘io请求的频度。 所述缓存模块和所述数据源之间还可包括一数据池,所述数据池保存来自所述数
据源的数据,所述缓存模块从所述数据池获取数据。
图2给出了上述缓存模块获取数据的具体实现方式的实例。 此外,所述数据源可以包括网络传输层和/或磁盘。当所述数据源同时包括网络传输层和磁盘时,可在所述请求队列中设置一数据源选择模块,所述模块优先选择所述磁盘作为所述数据请求的数据源。 和现有技术相比,本发明三维地景仿真系统具有更好的可扩展型和通用性,不仅其中的各个功能模块可根据实际需要进行修改和替换,整个绘制系统也可以方便地根植于图形系统。另外,本发明是一个完全通用的框架,不需要针对不同的数据结构,数据规模,数据获取方式进行相应的调整。该系统框架具有处理无限地形数据能力,可以浏览全球任何地点任何精度的地球表面信息,并且提供了三维GIS接口 ,支持多种地理信息系统动能。


图1是本发明三维地景仿真系统的结构图; 图2是本发明系统中的缓存模块获取数据的具体实现方式的实例;
图3是本发明实施例地景仿真系统的结构图。
具体实施例方式
下面通过具体实施例结合附图对本发明作进一步描述。 本实施例提供一种基于网络的三维地景仿真系统,这个系统的框架是可扩展并且模块低耦合的,也就是说其中任何一个部分都可以独立替换成其他算法或者实现,而不影响其他模块。只需要保持基本通讯接口不变即可。该系统结构可以适应几乎任何的地形算法,以及任何的数据管理机制和缓冲机制,能够支持无论C/S还是B/S网络架构。
图3是整个地景仿真系统的结构示意图,可以看到,该地景仿真系统和外部图形系统相关的只有四个接口,一个是单纯的输出接口,由三维地形构建模块将绘制信息输出至绘制器;一个是双向的数据交互接口 ,三维地形构建模块通过该接口和地理信息系统接口连接,得到地理信息系统功能的支持;剩下两个是单纯的输入接口,获取相机的信息(包括相机的姿态,焦距,取景器等)和用户的控制信息,这些输入信息由映射模块接收。作为现代意义的一般性图形引擎,通过实现上述三个单纯输入和输出的标准性的接口 ,整套地景仿真系统就可以直接植入任何图形系统。为了方便与三维地理信息系统的集成,本实施例进一步在三维地形构建模块中提供此地理信息系统接口 ,该接口提供矢量地理图层,矢量以及标量地理信息显示功能的支持,以及包含了空间坐标查询,空间距离查询,面积和体积测量,水淹分析,通视性分析,等高线查询等地理信息功能的支持。 此外,为了能够提供一个通用的抽象机制,使得任何地形绘制算法,任何缓存机制或者数据组织机制都能够替换使用,本实施例对地景仿真系统中的每个模块进行一个通讯标准的规范化并且提供尽量少的通讯接口,降低耦合度。图3已经标出了各个模块之间的通讯通路,模块之间的通讯都是以请求的方式实现的。 在本实施例地景仿真系统中,另有一个双向的外部数据获取机制,获取数据的方式对于整个地景仿真系统是透明的,其中既可以来自于网络传输层,也可以来自于本地磁 下面对本实施例地景仿真系统的各个模块单独作详细描述。
1.映射模块 映射模块的主要作用是接受三维地形构建模块的数据请求,然后向所述三维地形构建模块返回请求的数据,这个模块并不直接访问数据,而是通过访问数据管理容器-缓存模块_来实现三维地形构建模块的数据映射,实现从逻辑坐标空间到世界坐标数据的映射。数据的实际组织形式对于该模块是透明的。虽然从抽象的角度上来看,映射模块只是一个封装容器,但是由于分页映射时间消耗较大,因此本实施例在映射模块中加入一块比缓存模块更小的不分页的高速二级缓存与缓存模块并行,此设置在实际使用时效率非常的高,可以填平映射效率缺口 。 映射模块是局限性很强的一般三维地形构建算法与缓存模块中的海量数据之间形成的一道桥梁,并且能够达到各种预想的浏览效果(比如场景,视点跟随,或者地球视角等)。在本实施例中,用户可从任意角度进行观察、实时交互,可在所选择的地理范围内外自由移动,这些都是在映射模块中进行实现。如果更改整个地景系统的浏览策略,则重新实现映射模块就可以完成。 可以说映射模块是唯一和相机以及用户相关的模块,用户控制信息或者相机的信息作为外部输入由映射模块进行处理。映射模块接收到输入的相机信息和用户控制信息之后,会将该信息中的部分控制信息转送给三维地形构建模块,所述控制信息控制三维地形构建模块生成网格的形态。同时映射模块根据相机信息的更新和用户输入的控制信息计算地形信息的变更,如果发现出现逻辑地形信息缺失或者不满足三维地形构建的数据条件,则向缓存模块发送获取地形数据的请求。 总的来说,地形构建模块和映射模块之间的协同工作机制为地形构建模块向映射模块索要地形数据;映射模块根据地形构建模块的要求以及用户的控制信息和相机的参数检查该地形数据是否存在于缓冲模块中,如果存在,则向缓冲模块请求数据的地址并将地址发给地形构建模块,由地形构建模块使用数据;如果不存在数据,则向缓冲模块发送数据不存在的通知消息,由后者获取数据。
2.缓存模块 缓存模块是一个内存中的数据缓冲器,其作用是封装数据格式,提供读写和查询接口,同时在内存中对可能会经常访问数据进行缓存,以及向数据源(本地磁盘和网络传输层)发送数据请求。缓存模块是完全独立的数据管理模块,不包含任何场景,视点位置相关的信息,也不自主预测等。数据在缓存模块里面通常是分页或者分块的,不过对外透明,数据请求总是从内存缓存中调取。当映射模块向缓存模块发送数据请求时,若缓存模块的 缓冲页面中驻留了所请求的地形数据,则缓存模块将其返回给映射模块。但由于内存缓存 有限,映射模块所请求的数据可能并不在当前的缓冲之中(即缺页),所以必须进行换页调 度使得映射模块所请求的数据所在的数据块进入并驻留在缓存模块的页面缓冲之中。为 此,本实施例在此处使用页面过期以及换页机制。考虑到地形数据的特性,即地形数据访问 在一定空间内具有连续性性质,本实施例在缓存模块中采用环形结构数组的方式,实际采 用的是一个三维的环形数组分页结构。 一旦发生缺页,缓存模块将所缺数据的编号发送至 数据请求队列(Request queue)。 请求队列具有队列排序功能,比如设置一排序模块,按照优先级管理所有的数据
页面请求。请求队列还具有去重功能,比如设置一去重模块,去除请求队列中重复的请求。
此外,请求队列还具有优化功能,比如设置一合并优化模块,将分散区域的数据请求合并成
较大完整区域的数据请求,作此优化处理以降低网络请求或者磁盘IO请求的频度。 请求队列按照设定的机制向本地磁盘和网络传输层进行请求的发送,如果请求队
列中的数据源选择模块发现本地磁盘上面有数据缓存,则放弃网络传输层请求(该过程对
用户透明)。 一旦启动了网络传输层请求,则网络传输层封装网络底层的传输协议,逐个响
应请求队列的要求向数据服务器或者服务器的集群发送所请求的数据,写入一数据池,数
据池是在内存中开辟的一块固定大小的存储区,专门用于临时存储从网络或者磁盘接收到
的固定大小的数据包, 一旦该数据池的数据满,就将数据池中数据发送至缓存模块,缓存模
块将页面写回缓存。 3.三维地形构建模块 三维地形构建模块通过其中的地形构建算法构建三维地景。具体的地形构建算法 可以采用多种现有的主流地形算法,比如帧无关的自顶向下四叉树算法,帧相关的自适应 性地形算法ROAM等等,甚至非同步的地形算法。 任何三维地形构建算法,都需要使用高程数据和纹理数据。在本实施例中,高程数 据通过映射模块获取,而纹理数据则通过纹理模块获取。
纹理模块负责纹理的管理,纹理的生成与绑定。 纹理模块在后台完成各种复杂的纹理混合工作,同时和缓存模块进行交涉获取纹 理块数据。当三维地形构建模块需要使用纹理数据时,向纹理模块发送请求,如果所需要使 用的纹理在纹理模块之中已准备完毕,则纹理模块将可用的纹理ID发送给三维地形构建 模块,供其使用。如果该请求的纹理未准备好,则纹理模块向缓存模块发送纹理数据欠缺的 通知,由缓存模块向数据源发出数据请求,一旦获得了纹理数据,则纹理模块再进行纹理的 封装和绑定(封装即将内存之中的数据集传输到显存之中,并转换成GPU能够识别和处理 的纹理数据格式),以上工作完成时,纹理即准备完毕,可以提供给三维地形构建模块使用。
3D地形构建模块完成地形的构建之后,即可将所有绘制信息输出给绘制器,由绘 制器进行绘制。
权利要求
一种可扩展通用三维地景仿真系统,其特征在于,所述系统包括三维地形构建模块,映射模块,纹理模块,和缓存模块,所述映射模块和所述纹理模块均分别和所述三维地形构建模块和所述缓存模块数据连接;所述三维地形构建模块请求并接收来自所述映射模块的高程数据和来自所述纹理模块的纹理数据,构建三维地形,并将绘制信息输出至绘制器;所述映射模块接收所述三维地形构建模块的高程数据请求、相机的信息输入和用户控制信息输入,并将所述高程数据从所述缓存模块映射至所述三维地形构建模块;所述纹理模块向所述三维地形构建模块提供纹理数据;所述缓存模块向数据源请求所述映射模块和所述纹理模块向所述缓存模块所请求的数据并缓存所述数据中的一部分。
2. 如权利要求1所述的可扩展通用地景仿真系统,其特征在于,所述三维地形构建模块和一地理信息系统接口数据连接。
3. 如权利要求1所述的可扩展通用三维地景仿真系统,其特征在于,所述映射模块包括一不分页的高速二级缓存,所述二级缓存小于所述缓存模块并和所述缓存模块并行。
4. 如权利要求1所述的可扩展通用三维地景仿真系统,其特征在于,所述缓存模块采用三维的环形数组分页结构。
5. 如权利要求l-4任意一项所述的可扩展通用三维地景仿真系统,其特征在于,所述缓存模块和所述数据源之间还包括一请求队列,所述请求队列保存所述缓存模块的数据请求,所述请求队列包括一排序模块,所述模块按优先级对所述数据请求排序。
6. 如权利要求5所述的可扩展通用三维地景仿真系统,其特征在于,所述请求队列包括一去重模块,所述模块去除所述数据请求中的重复请求。
7. 如权利要求5所述的可扩展通用三维地景仿真系统,其特征在于,所述请求队列包括一合并优化模块,所述模块将分散区域的数据请求合并成完整区域的数据请求。
8. 如权利要求5所述的可扩展通用三维地景仿真系统,其特征在于,所述缓存模块和所述数据源之间还包括一数据池,所述数据池保存来自所述数据源的数据,所述缓存模块从所述数据池获取数据。
9. 如权利要求5所述的可扩展通用三维地景仿真系统,其特征在于,所述数据源包括网络传输层和/或磁盘。
10. 如权利要求9所述的可扩展通用三维地景仿真系统,其特征在于,所述数据源包括网络传输层和磁盘,所述请求队列包括一数据源选择模块,所述模块优先选择所述磁盘作为所述数据请求的数据源。
全文摘要
本发明一种可扩展通用三维地景仿真系统,属于数字化地球、三维地理信息显示与虚拟现实交叉技术领域。本发明系统包括三维地形构建模块,映射模块,纹理模块和缓存模块,所述映射模块和纹理模块均分别和三维地形构建模块和缓存模块数据连接;三维地形构建模块请求并接收来自映射模块的高程数据和来自纹理模块的纹理数据,构建三维地形,并将绘制信息输出至绘制器;映射模块接收高程数据请求、相机的信息输入和用户控制信息输入,并映射高程数据;纹理模块提供纹理数据;缓存模块向数据源请求数据并缓存所述数据中的一部分。本发明可用于数字地球,虚拟现实、3D GIS、计算机游戏等技术领域。
文档编号G06T1/60GK101702245SQ20091023597
公开日2010年5月5日 申请日期2009年11月3日 优先权日2009年11月3日
发明者唐晨, 李胜, 汪国平 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1