CN115953541B - 一种四叉树lod地形生成方法、装置、设备及存储介质 - Google Patents
一种四叉树lod地形生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115953541B CN115953541B CN202310229020.5A CN202310229020A CN115953541B CN 115953541 B CN115953541 B CN 115953541B CN 202310229020 A CN202310229020 A CN 202310229020A CN 115953541 B CN115953541 B CN 115953541B
- Authority
- CN
- China
- Prior art keywords
- node
- terrain
- nodes
- quadtree
- segmented
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000011156 evaluation Methods 0.000 claims abstract description 48
- 230000011218 segmentation Effects 0.000 claims abstract description 35
- 238000009877 rendering Methods 0.000 claims abstract description 32
- 238000012876 topography Methods 0.000 claims abstract description 28
- 230000000007 visual effect Effects 0.000 claims abstract description 17
- 238000005070 sampling Methods 0.000 claims description 11
- 230000001502 supplementing effect Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 claims description 3
- 239000013589 supplement Substances 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 238000012800 visualization Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/10—Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明涉及地形绘制技术领域,具体公开了一种四叉树LOD地形生成方法、装置、设备及存储介质,该方法包括:导入包含地形高程数据和位置数据的文件;从文件中读取数据构建四叉树模型中的根节点;构建基于视点评估的节点分割条件,当满足节点分割条件时,进行节点分割,构建得到多个层级的四叉树模型;构建包围盒,对超出视野范围以外的节点进行可见性裁剪;对四叉树模型不同层级边缘连接处的裂缝进行增补处理;结合图形API对四叉树模型进行渲染,生成地表地形。本发明解决了在保证视觉效果的前提下,尽可能简化地形,减少不必要的绘制动作实现大规模地形实时渲染的技术问题。
Description
技术领域
本发明涉及地形绘制技术领域,特别涉及一种四叉树LOD地形生成方法、装置、设备及存储介质。
背景技术
地形可视化主要研究的问题包括地理信息获取、地形建模、地形简化、地形加载调度和优化渲染上。早期的地形绘制研究,其建模技术受计算机硬件处理能力的制约,模型简单粗糙,真实感不强。随着大数据、云计算、人工智能时代的不断提出,广大学者利用计算机图形处理器的可编程特性与并行计算能全球范围内的地形可视化表达。由于需求量的不断加大,地形可视化场景需要处理的数据量也在飞速增长,高达TB级乃至PB级的数据量已成为实现地形可视化的基础数据,针对如此海量的地形数据,如何高效实现可视化表达,是当前研究的一个热点。虽然现在计算机硬件水平不断提升,但面对如此大规模的数据量仍然无法满足要求,针对这样的问题计算机的运算能力,更高效地处理地理信息数据以及尽可能地加快渲染速度等。
在解决大尺度地形地貌生成的问题中,国内外许多学者对此进行了广泛的研究,提出了相关的绘制算法,以简化场景绘制的复杂度,降低绘制的数据量。LOD(LevelsofDetail,细节层次模型)技术是目前广泛使用的解决此问题的方法。通过使用多个不同精度的模型表示一个对象,并在渲染时选择合适的精度级别以提高渲染效率。当需要高精度显示时,使用细节丰富的模型,而当分辨率降低时,使用更简单的模型来代替。在实际应用中,当相机距离模型较远时,使用较简单的模型可以在不影响视觉效果的同时,节省计算资源,提高渲染效率。
采用细节层次模型技术来简化模型,需要合适的节点评估系统。而节点评估系统的的构造直接关系到整个LOD模型的简化效果和用户体验,节点评估系统的设计会对处理器和内存造成一定的挑战,必须兼顾仿真效果和绘制速率才能构造出实用的实时漫游系统,同时分块LOD模型之间仍无法完美无缝连接,会出现裂缝情况。
因此,设计合适的节点评估系统以提高图形绘制效率,实现地形的实时绘制以及显示的流畅性是亟待解决的技术问题。
发明内容
本发明要解决的技术问题是:设计合适的节点评估系统,以提高图形绘制效率,实现地形的实时绘制以及显示的流畅性。
为了解决上述技术问题,本发明提供的技术方案是:基于四叉树LOD技术,综合考虑视线方向、地形块距离视点的距离、视点运动速度等因素的节点评估系统,根据此节点评估系统建立LOD地形,并通过减边法控制相邻地形块的细节层次,消除裂缝,能较显著地提高地形绘制效率。
根据本发明的第一方面,本发明提供了一种四叉树LOD地形生成方法,包括以下步骤:
导入包含地形高程数据和位置数据的文件;
从文件中读取数据构建四叉树模型中的根节点;
构建基于视点评估的节点分割条件,当满足节点分割条件时,进行节点分割,构建得到多个层级的四叉树模型;
构建包围盒,对超出视野范围以外的节点进行可见性裁剪;
对四叉树模型不同层级边缘连接处的裂缝进行增补处理;
结合图形API对四叉树模型进行渲染,生成地表地形。
优选地,所述四叉树模型中,每个节点均为正方形节点,每个正方形节点由九个点组成,包括:一个中心点、四个边点和四个角点,根据每个地形块由角点和边点围绕中心点组成的方式用三角形扇的方式来绘制每一个地形块。
优选地,所述构建基于视点的节点评估系统,根据节点评估系统计算每个节点的评估值,判断评估值是否小于设定阈值,若是,则认为满足节点分割条件,对该节点进行分割,向下产生四个子节点,重复上述判断,不断递归分割,直到所有节点不能再继续分割为止,构建得到多个层级的四叉树模型。
优选地,所述构建基于视点的节点评估系统,根据节点评估系统计算每个节点的评估值,计算公式为:
其中,ratio为节点评估值,dist为视点到地形块的距离,d表示该节点所表示的地形块的边长,r表示该节点所表示的地形粗糙度值,表示视线方向和地形块的法向量之间的夹角,v表示当前时刻的视点移动速度,C 1、C 2、C 3、C 4分别为视距因子、粗糙度因子、视角因子、速度因子的调节参数。
优选地,所述构建包围盒,对超出视野范围以外的进行可见性裁剪,包括:
初始化根节点,送入渲染管线;
检验四叉树模型的节点是否在视锥体内,若否,则剔除该节点,若是,则保留该节点;
读取四叉树模型的节点存储在数组表中的可见性信息,若像元值为0,则可见,保留该节点,若像元值为255,则不可见,剔除该节点。
优选地,所述对四叉树模型不同层级边缘连接处的裂缝进行增补处理,包括:
控制相邻的地形块的细节层次等级相差不超过1,并且记录裂缝产生的位置,在地形绘制时增补裂缝。
根据本发明的第二方面,本发明提供了一种实施上述方法的四叉树LOD地形生成装置,包括以下模块:
导入模块,用于导入包含地形高程数据和位置数据的文件;
读取模块,用于从文件中读取数据构建四叉树模型中的根节点;
构建模块,用于构建基于视点评估的节点分割条件,当满足节点分割条件时,进行节点分割,构建得到多个层级的四叉树模型;
裁剪模块,用于构建包围盒,对超出视野范围以外的节点进行可见性裁剪;
增补模块,用于对四叉树模型不同层级边缘连接处的裂缝进行增补处理;
渲染模块,用于结合图形API对四叉树模型进行渲染,生成地表地形。
根据本发明的第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的四叉树LOD地形生成方法的步骤。
根据本发明的第四方面,本发明提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的四叉树LOD地形生成方法的步骤。
本发明提供的技术方案具有以下有益效果:
本发明提供了一种四叉树LOD地形生成方法、装置、设备及存储介质,该方法通过对传统四叉树LOD算法的改进,基于四叉树LOD技术,综合考虑视线方向、地形块距离视点的距离、视点运动速度等因素构建节点评估系统,根据节点评价结果设置节点分割条件,建立LOD地形,从而保证在视点移动时的地形绘制效率,尽量避免实时渲染过程中不可见的三角面片,从而动态降低三角形片元数量,提升地形的实时渲染效果并且提升渲染帧率,此外,本发明还通过减边法控制相邻地形块的细节层次,消除裂缝,能进一步地提高地形绘制效率。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为本发明一种四叉树LOD地形生成方法的总体流程图;
图2为本发明一种四叉树LOD地形生成方法中四叉树分割示意图;
图3为本发明中渲染三维模型时网格生成的判断流程图;
图4为本发明中最终生成的地形网格图;
图5为本发明一种四叉树LOD地形生成装置的结构示意图;
图6为本发明一种电子设备的结构示意图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
参考图1,本发明提供一种四叉树LOD地形生成方法,通过建立四叉树模型,提出综合考虑视线方向、地形块距离视点的距离、视点运动速度等因素的节点评估系统,根据此节点评估系统建立LOD地形,减少不必要的地形绘制,其主要包括以下步骤:
S1:导入包含地形高程数据和位置数据的文件;
S2:从文件中读取数据构建四叉树模型中的根节点;
S3:构建基于视点评估的节点分割条件,当满足节点分割条件时,进行节点分割,构建得到多个层级的四叉树模型;
S4:构建包围盒,对超出视野范围以外的节点进行可见性裁剪;
S5:对四叉树模型不同层级边缘连接处的裂缝进行增补处理;
S6:结合图形API对四叉树模型进行渲染,生成地表地形。
基于但不限于上述方法,步骤S1中,导入的raw格式的地形文件、位置数据文件。
基于但不限于上述方法,步骤S2具体是这样实现的:
S21、从文件中读取每个点的坐标值以及高程值,将其以二维数组的形式进行保存,数组中每个位置对应的值即为该坐标点对应的高程值,从文件中读取的采样点的数目必须为,n为常数,组成根节点,如果采样点的数目不满足此数目要求,则要补成此大小的正方形,将补的地形部分的高程设置为0即可;
S22、从四叉树模型的根节点开始向下细化的方式进行四叉树模型的构建组成根节点。
作为一种优选的实施方式,本实施例中的四叉树模型中,每个节点均为正方形节点,每个正方形节点由九个点构成,其中一个中心点,四个边点,四个角点。根据每个地形块由角点和边点围绕中心点组成的方式用三角形扇的方式来绘制一个地形块。
基于但不限于上述方法,步骤S3具体是这样实现的:
构建基于视点的节点评估系统,取出节点的位置信息,计算出摄像机位置到该节点地形块中心点的欧氏距离、地形本身的起伏程度、视线方向与节点所处地形块法向量之间的夹角、视点移动速率,以这四个为节点评估值作为节点评估系统,根据基于视点的节点评估系统计算每个节点的评估值ratio,判断评估值是否小于设定阈值,若是,则认为满足节点分割条件,对该节点进行分割,向下产生四个子节点,重复上述判断,不断递归分割,直到所有节点不能再继续分割为止,构建得到多个层级的四叉树模型。
设置的分割条件决定了决定了四叉树模型的显示层级,当采样点数目为9,即n取1时,对应的具体的分割示意图如图2所示。
具体地,基于视点的节点评估系统的具体表达式如下:
其中,ratio为节点评估值,dist为视点到地形块的距离,d表示该节点所表示的地形块的边长,r表示该节点所表示的地形粗糙度值,表示视线方向和地形块的法向量之间的夹角,v表示当前时刻的视点移动速度,C 1、C 2、C 3、C 4分别为视距因子、粗糙度因子、视角因子、速度因子的调节参数。
这里,调节参数均为常数,影响地形精细度,C 1决定了视距因子在决定四叉树细分时的权重,C 1越小则地形细分程度越大,地形更加精细,C 2决定了粗糙度因子在决定四叉树细分时的权重,C 2越大,则粗糙度决定是否分裂的权重就越小,C 2越小,则粗糙度决定是否分裂的权重就越大,地形四叉树受到粗糙度影响更大。C 3决定了视角因子在决定四叉树细分时的权重,C 3越大则分裂程度越大,C 4决定了速度因子在决定四叉树细分时的权重,C 4越小则占的比重越小,四叉树受到速度的影响更小。
作为一种优选的实施方式,此处的设定阈值为1,即当一个节点的评估值小于1,将此正方形节点划分为四个相等的小正方形。
需要说明的是,这里的设定阈值不局限于1,可以根据实际情况和效果进行调整。
基于但不限于上述方法,步骤S4具体是这样实现的:
S41、初始化根节点,送入渲染管线;
S42、检验四叉树模型的节点是否在视锥体内,若是,则剔除该节点,若不是,则进行S43;
步骤S42具体实现如下:预先对四叉树模型中的每一节点计算出该节点地形的最大高程值,根据每个节点的最大高程值分别构造一个包围盒,该包围盒的长和宽为该节点所表示地形块的边长,该包围盒的高度为节点最大高程值。用包围盒包围地形块,将包围盒代替地形块与视椎体做相交测试,在视锥体剔除阶段,如果该包围盒在视锥体外面就剔除该节点,如果与视锥体相交或是在视锥体内,则保留该节点;
S43、检验四叉树节点是否进行遮挡剔除,即读取存储在潜在可见集中存储的可见性信息,如果像元值为0,则可见,如果值为255,则不可见,剔除对应的节点;
这里需要对步骤S43进行说明:在渲染之前的准备阶段,所有的PVPS图像会被读入内存中,以二维数组的形式存在。在地形四叉树模型每次更新产生新的子节点后都会根据视点位置读取对应场景可见单元的可见性信息(即布尔值),并判断该子节点的可见性,并对其进行遮挡剔除。该遮挡剔除是对四叉树模型每一层级进行的分层剔除,如果父节点被剔除,则其所有子节点都会被剔除。
基于但不限于上述方法,步骤S5具体是这样实现的:
S51、控制相邻的地形块的细节层次等级相差不超过1,并且记录裂缝产生的位置,设置一个和地形数据大小一样的二维标志数组。该标志数组的作用是在当前节点分割时,提供四周节点是否存在的信息:若一个地形块的四周的四个同级节点都存在,则当前节点可以分割,否则只要当前地形块四周的四个同级节点有一个不存在,当前节点就不能分割;
S52、在每次分割时,需要更新二维标志数组的信息,更新方式为:如果某一节点能分割,则将其自身中心在标志数组中的值设为1,同时将四个子节点对应的标志数组中的值也设置为1;如果某一节点不能分割,则将自身中心在标志数组中的值设置为1,同时将四个子节点对应的标志数组中的值设置为0。
在一种实施例中,如图3所示,采用双队列的方式存储节点,有两个队列Queue1和Queue2,将同一层次的地形节点先全部放入队列Queue1,然后每次取Queue1队首的地形节点,判断是否可以分割,如果可以分割,就将此节点分割为四个子节点,放入到Queue2中,如果不能分割就直接送到渲染API去渲染,直到Queue1为空,然后交换Queue1和Queue2,重复上述操作,直到两个队列都为空。
基于但不限于上述方法,步骤S6具体是这样实现的:
将所有采样点的坐标全部计算出来,输入到GPU,然后每次将要绘制的所有地形节点的索引计算出来,根据索引绘图。在绘制边点时,判断当前地形节点相邻的地形块是否被分割了,如果没分割,那中心点到边点的这条边就舍去,不绘制,即在索引中不加入当前边点的索引,最终绘制得到的地形如图4所示。
下面对本发明提供的一种四叉树LOD地形生成装置进行描述,下文描述的四叉树LOD地形生成装置与上文描述的四叉树LOD地形生成方法可相互对应参照。
请参考图5,本发明提供了一种四叉树LOD地形生成装置,包括以下模块:
导入模块510,用于导入包含地形高程数据和位置数据的文件;
读取模块520,用于从文件中读取数据构建四叉树模型中的根节点;
构建模块530,用于构建基于视点评估的节点分割条件,当满足节点分割条件时,进行节点分割,构建得到多个层级的四叉树模型;
裁剪模块540,用于构建包围盒,对超出视野范围以外的节点进行可见性裁剪;
增补模块550,用于对四叉树模型不同层级边缘连接处的裂缝进行增补处理;
渲染模块560,用于结合图形API对四叉树模型进行渲染,生成地表地形。
基于但不限于上述装置,四叉树模型中,每个节点均为正方形节点,每个正方形节点由九个点组成,包括:一个中心点、四个边点和四个角点,根据每个地形块由角点和边点围绕中心点组成的方式用三角形扇的方式来绘制每一个地形块。
基于但不限于上述装置,所述读取模块520从文件中读取个的采样点组成根节点,其中n为任意正整数,每个采样点包含地形高程数据和位置数据,如果采样点的数目不满足此的数目要求,则要补成此大小的正方形,将补的地形部分的高程设置为0即可。
基于上不限于上述装置,所述构建模块530具体用于:
构建基于视点的节点评估系统,根据基于视点的节点评估系统计算每个节点的评估值,判断评估值是否小于设定阈值,若是,则认为满足节点分割条件,对该节点进行分割,向下产生四个子节点,重复上述判断,不断递归分割,直到所有节点不能再继续分割为止,构建得到多个层级的四叉树模型。
具体地,基于视点的节点评估系统具体表达式如下:
其中,ratio为节点评估值,dist为视点到地形块的距离,d表示该节点所表示的地形块的边长,r表示该节点所表示的地形粗糙度值,表示视线方向和地形块的法向量之间的夹角,v表示当前时刻的视点移动速度,C 1、C 2、C 3、C 4分别为视距因子、粗糙度因子、视角因子、速度因子的调节参数。
这里,调节参数均为常数,影响地形精细度,C 1决定了视距因子在决定四叉树细分时的权重,C 1越小则地形细分程度越大,地形更加精细,C 2决定了粗糙度因子在决定四叉树细分时的权重,C 2越大,则粗糙度决定是否分裂的权重就越小,C 2越小,则粗糙度决定是否分裂的权重就越大,地形四叉树受到粗糙度影响更大。C 3决定了视角因子在决定四叉树细分时的权重,C 3越大则分裂程度越大,C 4决定了速度因子在决定四叉树细分时的权重,C 4越小则占的比重越小,四叉树受到速度的影响更小。
基于当不限于上述装置,所述裁剪模块540具体用于:
初始化根节点,送入渲染管线;
检验四叉树模型的节点是否在视锥体内,若是,则剔除该节点,若不是,则检验四叉树节点是否进行遮挡剔除,即读取存储在潜在可见集中存储的可见性信息,如果像元值为0,则可见,如果值为255,则不可见,剔除对应的节点。
基于当不限于上述装置,所述增补模块550具体用于:控制相邻的地形块的细节层次等级相差不超过1,并且记录裂缝产生的位置,在地形绘制时增补裂缝。
参考图6,示例了一种电子设备的实体结构示意图,该电子设备可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610、通信接口620、存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行上述四叉树LOD地形生成方法的步骤,具体包括:导入包含地形高程数据和位置数据的文件;从文件中读取数据构建四叉树模型中的根节点;构建基于视点评估的节点分割条件,当满足节点分割条件时,进行节点分割,构建得到多个层级的四叉树模型;构建包围盒,对超出视野范围以外的节点进行可见性裁剪;对四叉树模型不同层级边缘连接处的裂缝进行增补处理;结合图形API对四叉树模型进行渲染,生成地表地形。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random15 Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
又一方面,本发明实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述四叉树LOD地形生成方法的步骤,具体包括:导入包含地形高程数据和位置数据的文件;从文件中读取数据构建四叉树模型中的根节点;构建基于视点评估的节点分割条件,当满足节点分割条件时,进行节点分割,构建得到多个层级的四叉树模型;构建包围盒,对超出视野范围以外的节点进行可见性裁剪;对四叉树模型不同层级边缘连接处的裂缝进行增补处理;结合图形API对四叉树模型进行渲染,生成地表地形。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为标识。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种四叉树LOD地形生成方法,其特征在于,包括以下步骤:
导入包含地形高程数据和位置数据的文件;
从文件中读取数据构建四叉树模型中的根节点;
构建基于视点评估的节点分割条件,当满足节点分割条件时,进行节点分割,构建得到多个层级的四叉树模型,具体包括:
构建基于视点的节点评估系统,根据节点评估系统计算每个节点的评估值,计算公式为:
其中,ratio为节点评估值,dist为视点到地形块的距离,d表示该节点所表示的地形块的边长,r表示该节点所表示的地形粗糙度值,表示视线方向和地形块的法向量之间的夹角,v表示当前时刻的视点移动速度,C 1、C 2、C 3、C 4分别为视距因子、粗糙度因子、视角因子、速度因子的调节参数;
判断评估值是否小于设定阈值,若是,则认为满足节点分割条件,对该节点进行分割,向下产生四个子节点,重复上述判断,不断递归分割,直到所有节点不能再继续分割为止,构建得到多个层级的四叉树模型;
构建包围盒,对超出视野范围以外的节点进行可见性裁剪;
对四叉树模型不同层级边缘连接处的裂缝进行增补处理,具体包括:
控制相邻的地形块的细节层次等级相差不超过1,并且记录裂缝产生的位置,设置一个和地形数据大小一样的二维标志数组,该标志数组的作用是在当前节点分割时,提供四周节点是否存在的信息:若一个地形块的四周的四个同级节点都存在,则当前节点可以分割,否则只要当前地形块四周的四个同级节点有一个不存在,当前节点就不能分割;
在每次分割时,需要更新二维标志数组的信息,更新方式为:如果某一节点能分割,则将其自身中心在标志数组中的值设为1,同时将四个子节点对应的标志数组中的值也设置为1;如果某一节点不能分割,则将自身中心在标志数组中的值设置为1,同时将四个子节点对应的标志数组中的值设置为0;
采用双队列的方式存储节点,有两个队列Queue1和Queue2,将同一层次的地形节点先全部放入队列Queue1,然后每次取Queue1队首的地形节点,判断是否可以分割,如果可以分割,就将此节点分割为四个子节点,放入到Queue2中,如果不能分割就直接送到渲染API去渲染,直到Queue1为空,然后交换Queue1和Queue2,重复上述操作,直到两个队列都为空;
结合图形API对四叉树模型进行渲染,生成地表地形。
2.根据权利要求1所述的四叉树LOD地形生成方法,其特征在于,所述四叉树模型中,每个节点均为正方形节点,每个正方形节点由九个点组成,包括:一个中心点、四个边点和四个角点,根据每个地形块由角点和边点围绕中心点组成的方式用三角形扇的方式来绘制每一个地形块。
4.根据权利要求1所述的四叉树LOD地形生成方法,其特征在于,所述构建包围盒,对超出视野范围以外的进行可见性裁剪,包括:
初始化根节点,送入渲染管线;
检验四叉树模型的节点是否在视锥体内,若否,则剔除该节点,若是,则保留该节点;
读取四叉树模型的节点存储在数组表中的可见性信息,若像元值为0,则可见,保留该节点,若像元值为255,则不可见,剔除该节点。
5.根据权利要求1所述的四叉树LOD地形生成方法,其特征在于,所述对四叉树模型不同层级边缘连接处的裂缝进行增补处理,包括:
控制相邻的地形块的细节层次等级相差不超过1,并且记录裂缝产生的位置,在地形绘制时增补裂缝。
6.一种实施权利要求1-5任一项所述方法的四叉树LOD地形生成装置,其特征在于,包括以下模块:
导入模块,用于导入包含地形高程数据和位置数据的文件;
读取模块,用于从文件中读取数据构建四叉树模型中的根节点;
构建模块,用于构建基于视点评估的节点分割条件,当满足节点分割条件时,进行节点分割,构建得到多个层级的四叉树模型;
具体包括:构建基于视点的节点评估系统,根据节点评估系统计算每个节点的评估值,计算公式为:
其中,ratio为节点评估值,dist为视点到地形块的距离,d表示该节点所表示的地形块的边长,r表示该节点所表示的地形粗糙度值,表示视线方向和地形块的法向量之间的夹角,v表示当前时刻的视点移动速度,C 1、C 2、C 3、C 4分别为视距因子、粗糙度因子、视角因子、速度因子的调节参数;
判断评估值是否小于设定阈值,若是,则认为满足节点分割条件,对该节点进行分割,向下产生四个子节点,重复上述判断,不断递归分割,直到所有节点不能再继续分割为止,构建得到多个层级的四叉树模型;
裁剪模块,用于构建包围盒,对超出视野范围以外的节点进行可见性裁剪;
增补模块,用于对四叉树模型不同层级边缘连接处的裂缝进行增补处理;具体包括:
控制相邻的地形块的细节层次等级相差不超过1,并且记录裂缝产生的位置,设置一个和地形数据大小一样的二维标志数组,该标志数组的作用是在当前节点分割时,提供四周节点是否存在的信息:若一个地形块的四周的四个同级节点都存在,则当前节点可以分割,否则只要当前地形块四周的四个同级节点有一个不存在,当前节点就不能分割;
在每次分割时,需要更新二维标志数组的信息,更新方式为:如果某一节点能分割,则将其自身中心在标志数组中的值设为1,同时将四个子节点对应的标志数组中的值也设置为1;如果某一节点不能分割,则将自身中心在标志数组中的值设置为1,同时将四个子节点对应的标志数组中的值设置为0;
采用双队列的方式存储节点,有两个队列Queue1和Queue2,将同一层次的地形节点先全部放入队列Queue1,然后每次取Queue1队首的地形节点,判断是否可以分割,如果可以分割,就将此节点分割为四个子节点,放入到Queue2中,如果不能分割就直接送到渲染API去渲染,直到Queue1为空,然后交换Queue1和Queue2,重复上述操作,直到两个队列都为空;
渲染模块,用于结合图形API对四叉树模型进行渲染,生成地表地形。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-5中任一项所述的四叉树LOD地形生成方法的步骤。
8.一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-5中任一项所述的四叉树LOD地形生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310229020.5A CN115953541B (zh) | 2023-03-10 | 2023-03-10 | 一种四叉树lod地形生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310229020.5A CN115953541B (zh) | 2023-03-10 | 2023-03-10 | 一种四叉树lod地形生成方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115953541A CN115953541A (zh) | 2023-04-11 |
CN115953541B true CN115953541B (zh) | 2023-06-23 |
Family
ID=85906941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310229020.5A Active CN115953541B (zh) | 2023-03-10 | 2023-03-10 | 一种四叉树lod地形生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115953541B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117557740B (zh) * | 2024-01-10 | 2024-04-09 | 四川见山科技有限责任公司 | 三维模型分割层级切换方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105405166A (zh) * | 2015-10-30 | 2016-03-16 | 东北大学 | 一种基于线性四叉树的lod模型生成方法 |
CN109064546A (zh) * | 2018-06-08 | 2018-12-21 | 东南大学 | 一种地形影像数据快速调度方法及其系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8207966B2 (en) * | 2004-05-26 | 2012-06-26 | Sony Online Entertainment Llc | Terrain editor tool for rule-based procedural terrain generation |
CN102867331A (zh) * | 2012-08-31 | 2013-01-09 | 电子科技大学 | 面向gpu的大规模地形快速绘制方法 |
KR101555426B1 (ko) * | 2014-02-07 | 2015-09-25 | 고려대학교 산학협력단 | 지형 렌더링 방법 및 장치 |
CN106327577B (zh) * | 2016-08-17 | 2018-02-02 | 中国地质大学(武汉) | 基于局部曲率熵和四叉树结构的三维地形曲面优化方法 |
CN111179414B (zh) * | 2019-12-30 | 2020-09-25 | 中国电力企业联合会电力建设技术经济咨询中心 | 一种地形lod的生成方法 |
-
2023
- 2023-03-10 CN CN202310229020.5A patent/CN115953541B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105405166A (zh) * | 2015-10-30 | 2016-03-16 | 东北大学 | 一种基于线性四叉树的lod模型生成方法 |
CN109064546A (zh) * | 2018-06-08 | 2018-12-21 | 东南大学 | 一种地形影像数据快速调度方法及其系统 |
Non-Patent Citations (1)
Title |
---|
A study on the quadtree-based LOD algorithm;R Zhang 等;《 《IEEE International Conference on Communication Software and Networks》》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115953541A (zh) | 2023-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8368714B2 (en) | Curved surface rendering system and method | |
CN112308974B (zh) | 一种改进八叉树和自适应读取的大规模点云可视化方法 | |
US9959670B2 (en) | Method for rendering terrain | |
CN112802179B (zh) | 一种基于法向的大规模点云可视化方法 | |
KR20100136604A (ko) | 3차원 지형 영상 실시간 가시화 시스템 및 이의 방법 | |
KR100959349B1 (ko) | 그래픽스 처리 유닛을 이용한 사진트리 기반의 지형 렌더링 방법을 가속화하는 방법 | |
CN106251384A (zh) | 使用三角形的递归再分的细分方法 | |
CN107220372B (zh) | 一种三维地图线要素注记自动放置方法 | |
EP3736776B1 (en) | Apparatus, system and method for the generation of polygonal meshes | |
CN104050708A (zh) | 一种3d游戏引擎lod系统的实现方法 | |
CN115953541B (zh) | 一种四叉树lod地形生成方法、装置、设备及存储介质 | |
Derzapf et al. | River networks for instant procedural planets | |
CN110378992A (zh) | 面向大场景模型web端动态渲染LOD处理方法 | |
CN114065320A (zh) | 一种基于lod的cad图形轻量化的渲染方法 | |
CN111870953A (zh) | 一种高度图生成方法、装置、设备及存储介质 | |
CN114359269A (zh) | 基于神经网络的虚拟食品盒缺陷生成方法及系统 | |
KR20070099298A (ko) | 모바일 내비게이션용 3차원 형상정보 생성방법 및 장치 | |
CN116246069B (zh) | 自适应地形点云滤波的方法、装置、智能终端及存储介质 | |
JP2023178274A (ja) | メッシュ頂点位置についての求根および反復を用いて表面を近似するポリゴンメッシュを生成する方法およびシステム | |
CN115187720A (zh) | 一种基于数字地形分析优化地形渲染的方法 | |
CN115937392A (zh) | 一种三维模型的渲染方法和装置 | |
Scholz et al. | Level of Detail for Real-Time Volumetric Terrain Rendering. | |
Shiau et al. | Real-time network virtual military simulation system | |
CN115221263B (zh) | 一种基于航线的地形预加载方法及预加载系统 | |
CN117953181B (zh) | 一种面向web3d的顶点分层与增量式lod方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |