本发明专利技术公开了一种基于kd树的实时大规模地形可视化实现方法,包括下述步骤:将地形按点云空间分块,并利用kd树分层,离线地建立LOD模型,所述建立LOD模型是负责由地形点云数据获得多分辨率模型数据以及模型的各分辨率间切换;在线时利用外部存储算法将离线构造的LOD模型数据载入内存,所述外部存储算法负责将外存的LOD模型数据向内存调度;对内存中的LOD模型数据使用简化的地形剔除技术,所述地形数据剔除技术负责剔除不可见的LOD模型数据,减少传输到图形硬件的数据量;利用三维引擎优化技术对剔除后的数据进一步的减少传输到图形硬件的数据量以及计算量。本发明专利技术实现简便,显示效率高,在具有一般基于不规则三角网可视化算法优良的可视化效果的同时,大大提高了可视化速度。
【技术实现步骤摘要】
一种基于kd树的实时大规模地形可视化实现方法
本专利技术涉及大规模地形点云的三维可视化的
,特别涉及一种基于kd树的实时大规模地形可视化方法。
技术介绍
地形点云三维可视化,就是根据计算机图形学的原理,将三维地形数据(包括离散的点云和点间形成的三角形片集的点序列)经过视图变换、模型变换、投影变换和视区变换等一系列操作,最后在二维的屏幕上显示出来。而当地形数据量很大时,要进行变换的操作数量也会随之剧增,这就需要使用一些提高地形数据三维可视化效率的算法,才能满足其实时显示的要求。业界对高效的地形数据三维可视化研究的成果主要集中在LOD模型构造算法上面,对三维可视化的其他研究还包括地形数据剔除技术和三维引擎的优化使用等。LOD模型构造算法,能够根据需求动态地调整显示对象模型的精度,大大减小可视化的数据量,以达到提高可视化效率的目的。这种算法的关键是如何建立一个高效的多分辨率模型,涉及到二叉树、四叉树、kd树等空间划分方法、各种内存管理技术和各种Delaunay三角网更新或者规则点云分布三角网构建方法等。地形数据剔除技术,能够在地形数据不会被显示的时候将其剔除,即不发往图形硬件去绘制,以大幅减少可视化的数据量,达到提升显示速度的目的。该技术的关键是如何高效地定位可见的地形数据。三维引擎的优化使用,能够在显示地形数据量不变的情况下大大的减小传输的数据量和重复计算量,以大大提升显示速度的目的。常见的优化有三角形条带化和OpenGL顶点数组和索引数组的使用。现有的基于TIN的高质量的海量地形点云可视化算法,基本是采用了记录三角网简化的过程信息。虽然避开了实时进行Delaunay三角网的更新这一复杂的过程,但是复杂性仍然非常高,效率不理想。本专利技术的方法,正是在具有基于TIN可视化算法的高质量显示的同时,很好地改善了效率。
技术实现思路
本专利技术的目的在于克服现有技术的缺点与不足,提供一种复杂性低、可视化效率高的基于kd树的实时大规模地形可视化实现方法。为了达到上述目的,本专利技术采用以下技术方案:一种基于kd树的实时大规模地形可视化实现方法,包括下述步骤:将地形按点云空间分块,并利用kd树分层,离线地建立LOD模型,所述建立LOD模型是负责由地形点云数据获得多分辨率模型数据以及模型的各分辨率间切换;在线时利用外部存储算法将离线构造的LOD模型数据载入内存,所述外部存储算法负责将外存的LOD模型数据向内存调度;对内存中的LOD模型数据使用简化的地形剔除技术,所述地形数据剔除技术负责剔除不可见的LOD模型数据,减少传输到图形硬件的数据量;利用三维引擎优化技术对剔除后的数据进一步的减少传输到图形硬件的数据量以及计算量。优选的,所述建立LOD模型,包括建立离线LOD模型和建立在线的LOD模型两部分,所述建立离线LOD模型需要读取三次点云数据文件:第一次读取获得点的总数,根据提前限定的每个分块内的点的最大点数,设定每个分块的位置和大小;第二次读取记录前面设定的每个分块的内点数;第三次读取时用经典的逐点插入法进行Delaunay三角化,并将对应分块记录的点数递减;当递减为零时,查找对应分块内外接圆越过分块边缘的三角形和它们的顶点,记录为分割三角带和点云包围圈;对在分块内而不在点云包围圈内的点进行改进的kd树空间划分,获得按照树的层次顺序排列的存储在一维数组点云数据,将该点云数据、分割三角带和点云包围圈存储到外存中;清除该分块占用的内存,继续读取,直到所有点云数据读完。优选的,所述的改进的kd树空间划分包括第一改进和第二改进,所述第一改进是kd树的划分方向改为要划分区域的长轴方向;第二改进是kd树的划分点为满足每次划分尽量将不完整的一层向左子树分布。优选的,所述的建立在线的LOD模型,包括简化的模型分辨率决策准则和动态更新Delaunay三角网两部分;所述简化的模型分辨率决策准则根据每个分块内的点密度和分块与视点的距离,计算出分块需要切换至的模型分辨率,在长度为l的物体在与它相距d的视点的观察下,被投影到屏幕上;且有如下的关系式:其中α为视角,Np为屏幕在视点视野范围内的纵向切线上的像素数目,np是该物体投影到屏幕上在该切线上占用的像素数目;当np=1时,即此时物体投影到屏幕在切线上占用一个像素时,下式即为模型分辨率决策的基本准则,公式如下:此时,长度小于等于l的物体在屏幕上被压缩在一个像素内,这时的物体的细节已经无法分辨了,所有在该物体上的点云只需用一个顶点表示即可。优选的,所述的动态更新Delaunay三角网使用一种成熟的插入和删除点的Delaunay算法,同时在更新三角形的更新一个N×7的二位数组,其中N代表三角形的个数,7列分别是三角形的序号、三个顶点和三个顶点相对的相邻三角形序号。该二维数组表示了整个三角网的拓扑结构。优选的,所述的外部存储算法包括改进的数据预读、视椎体投影的数据补充和增量计算三部分;所述改进的数据预读使用了两层的预读区,即在一般预读区外围再设定一个分辨率更低的预读区;所述的视椎体数据补充,是将视椎体映射到二维平面,然后找出与映射相交的分块;所述的增量计算,是将由所述改进的数据预读和所述的视椎体数据补充获得的调度列表中的分块中需要调度的数据,即对应需要分辨率的LOD模型数据和在内存中对应分块中已有的数据做比较,算出需要调度的具体到一个点的数据。优选的,所述的地形数据剔除技术,与所述视椎体数据补充一致,并直接使用其计算结果。优选的,所述的三维引擎优化使用,由简化的三角形条带化和顶点对象缓冲区的使用两部分组成;所述的简化的三角形条带化,基于一个包含三角形的序号、三角形逆时针排列的三个顶点和三角形的三个相邻三角形的序号的三角网拓扑结构数据,并按照以下方法得出:优选的,所述的三维引擎优化使用的具体步骤如下:(a)根据结构矩阵,在三角网的外围边界上找出一个三角形A,该三角形必须满足其三边都有相邻的三角形,然后找出A三角形的一个相邻的三角形B,该三角形必须满足其有一边没有相邻的三角形,三角形B就是起始三角形;(b)螺旋式由外至内地找相邻三角形,由起始三角形B开始,沿着远离A的方向,在结构矩阵中依次查找出下一个相邻的、靠外的三角形,标记并将其加入到三角形条带中;(c)结束,当找不到没有标记的三角形时,三角形条带完毕,并查找出结构矩阵中没有加入到条带的三角形,单独添加到游离三角形链中。优选的,所述的顶点对象缓冲区的使用是在一般的三维引擎优化,即OpenGL的顶点数组和索引数组结合使用的基础上,加入顶点缓冲区对象的使用。本专利技术相对于现有技术具有如下的优点及效果:1、本专利技术实现简便,显示效率高,在具有一般基于不规则三角网可视化算法优良的可视化效果的同时,大大提高了可视化速度。2、本专利技术在外存中只存储点云数据和少量的三角形数据,绝大多数的三角形数据实时地在内存中生成和存放,故较其他可视化算法大大减少了外存的使用。3、本专利技术充分利用了多核处理器的优势,相比其他可视化算法更能适应以后的多核发展方向。4、本算法能容易地实现针对不同硬件平台平衡显示效果和显示速度矛盾。附图说明图1是本专利技术算法的框图;图2本文档来自技高网...

