专利名称:一种基于多源地形数据的融合与绘制方法
技术领域:
本发明属于计算机虚拟现实和计算机图形学技术领域,特别是涉及计算机图形学
加速绘制技术中的海量地形绘制方法。
背景技术:
大规模地形是虚拟环境中的重要可视化要素,它能够为用户提供逼真的视觉感 受,并广泛应用在战场仿真、飞行仿真、紧急响应训练和三维游戏等方面。近些年来,地形数 据获取手段的快速发展使得数据量急剧增加,为大规模地形的实时绘制带来了新的挑战。
目前有两类大规模地形实时绘制方法。 一类是使用基于外存(out-of-core)的大 规模地形实时绘制方法。此类方法将大规模地形数据在外存进行有效组织,通过运行时刻 的调度策略减少载入数据量从而完成实时绘制。通常在基于规则网格或基于不规则网格方 法的基础上进行改进。为避免绘制时刻同一块区域不同细节模型(level of detail,LOD) 在层次切换时产生的跳变,并给出了基于视点的连续LOD方法解决此问题。为解决频繁1/ O操作导致绘制速度降低的问题,使用高效的外存组织并通过预取策略减少1/0操作的方 法完成实时绘制。为解决绘制速度的稳定性,给出了基于视点的平滑调度方法。Pajarola 给出了较好总结("Survey on Semi-Regular Multiresolution Models forlnteractive Terrain Rendering", The Visual Computer, 23 (8) :583-605,2007)。另一类是基于内存 的大规模地形实时绘制方法。此类方法首先采用压縮过程降低数据量,使得压縮后数据部 分或全部载入内存,其次通过运行时刻的解压操作合成真实数据并完成实时绘制。例如 Geometry Clipm即(GC)方法对大规模地形进行高效绘制,该方法将DEM数据当作由高程组 成的纹理,采用一组嵌套网格存储并绘制地形;在运行时刻将所需数据从内存中实时解压, 减少了数据从外存读入内存的时间;同时使用"L"形更新策略,避免更新过程中额外的空 间使用量,大大提高了更新与绘制的速度。目前GC方法已成为大规模地形绘制的研究热 点,并被使用在越来越多的地形绘制系统中。 随着应用的不断深入,人们希望已有地形数据能够提供更丰富的细节变化以达到 特定目标,从而对改变的局部地形进行正确的评估与分析。所变化的细节通常集中在地形 的某些区域,导致局部细节数据的采样精度与周围大规模地形数据的采样精度产生了差 异,这为地形数据的组织与更新带来了新的问题。若按照基于外存的规则数据组织方法对 细节区域进行规则采样并建立层次结构,当细节区域范围较大时会增加索引结构的深度从 而增加存储空间与运行时刻的遍历开销。若按照GC方法对此高精度细节数据处理,由于在 预处理时对地形进行了分辨率依次降低的规则采样,一旦局部数据的采样率发生改变,若 仍按照已有地形的采样率对高精度细节数据进行处理,会产生信息丢失现象。为了不丢失 细节,需要按照局部高精度细节数据的采样精度对大规模地形进行重采样,代价较高而且 意义不大。因此如何将高精度细节数据与已有地形数据较好融合,并对其进行高效绘制是 本文解决的主要问题。
发明内容
本发明要解决的技术问题克服现有技术的不足,提供一种基于多源地形数据的 融合与绘制方法,在保留GC方法绘制速度快、占用内存小优点的基础上,对已有大规模地 形数据进行了高效的组织与绘制,同时较好的融合了代表细节的高精度地形数据,并有效 解决了 clipmap结构更新所引起的数据融合时的"F"形空洞,并用所给出的过渡带结构较 好填充的空洞区域,同时避免了不同分辨率数据平滑过渡的问题,形成了一种有效的多源 地形数据的融合与绘制方法。 本发明采用的技术方案一种基于多源地形数据的融合与绘制方法,其特点在于 步骤如下 (1)进行多源地形数据组织 首先对已有大规模地形数据进行clipm即结构的构造,随后对代表细节的高精度 地形数据进行mipm即结构组织; (2)对绘制时刻的规则"F"形空洞进行高效填充 首先求得多源地形数据与已有大规模地形数据的相交区域,随后将此相交区域分 解为若干条彼此相邻且长短不一的矩形条带(过渡带),最后按照由精细到粗糙的顺序在 与clipmap相交层对应的条带中插入相应的顶点并使用加权值的方法保证条带间顶点高 度的平滑; (3)进行多源地形数据的绘制 使用GC方法对已有大规模地形进行绘制,使用mipm即结构对多源数据进行绘制, 并对过渡带使用三角条带的绘制方法,并保证过渡带的加入使得空洞两侧区域过渡的平滑。
所述步骤(1)中多源地形数据组织的步骤如下 (1)根据视点为中心,以公式L = 2d的步长为单位构建地形的clipm即结构,其中
用L表示视点每时刻更新的步长,d为clipmap的层次数; (2)对clipm即数据与真实数据间的差,使用LBT变化对其进行压縮。 所述步骤(2)中的多源细节数据与已有大规模地形数据的相交测试步骤如下 (1)更新clipm即结构每层的包围盒; (2)将clipm即每层的包围盒与高精度地形的包围盒进行相交检测;
(3)记录高精度地形中的相交点,同时记录clipm即各层中的相交点。
所述步骤(2)中的矩形条带构建步骤如下 (1)求得clipmap相交层中的最大层(最粗糙)与高精度地形数据边界的交点,并 记录相交边界的左上、右上顶点; (2)获得clipm即相交层中最小层(最精细)的两个在一条直线上的相交点,向由 左上、右上顶点组成的直线引垂线,求得交点,并根据此交点与高精度地形数据边界上的相 交点一起组成clipm即最小层对应的过渡带矩形,并将此矩形中由高精度地形数据边界上 交点组成的边记为此过渡带高分辨率边,将对应的另一条边记为此过渡带低分辨率边;
(3)将clipm即最小层低分辨率边作为输入,求得下一层clipm即层的过渡带矩 形; (4)重复(3) —直到构建完clipm即最大层的过渡带矩形。
所述步骤(2)中clipm即各层过渡带中顶点填充的步骤如下 (1)取得clipm即相交层中的最小层,将此层相交边上的顶点拷贝到此层过渡带
的低分辨率边,同理将此层对应的多源地形数据相交边上的顶点拷贝到此层过渡带的高分
辨率边; (2)取得下一层clipm即的相交层,将此层clipm即相交边上的顶点拷贝到此层过 渡带的低分辨率边,再将低分辨率边上的相邻顶点与对应的高精度地形相交边上的进行线 性插值后,将所有的点压入此层过渡带的高分辨率边,再将最小层中的低分辨率中的顶点 也压入此层高分辨率边; (3)迭代过程(2)直至clipm即相交层中的最大层。
所述步骤(3)中多源地形数据的绘制的步骤如下 (l)GC方法绘制已有大规模地形,并使用环形取址方法减少数据间的冗余拷贝;
(2)使用基于误差控制的mipm即结构对表示细节的高精度地形数据进行绘制;
(3)对每条过渡带使用各自的三角化条带绘制。 本发明与现有技术相比的有益效果在于给出了一种多源地形数据融合与绘制的 实时方法,且具有数据组织方式简洁、利于硬件加速等特点;并发现了多源数据融合时由 clipmap结构更新所产生的"F"形空洞,给出了基于过渡带的空洞修补策略;与其他方法相 比,过渡带结构具有运行过程中根据空洞区域的大小自动填充的特点,且所填充的顶点保 证了空洞两侧数据过渡的平滑,从而达到了多源地形数据的实时融合与绘制。
图1为本发明的整体过程示意图; 图2为本发明使用的过渡带结构的示意图; 图3为本发明的过渡带中顶点填充的示意图; 图4为本发明的过渡带顶点高度值的示意图; 图5为本发明的运行时刻LOD选择流程; 图6a和图6b为本发明使用前后的效果对比示意图。
具体实施例方式
下面结合附图与实施例对本发明作进一步详细描述 本发明实施过程包括三个主要步骤多源地形数据组织,构建过渡带及顶点填充, 多源地形数据实时绘制。如图1所示。
步骤一多源地形数据组织 本发明使用clipm即结构对已有大规模地形数据进行组织,为将高精度细节数据 与大规模地形数据的clipmap结构在绘制时刻较好的融合,针对高精度细节数据为采样规 则的特点,采用mipm即结构对高精度细节数据进行组织。 步骤二构建过渡带及顶点填充,可分为三个阶段,过渡带的构成阶段,过渡带中填 充顶点平面坐标的确定,过渡带中填充顶点高度值的确定
第一个阶段,过渡带构成阶段 本文将"F"形空洞区域划分为若干平行的矩形条带,每个条带由两条不同采样率
6顶点构成的边组成。将这样一个条带称为过渡带(图2)。 "F"形空洞通常由多条过渡带组 成,将填充"F"形空洞所需的过渡带的集合称为过渡带群。在过渡带群中若干条过渡带彼 此相连,每一条过渡带高采样率顶点构成的边为邻接条带低采样率顶点构成的边,从而在 过渡带群中完成了数据采样率依次降低或升高的过程,解决了 "F"形空洞两侧不同采样精 度数据过渡的问题。 第二个阶段,过渡带中填充顶点平面坐标的确定 需要往每条过渡带的两条边中填充采样率不同的顶点。因此要将过渡带群中的过 渡带按照采样率降低或升高的顺序依次排列。本文使用的顶点填充方向为从"F"形空洞两 侧由较低采样率顶点构成的边向由较高采样率顶点组成的边进行。从图3中可以看出,由 于高精度细节数据采样精度较高,因此顶点填充方向为从clipmap结构与空洞区域的相交 边向mipmap结构中与空洞区域的相交边进行; 为下文叙述方便,记大规模地形数据为0,用0。表示clipm即结构中第c层模型, 用s(0。)表示此层模型中顶点的步长;记高精度细节数据为D,用Dd表示mipm即结构中第d 层模型,用s(Dd)表示此层模型中顶点的步长;记过渡带数据为TS,用TSi表示第i条过渡
带,用表示此过渡带由低分辨率顶点构成的边,用scm》表示中顶点的最小步长;
用TSi表示此过渡带由高分辨率顶点构成的边,用s(TSi)表示TSi中顶点的最小步长;
图3中包含三条过渡带。进行填充时首先产生TS^其中的顶点由clipm即结 构中0^与空洞区域相交边中的顶点组成。TSJ勺顶点由对I&中顶点进行中点插值后的顶 点和3^的顶点两部分组成。完成TS工的顶点填充后生成T&,从图3可以看出,3^—的顶点 由TS工的顶点和clipm即结构中Om与空洞区域相交边中的顶点两部分组成。依此类推生成 TS2和TS3。在插值过程中,过渡带i (1《i《M)所填充顶点的采样率需要满足如下条件
S(TS》> S(Ddmin) (1) 考虑高精度细节数据与clipm即结构四个边都存在"F"裂缝的极限情况,需要填 充的顶点总数量totalNumber满足如下关系 totalNumber《(3*2n+1-3n-6)*4*clipSize (2)
第三个阶段,过渡带中填充顶点高度值的确定 为保证所填充顶点与过渡带两侧地形的顶点在高度域上保持平滑,使用了一种加 权平均的方法计算新增顶点的高度值(图4)。设新增顶点为V,用h(V)表示顶点高度值, D为周围顶点对所插入顶点高度的影响综合因子,wi为某一顶点对所插入顶点高度值影响 的权值,这里用平面距离代替,则有 = 2 (^)* , Z) = f (3) 如图4所示为当前条带TS边上的新添加顶点,v3与v4为当前过渡带中;m边上 的顶点,vl与v2为与之对应的高精度细节区域边上的顶点。n为插入顶点在细节区域相交 的边与clipm即边界上对应的顶点数量之和。 步骤三多源地形数据绘制,共分为四个阶段,已有大规模地形数据的绘制,高精 度细节地形的更新方法,高精度细节地形的LOD选择方法,过渡带的绘制。
第一个阶段已有大规模地形数据的绘制 采用将各层clipm即数据存储到VBO中,并进行绘制的方法;但在绘制时刻,将每层clipm即中与高精度地形数据的包围盒相重叠的区域删除掉,随后进行绘制。
第二个阶段高精度地形的绘制 图5给出运行时刻高精度细节数据的更新流程,当视点中心区域未在高精度细节 数据所表示区域内时,采用mipmap方法对此区域进行实时更新与绘制。但当视点接近高精 度细节数据所表示区域时,导致mipmap各层更新后的数据量随距离的接近而增加,影响运 行时刻的绘制速度。 为提高绘制速度,当视点中心区域完全位于高精度细节数据所表示区域内时,本
文从高精度细节数据mipm即结构中提取出clipm即数据,使用GC方法的"L"形更新策略
减少数据量以保证高精度细节数据的实时绘制。 第三个阶段高精度细节地形的LOD选择方法 为了降低计算量,本文通过计算mipmap结构各层在视域内边界线段投影的方法, 将问题转化为计算线段的投影而不是精确计算面积投影。设Pli为mipmap结构某层边界 线段在屏幕上的投影,nti为该线段所包含三角形边的数量,q为视域内某层mipmap数据包 含的边界个数用公式(4)得出位于视域内mipmap数据在屏幕上的投影P : 第四个阶段过渡带的绘制。 为减少过渡带中顶点三角化过程带来的时间开销,利用;mi与TSi间顶点位置的特
点,绘制时按照H中顶点步长的大小将此条带分为若干彼此相连的区域(图6中由红色 虚线段组成的区域—)。并通过对每个区各自进行三角化的方法完成整个条带的三角化。
为避免区域间边界点在三角化时引起的三角形丢失问题,采用将边界点分别存储 在前、后两相邻区域的方式解决此问题。 最终的绘制结果如图6所示,可以看出引入过渡带结构后可以有效的解决多源地 形数据的融合与绘制。
权利要求
一种基于多源地形数据的融合与绘制方法,其特征在于步骤如下(1)进行多源地形数据组织多源数据来源分为分辨率单一的大规模地形数据和代表细节的高精度地形数据,首先对多源地形数据中的已有大规模地形数据进行clipmap结构的构造,随后对高精度细节的地形数据进行mipmap结构组织;(2)对绘制时刻的规则“F”形空洞进行高效填充首先求得高精度地形数据与已有大规模地形数据的相交区域,随后将此相交区域分解为若干条彼此相邻且长短不一的矩形条带,最后按照由精细到粗糙的顺序往与clipmap相交层对应的条带中插入相应的顶点并使用加权值的方法保证条带间顶点高度的平滑;(3)进行多源地形数据的绘制使用GC方法对已有大规模地形进行绘制,使用mipmap结构对高精度地形数据进行绘制,并对过渡带使用三角条带的绘制方法,并保证过渡带的加入使得空洞两侧区域过渡的平滑。
2. 根据权利要求1所述的基于多源地形数据的融合与绘制方法,其特征在于所述步骤(1)中对多源地形数据中的已有大规模地形数据进行clipm即结构的构造的步骤如下 (1. 1)根据视点为中心,以公式L = 2d的步长为单位构建地形的clipm即结构; (1. 2)对clipm即数据与真实数据间的差,使用LBT变化对其进行压縮。
3. 根据权利要求1所述的基于多源地形数据的融合与绘制方法,其特征在于所述步 骤(2)中的求得高精度地形数据与已有大规模地形数据的相交区域步骤如下(2. 1)更新clipm即结构每层的包围盒;(2. 2)将clipm即每层的包围盒与多源地形的包围盒进行相交检测; (2. 3)记录高精度地形中的相交点,同时记录clipm即各层中的相交点。
4. 根据权利要求1所述的基于多源地形数据的融合与绘制方法,其特征在于所述步 骤(2)中的矩形条带构建步骤如下(2. 1)求得clipm即相交层中的最粗糙层与高精度地形数据边界的交点,并记录相交 边界的左上、右上顶点;(2. 2)获得clipm即相交层中的最精细层两个在一条直线上的相交点,向由左上、右上 顶点组成的直线引垂线,求得交点,并根据此交点与高精度地形数据边界上的相交点一起 组成clipmap最小层对应的过渡带矩形,并将此矩形中由高精度地形数据边界上交点组成 的边记为此过渡带高分辨率边,将对应的另一条边记为此过渡带低分辨率边;(2. 3)将clipm即最小层低分辨率边作为输入,求得下一层clipm即层的过渡带矩形;(2. 4)重复(2. 3) —直到构建完clipm即最大层的过渡带矩形。
5. 根据权利要求1所述的基于多源地形数据的融合与绘制方法,其特征在于所述步 骤(2)中插入相应的顶点的步骤如下(2. 1)取得clipmap相交层中的最精细层,将此层相交边上的顶点拷贝到此层过渡带 的低分辨率边,同理将此层对应的高精度地形数据相交边上的顶点拷贝到此层过渡带的高 分辨率边;(2. 2)取得下一层clipm即的相交层,将此层clipm即相交边上的顶点拷贝到此层过渡 带的低分辨率边,再将低分辨率边上的相邻顶点与对应的多源地形相交边上的进行线性插值后,将所有的点压入此层过渡带的高分辨率边,再将最小层中的低分辨率中的顶点也压 入此层高分辨率边;(2. 3)重复过程(2. 2)直至clipm即相交层中的最粗糙层。
6.根据权利要求1所述的基于多源地形数据的融合与绘制方法,其特点在于所述步 骤(3)中多源地形数据的绘制的步骤如下(3. 1)采用GC方法绘制已有大规模地形,并使用环形取址方法减少数据间的冗余拷贝;(3. 2)使用基于误差控制的mipm即结构对高精度地形数据进行绘制。
全文摘要
一种基于多源地形数据的融合与绘制方法,步骤为(1)进行多源地形数据进行高效组织;(2)对绘制时刻的规则“F”形空洞进行高效填充首先求得高精度地形数据与已有大规模地形数据的相交区域,随后根据clipmap层次结构,将此相交区域分解为若干条彼此相邻且长短不一的矩形条带,最后按照由精细到粗糙的顺序往与之对应的条带中插入相应的顶点并保证条带间顶点高度的平滑;(3)进行多源地形数据的绘制。本发明在保留Geometry Clipmap方法绘制大规模地形速度快的优点的基础上,对于所引入的高精度地形数据进行了高效组织,并特别解决了绘制时刻由于clipmap更新所导致数据实时融合时的规则“F”形空洞问题,同时避免了数据融合时不同种分辨率过渡时的跳变问题。
文档编号G06T15/00GK101694726SQ20091023613
公开日2010年4月14日 申请日期2009年10月20日 优先权日2009年10月20日
发明者于卓, 梁晓辉, 马上 申请人:北京航空航天大学;