CN111507926B - 一种基于MaxLOD Map的四叉树地形裂缝修补方法 - Google Patents
一种基于MaxLOD Map的四叉树地形裂缝修补方法 Download PDFInfo
- Publication number
- CN111507926B CN111507926B CN202010362162.5A CN202010362162A CN111507926B CN 111507926 B CN111507926 B CN 111507926B CN 202010362162 A CN202010362162 A CN 202010362162A CN 111507926 B CN111507926 B CN 111507926B
- Authority
- CN
- China
- Prior art keywords
- maxlod
- map
- quadtree
- repair
- node
- 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 17
- 230000007547 defect Effects 0.000 abstract description 3
- 230000000694 effects Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000005336 cracking Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/77—Retouching; Inpainting; Scratch removal
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于MaxLOD Map的四叉树地形裂缝修补方法,该方法包括以下步骤:(1)MaxLOD Map的定义和创建;(2)基于MaxLOD Map的四叉树地形裂缝修补。该方法是通过构建一种称之为MaxLOD Map的数据结构来实现的,其结合了四叉树的层次数据结构优点和MaxLOD Map全局数据结构优点,克服了四叉树结构在搜索耗时大的缺点,改进了基于四叉树地形裂缝修补时间长的缺陷。
Description
技术领域
本发明涉及一种基于MaxLOD Map的四叉树地形裂缝修补方法。
背景技术
地形建模是虚拟现实中热门话题,诸如汽车驾驶模拟器、飞行模拟器以及船舶驾驶模拟器等都离不开地形建模。为节省计算机存储资源和CPU计算资源,通常将地形设计为多种不同的细节层次(Level of Details, LOD),通过控制不同细节层次来控制地形网格的数量。控制因子可以根据地形的粗糙度或者视点与地形的远近来进行设计。
地形LOD可以通过四叉树结构来实现。但是在LOD地形中,不可避免地会出现不同层次LOD网格同时存在于地形中。正是由于这种LOD层级的差异会造成地形的裂缝。
由于四叉树节点往往只能通过递归获取子节点信息,这是一种局部递归结构。四叉树结构在查找节点通常需要从根节点开始,进行递归遍历。但是这种结构往往只能获取局部信息,无法获取全局信息。由于四叉树地形修补时需要获取全局信息,因此地形修补不易在传统的递归结构中实现。
发明内容
本发明其目的就在于提供一种基于MaxLOD Map的四叉树地形裂缝修补方法,以解决上述背景技术中的问题。
为实现上述目的而采取的技术方案是,一种基于MaxLOD Map的四叉树地形裂缝修补方法,该方法包括以下步骤:
(1)MaxLOD Map 的定义和创建:
根据地形数据大小定义MaxLOD Map大小,要求地形数据为(2n+1)2大小(n为四叉树的深度),MaxLOD Map 大小也定义为(2n+1)2;MaxLOD Map存储的信息是当前节点及其子节点的可细分的最高层级信息;如果一个节点不再进行细分,则将当前层级LOD信息保存到相应MaxLOD Map位置处;
(2)基于MaxLOD Map的四叉树地形裂缝修补:
在四叉树节点中定义四个相邻方向修补标记,以节点为中心,分别表示上下左右四个方向修补标记;修补标记初始化为false,如果相邻某个方向需要进行修补时,则将该方向修补标记置为true;在修补操作过程中,需要遍历所有节点,进行当前节点是否需要进行修补判断;修补判断通过查询当前节点及其相邻节点位置处对应MaxLOD Map,如果当前节点与相邻节点MaxLOD值不同,则需要进行修补,并更新相应方向修补标记;如果当前节点与相邻节点的MaxLOD值相同,则不需要修补;当完成修补后,则所有修补信息都保存在当前节点的各个方向的修补标记中,至此完成修补操作。
有益效果
与现有技术相比本发明具有以下优点。
1.该方法不仅可以充分利用四叉树结构的层次特点,还可以根据MaxLOD Map 进行相邻地形裂缝修补;
2.该方法中由于MaxLOD Map是一种全局的数据结构,能够避免了四叉树结构不宜获取全局信息的缺陷;因此,结合四叉树的层次结构特点和MaxLOD Map的全局信息特点,不仅可以通过递归方法进行四叉树创建,还可以从全局上进行裂缝的修补;
3.该方法只需遍历一次所有节点,即可实现MaxLOD Map更新;
4.MaxLOD Map 是一种全局的数据结构,保存所有节点最高层级LOD(MaxLOD)的信息,根据MaxLOD Map可以方便获取所有节点的LOD信息,尤其是相邻节点层级信息,因此,基于MaxLOD Map的四叉树节点LOD信息查询方式消耗时间远低于基于四叉树结构的节点搜索时间。
附图说明
图1为本发明的四叉树结构示意图;
图2为本发明给出的四叉树节点示意图;
图3为本发明给出MaxLOD Map示意图;
图4为本发明的四叉树地形裂缝示意图;
图5为本发明的四叉树地形裂缝修补后效果(网格大小9×9);
图6为本发明的四叉树地形裂缝修补前效果(网格大小33×33);
图7为本发明的四叉树地形裂缝修补后效果(网格大小33×33)。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
一种基于MaxLOD Map的四叉树地形裂缝修补方法,其具体步骤如下:
(1)MaxLOD Map 的定义和创建:
1)创建四叉树:
根据地形数据创建地形MaxLOD四叉树结构,四叉树是一种数据结构,常用于地形建模,该结构通过对空间进行划分,一个节点通常可以划分为四个子节点。其中当前节点及其自节点的最高LOD值定义为MaxLOD值,而保存MaxLOD值的数据结构定义为MaxLOD Map。
在创建节点时根据用户要求进行细分设置,诸如根据地形粗糙度或者距离进行细分层次确定。如果当前节点达到细分的MaxLOD值,则停止细分,并将细分标记置为false,表示该节点不再进行细分。
计算每个节点的MaxLOD Map 索引,便于进行索引查询节点。
附图1为四叉树节点示意图;其中L0为0级节点,即根节点;L10,L11,L12,L13为1级节点,L20,L21,L22,L23分别为2级节点。
2)建立和更新MaxLOD Map :
建立MaxLOD Map,大小与地形大小相同,通常为(2n+1)2,其中n为四叉树的深度。并将MaxLOD Map初始化为0。
遍历所有节点,查询每个节点的MaxLOD值,并将其父节点的MaxLOD Map值也置为该最高层级值。如图3所示,该图展示了一个9 9大小的MaxLOD Map更新后值的分布情况。
以A节点(1,7)和B节点(2,6)为例,A节点为B节点的子节点,由于A节点不再细分,因此为最高层级节点,且层级为2,而B节点为A节点的父节点,其值也置为2。对于C节点(5,7),D节点(6,6),E节点(4,4),由于C节点没有被细分,因此其值保持不变,仍然为0,而D节点为最高层级节点,为1。E保持其子节点中的最高值,因此为2。
(2)基于MaxLOD Map的四叉树地形裂缝修补:
四叉树地形裂缝如图4中的虚线所示,由于不同层级LOD相邻三角形细分层次不一,导致三角形不重合从而形成裂缝。如节点F(3,7),H(4,7)所示,由于节点H分别属于不同的层级,会导致两侧面片不重合,这就是所谓的裂缝,而裂缝修补的方法为删除类似于FH这种边。
进行裂缝修补时,首先按照细分层级从高到地的顺序进行所有节点遍历或者根据四叉树结构从根节点遍历所有节点,分别查询同等LOD层级下的修补情况。而这里的最高LOD层级可以通过MaxLOD Map 进行获取。通过对每个节点左、右、上、下四个方向LOD层级的比较,可以获得修补信息。同样以节点F(3,7),H(4,7)为例,由于右边相邻节点I(5,7) LOD为1,则MaxLOD Map中的值为0,表示该节点不再细分,因此可知F节点右边需要进行修补,其他各节点可以通过同样方式实现修补操作。修补完成后的结果如图5所示,从中可以看出,不同LOD层级之间都实现了修补,消除了不同层级之间的裂缝。图6、图7分别是本发明修补网格大小33×33四叉树地形裂缝修补前、修补后效果。
Claims (1)
1.一种基于MaxLOD Map的四叉树地形裂缝修补方法,其特征在于,该方法包括以下步骤:
(1) MaxLOD Map 的定义和创建:根据地形数据大小定义MaxLOD Map大小,要求地形数据为(2 n+1) 2大小,n为四叉树的深度,MaxLOD Map 大小也定义为(2 n+1) 2,n也为四叉树的深度;MaxLOD Map存储的信息是当前节点及其子节点的可细分的最高层级信息;如果一个节点不再进行细分,则将当前层级LOD信息保存到相应MaxLOD Map位置处;而具体MaxLOD Map 的定义和创建包括以下步骤:
1)创建四叉树:根据地形数据创建地形MaxLOD四叉树结构,四叉树是一种数据结构,常用于地形建模,该结构通过对空间进行划分,一个节点通常可以划分为四个子节点;其中当前节点及其自节点的最高LOD值定义为MaxLOD值,而保存MaxLOD值的数据结构定义为MaxLOD Map;
在创建节点时根据用户要求进行细分设置,诸如根据地形粗糙度或者距离进行细分层次确定;如果当前节点达到细分的MaxLOD值,则停止细分,并将细分标记置为false,表示该节点不再进行细分;
计算每个节点的MaxLOD Map 索引,便于进行索引查询节点;
2)建立和更新MaxLOD Map :建立MaxLOD Map,大小与地形大小相同,通常为(2n+1) 2,其中n为四叉树的深度,并将MaxLOD Map初始化为0;
遍历所有节点,查询每个节点的MaxLOD值,并将其父节点的MaxLOD Map值也置为该最高层级值;
(2) 基于MaxLOD Map的四叉树地形裂缝修补:在四叉树节点中定义四个相邻方向修补标记,以节点为中心,分别表示上下左右四个方向修补标记;修补标记初始化为false,如果相邻某个方向需要进行修补时,则将该方向修补标记置为true;在修补操作过程中,需要遍历所有节点,进行当前节点是否需要进行修补判断;修补判断通过查询当前节点及其相邻节点位置处对应MaxLOD Map,如果当前节点与相邻节点MaxLOD值不同,则需要进行修补,并更新相应方向修补标记;如果当前节点与相邻节点的MaxLOD值相同,则不需要修补;当完成修补后,则所有修补信息都保存在当前节点的各个方向的修补标记中,至此完成修补操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010362162.5A CN111507926B (zh) | 2020-04-30 | 2020-04-30 | 一种基于MaxLOD Map的四叉树地形裂缝修补方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010362162.5A CN111507926B (zh) | 2020-04-30 | 2020-04-30 | 一种基于MaxLOD Map的四叉树地形裂缝修补方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111507926A CN111507926A (zh) | 2020-08-07 |
CN111507926B true CN111507926B (zh) | 2023-12-12 |
Family
ID=71864980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010362162.5A Active CN111507926B (zh) | 2020-04-30 | 2020-04-30 | 一种基于MaxLOD Map的四叉树地形裂缝修补方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111507926B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080018404A (ko) * | 2006-08-24 | 2008-02-28 | 한국문화콘텐츠진흥원 | 게임 제작을 위한 배경 제작 프로그램을 저장한 컴퓨터에서읽을 수 있는 기록매체 |
KR100935886B1 (ko) * | 2009-06-19 | 2010-01-07 | 인하대학교 산학협력단 | 그래픽스 처리 유닛을 이용한 사진트리 기반의 지형 렌더링 방법 |
KR100959349B1 (ko) * | 2009-06-19 | 2010-05-20 | 인하대학교 산학협력단 | 그래픽스 처리 유닛을 이용한 사진트리 기반의 지형 렌더링 방법을 가속화하는 방법 |
US8390623B1 (en) * | 2008-04-14 | 2013-03-05 | Google Inc. | Proxy based approach for generation of level of detail |
WO2015119325A1 (ko) * | 2014-02-07 | 2015-08-13 | 고려대학교 산학협력단 | 지형 렌더링 방법 |
CN105405166A (zh) * | 2015-10-30 | 2016-03-16 | 东北大学 | 一种基于线性四叉树的lod模型生成方法 |
CN106327577A (zh) * | 2016-08-17 | 2017-01-11 | 中国地质大学(武汉) | 基于局部曲率熵和四叉树结构的三维地形曲面优化方法 |
CN106652011A (zh) * | 2016-12-27 | 2017-05-10 | 广东科学技术职业学院 | 一种基于lod技术的场地渲染方法 |
CN108198143A (zh) * | 2017-12-28 | 2018-06-22 | 中国测绘科学研究院 | 一种去LoD层级约束的三维地形裂缝消除方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140354626A1 (en) * | 2010-05-12 | 2014-12-04 | Google Inc. | Block Based Level of Detail Representation |
US9165403B2 (en) * | 2011-01-14 | 2015-10-20 | Intel Corporation | Planetary scale object rendering |
-
2020
- 2020-04-30 CN CN202010362162.5A patent/CN111507926B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080018404A (ko) * | 2006-08-24 | 2008-02-28 | 한국문화콘텐츠진흥원 | 게임 제작을 위한 배경 제작 프로그램을 저장한 컴퓨터에서읽을 수 있는 기록매체 |
US8390623B1 (en) * | 2008-04-14 | 2013-03-05 | Google Inc. | Proxy based approach for generation of level of detail |
KR100935886B1 (ko) * | 2009-06-19 | 2010-01-07 | 인하대학교 산학협력단 | 그래픽스 처리 유닛을 이용한 사진트리 기반의 지형 렌더링 방법 |
KR100959349B1 (ko) * | 2009-06-19 | 2010-05-20 | 인하대학교 산학협력단 | 그래픽스 처리 유닛을 이용한 사진트리 기반의 지형 렌더링 방법을 가속화하는 방법 |
WO2015119325A1 (ko) * | 2014-02-07 | 2015-08-13 | 고려대학교 산학협력단 | 지형 렌더링 방법 |
CN105405166A (zh) * | 2015-10-30 | 2016-03-16 | 东北大学 | 一种基于线性四叉树的lod模型生成方法 |
CN106327577A (zh) * | 2016-08-17 | 2017-01-11 | 中国地质大学(武汉) | 基于局部曲率熵和四叉树结构的三维地形曲面优化方法 |
CN106652011A (zh) * | 2016-12-27 | 2017-05-10 | 广东科学技术职业学院 | 一种基于lod技术的场地渲染方法 |
CN108198143A (zh) * | 2017-12-28 | 2018-06-22 | 中国测绘科学研究院 | 一种去LoD层级约束的三维地形裂缝消除方法 |
Non-Patent Citations (3)
Title |
---|
基于四叉树的大规模实时地形渲染技术研究;周小山;邓绍江;雷雨;;微处理机(第05期);全文 * |
汤延辰 ; 郭星 ; 张功营 ; 丁全 ; 姚振.一种多控制因子LOD大规模地形绘制算法.《微电子学与计算机》.2019,全文. * |
邹长军 ; 赖智华 ; 李丰.基于MaxLOD Map的四叉树地形修补方法.2020中国仿真大会.2020,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111507926A (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108806472B (zh) | 电子地图中的道路渲染方法、装置和处理方法、装置 | |
CN102496187B (zh) | 一种基于三角形网格的追踪等值线至边界及断层的方法 | |
CN109118588B (zh) | 一种基于块分解的彩色lod模型自动生成方法 | |
CN108198143B (zh) | 一种去LoD层级约束的三维地形裂缝消除方法 | |
CN116127115B (zh) | 面向时序更新的倾斜摄影三维模型瓦片集可视化方法 | |
CN111090712A (zh) | 一种数据处理方法、装置、设备及计算机存储介质 | |
CN101976468A (zh) | 一种多分辨率动态地形可视化方法及系统 | |
CN114529633A (zh) | 一种支持gis线对象和面对象连续lod绘制的方法 | |
US20070291029A1 (en) | Unification and part hiding in three dimensional geometric data | |
CN106204719B (zh) | 基于二维邻域检索的三维场景中海量模型实时调度方法 | |
CN103823854A (zh) | 一种基于陆地边界线索引减少导航终端电子地图数据量的方法 | |
CN110688756B (zh) | 一种采集和制图一体化的竣工图制作方法 | |
CN111507926B (zh) | 一种基于MaxLOD Map的四叉树地形裂缝修补方法 | |
CN115047825A (zh) | 一种数控加工铣削实时显示的方法 | |
CN110955934B (zh) | 面向加工实时监控的切削仿真实现方法 | |
CN111177967A (zh) | 网格单元的批量修改方法,其装置及电子设备 | |
CN113111428B (zh) | 一种挡墙立面图优化标高标注的方法 | |
CN113987082A (zh) | 一种基于地理实体编码的三维单体模型数据模型表达方法 | |
CN106683164A (zh) | 一种海量三维数字城市模型组织管理方法 | |
CN110162903B (zh) | 一种基于格网并行的城市建筑迎风面密度计算方法及系统 | |
CN116049206B (zh) | 一种空间规划业务库的更新方法 | |
CN111966773A (zh) | 管理地图数据的方法、装置、电子设备和存储介质 | |
CN116029263A (zh) | 一种dwg对象导入方法、装置、设备及介质 | |
CN112036012B (zh) | 一种基于区域生长的刀具对毛坯的布尔运算方法 | |
CN111310089B (zh) | 一种适应比例尺的矢量河网数据在线快速加载和渲染方法 |
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 |