【技术保护点】
一种基于kd树的实时大规模地形可视化实现方法,其特征在于,包括下述步骤:?将地形按点云空间分块,并利用kd树分层,离线地建立LOD模型,所述建立LOD模型是负责由地形点云数据获得多分辨率模型数据以及模型的各分辨率间切换;?在线时利用外部存储算法将离线构造的LOD模型数据载入内存,所述外部存储算法负责将外存的LOD模型数据向内存调度;?对内存中的LOD模型数据使用简化的地形剔除技术,所述地形数据剔除技术负责剔除不可见的LOD模型数据,减少传输到图形硬件的数据量;?利用三维引擎优化技术对剔除后的数据进一步的减少传输到图形硬件的数据量以及计算量。
【技术特征摘要】
1.一种基于kd树的实时大规模地形可视化实现方法,其特征在于,包括下述步骤:将地形按点云空间分块,并利用kd树分层,离线地建立LOD模型,所述建立LOD模型是负责由地形点云数据获得多分辨率模型数据以及模型的各分辨率间切换;在线时利用外部存储算法将离线构造的LOD模型数据载入内存,所述外部存储算法负责将外存的LOD模型数据向内存调度;对内存中的LOD模型数据使用简化的地形剔除技术,所述地形数据剔除技术负责剔除不可见的LOD模型数据,减少传输到图形硬件的数据量;利用三维引擎优化技术对剔除后的数据进一步的减少传输到图形硬件的数据量以及计算量;所述建立LOD模型,包括建立离线LOD模型和建立在线的LOD模型两部分,所述建立离线LOD模型需要读取三次点云数据文件:第一次读取获得点的总数,根据提前限定的每个分块内的点的最大点数,设定每个分块的位置和大小;第二次读取记录前面设定的每个分块的内点数;第三次读取时用经典的逐点插入法进行Delaunay三角化,并将对应分块记录的点数递减;当递减为零时,查找对应分块内外接圆越过分块边缘的三角形和它们的顶点,记录为分割三角带和点云包围圈;对在分块内而不在点云包围圈内的点进行改进的kd树空间划分,获得按照树的层次顺序排列的存储在一维数组点云数据,将该点云数据、分割三角带和点云包围圈存储到外存中;清除该分块占用的内存,继续读取,直到所有点云数据读完;所述的外部存储算法包括改进的数据预读、视椎体投影的数据补充和增量计算三部分;所述改进的数据预读使用了两层的预读区,即在一般预读区外围再设定一个分辨率更低的预读区;所述的视椎体数据补充,是将视椎体映射到二维平面,然后找出与映射相交的分块;所述的增量计算,是将由所述改进的数据预读和所述的视椎体数据补充获得的调度列表中的分块中需要调度的数据,即对应需要分辨率的LOD模型数据和在内存中对应分块中已有的数据做比较,算出需要调度的具体到一个点的数据。2.根据权利要求1所述的基于kd树的实时大规模地形可视化实现方法,其特征在于,所述的改进的kd树空间划分包括第一改进和第二改进,所述第一改进是kd树的划分方向改为要划分区域的长轴方向;第二改进是kd树的划分点为满足每次划分尽量将不完整的一层向左子树分布。3.根据权利要求1所述的基于kd树的实时大规模地形可视化实现方法,其特征在于,所述的建立在线的LOD模型,包括简化的模型分辨率决策准则和动态更新Delaunay三角网两部分;所述简化的模型分辨率决策准则根据每个分块内的点密度和分块与视点的距离,计算出分块需要...
【专利技术属性】
技术研发人员:裴海龙,姚定忠,
申请(专利权)人:华南理工大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。