一种消除三维地质模型边界裂缝的锁边LOD方法
王振娟(1999— ),女,安徽阜阳人,硕士生,主要从事三维地学仿真研究。E-mail: wangzhenj1123@163.com |
收稿日期: 2022-08-14
修回日期: 2022-10-14
网络出版日期: 2023-04-27
基金资助
国家重点研发计划课题(2019YFC0605102)
国家自然科学基金项目(41972307)
An Edge-locking LOD Method for Eliminating Boundary Cracks in 3D Geological Models
Received date: 2022-08-14
Revised date: 2022-10-14
Online published: 2023-04-27
Supported by
National Key Research and Development Program of China(2019YFC0605102)
National Natural Science Foundation of China(41972307)
本文针对采用传统LOD生成算法快速渲染大范围三维地质模型时连续性差的问题,提出一种消除三维地质模型边界裂缝的锁边LOD方法。① 使用多级图划分算法并通过并行计算将网格分块问题快速转化为图分区问题,根据空间相邻关系将三角网格划分为一系列大小相近的集群和集群组; ② 基于二次误差测量的网格简化算法锁定集群组边界进行简化以生成更高层级的LOD数据,在简化时通过增加边界边权值实现集群组的锁边简化,自下而上地构建起不同级别集群和集群组的依赖关系; ③ 有效生成模型各级LOD渐进数据块,并采用分页机制编码数据块。本文使用基于钻孔数据所构建的三维地质模型,对模型执行集群和集群组的划分、约束外边界的网格简化等操作来构建LOD,并对LOD数据进行编码。实验结果表明本文方法可生成各级简化率约为50%的LOD以消除三维地质模型高低精度数据块之间的裂缝,实现了三维地质模型可视化时较好的连续性表达,为地下空间透明化和大范围地质模型可视化提供支撑。
王振娟 , 花卫华 , 刘修国 , 郑鹏 , 肖旖旎 , 闻龙 . 一种消除三维地质模型边界裂缝的锁边LOD方法[J]. 地球信息科学学报, 2023 , 25(5) : 967 -981 . DOI: 10.12082/dqxxkx.2023.220589
In response to the problem of poor continuity when using traditional LOD generation algorithms to render large-scale 3D geological models, this paper puts forward a kind of edge-locking LOD method to eliminate boundary cracks in 3D geological models. To begin with, the triangular grid partitioning issue is quickly transformed into a graph partitioning problem using a multi-level graph partitioning algorithm, which divides the triangular grid into a series of clusters and cluster groups of similar size based on spatial adjacency and executes the multi-level graph partitioning algorithm with parallel computation to improve the partitioning efficiency. Next, the grid simplification algorithm based on quadratic error metric locks the boundaries of cluster groups for simplification to generate higher level LOD. In the simplification phase, edge-locking simplification is achieved by increasing the boundary edge weights of cluster groups at each level of LOD, while at the same time, DAG dependencies of clusters and cluster groups at different levels of LOD are constructed from the bottom up. Finally, the LOD progressive data blocks at all levels of the model are efficiently generated and the paging mechanism is utilized to encode cluster and cluster group data blocks, thus taking full account of the spatial adjacency of the data and DAG dependencies so that a minimum number of Pages are loaded simultaneously at runtime. In this paper, the 3D geological models with different scales and complexity constructed from borehole data are selected for data validation, in which A is constructed from 189 borehole data to obtain 21 standard strata with a data size of 50MB and an area of 3337 km2; B is constructed from 6489 borehole data to obtain 43 standard strata with a data size of 139 MB and an area of 123 km2. After accessing the data file in Obj format, the LOD is constructed by performing operations on the model such as delineation of clusters and cluster groups, mesh simplification of constrained outer boundaries, as well as encoding the clusters and cluster groups data of the LOD. The experimental findings indicate that the approach proposed in the paper can generate LOD with a simplification rate of approximately 50% at all levels to eliminate cracks between high and low precision data blocks of the 3D geological model, achieve better continuity expression when visualizing 3D geological models, have better rendering effects, which can satisfy the requirements of high-quality visualization of multi-scale large-scale 3D geological models, and is applicable to urban underground space engineering, digital mines, and other fields, as well as providing support for the transparency of underground space and visualization of large-scale geological models.
数据结构1:Section//具有相同纹理属性的三角网格 |
---|
{ |
1. MaterialIndex;//纹理索引 |
2. NumTriangles;//网格数量 |
3. MinVertexIndex;//记录最大顶点索引 |
4. MaxVertexIndex;//记录最小顶点索引 |
} |
数据结构2:Cluster //集群 |
---|
{ |
//网格数据 |
1. Verts; //顶点 |
2. Indexes; //索引 |
3. MaterialIndexes; //纹理索引 |
4. BoundaryEdges; //边界边 |
5. ExternalEdges; //扩展边 |
6. AdjacentClusters; //相邻的集群 |
//包围盒数据 |
7. Bounds; //包围盒 |
8. MeshBoundsMin; //网格包围盒 |
//所在的集群组数据 |
9. GroupIndex; //索引 |
10. GroupPartIndex; //编码索引 |
} |
数据结构3:GraphPartitioner //多级图分区算法 |
---|
{ |
//图数据 |
1. Offset; //索引位移 |
2. Num; //数量 |
3. Adjacency; //邻边列表 |
4. AdjacencyCost; //邻边权重列表 |
5. AdjacencyOffset; //邻边位移列表 |
//范围数据 |
6. Ranges; //范围 |
7. RangeIndex; //范围索引 |
} |
数据结构4:ClusterGroup //集群组 |
---|
{ |
//包围盒 |
1. Bounds; |
2. LODBounds; |
//误差 |
3. MinLODError; |
4. MaxParentLODError; |
//层级和网格索引 |
5. MipLevel; |
6. MeshIndex; |
//页表索引 |
7. PageIndexStart; |
8. PageIndexNum; |
//子节点索引 |
9. Children; |
} |
表1 预处理后的集群和集群组数据Tab. 1 Preprocessed clusters and cluster groups (个) |
A模型 | B模型 | A模型 | B模型 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
集群数 | 集群组数 | 集群数 | 集群组数 | 集群数 | 集群组数 | 集群数 | 集群组数 | ||||
LOD 0 | 8184 | 411 | 20799 | 1046 | LOD 9 | 20 | 1 | 52 | 3 | ||
LOD 1 | 4173 | 209 | 10599 | 526 | LOD 10 | 10 | 1 | 27 | 5 | ||
LOD 2 | 2129 | 106 | 5434 | 271 | LOD 11 | 5 | 1 | 14 | 1 | ||
LOD 3 | 1090 | 55 | 2785 | 138 | LOD 12 | 3 | 1 | 6 | 1 | ||
LOD 4 | 558 | 28 | 1424 | 71 | LOD 13 | 2 | 1 | 3 | 1 | ||
LOD 5 | 284 | 14 | 733 | 37 | LOD 14 | 1 | 1 | 2 | 1 | ||
LOD 6 | 144 | 7 | 377 | 19 | LOD 15 | - | - | 1 | 1 | ||
LOD 7 | 74 | 4 | 193 | 10 | 合计 | 16 715 | 842 | 42 548 | 2136 | ||
LOD 8 | 38 | 2 | 99 | 5 |
表2 渲染LOD时的数据统计Tab. 2 Statistics for rendering LOD |
LOD级别 | 三角网格数量/个 | 简化率/% | 渲染时长/ms |
---|---|---|---|
LOD0 | 10 29 388 | 无 | 1896 |
LOD1 | 523 841 | 0.49 | 1016 |
LOD2 | 267 215 | 0.49 | 517 |
LOD3 | 136 773 | 0.49 | 299 |
LOD4 | 70 074 | 0.49 | 146 |
LOD5 | 35 680 | 0.49 | 132 |
LOD6 | 18103 | 0.49 | 156 |
LOD7 | 9257 | 0.49 | 160 |
LOD8 | 4784 | 0.48 | 97 |
LOD9 | 2514 | 0.47 | 118 |
LOD10 | 1260 | 0.50 | 34 |
LOD11 | 630 | 0.50 | 14 |
LOD12 | 378 | 0.40 | 5 |
LOD13 | 252 | 0.33 | 2 |
LOD14 | 126 | 0.50 | 1 |
表3 模型显示帧率 (帧)Tab. 3 Frame rate of model display |
无LOD | 四叉树LOD | 本文方法 | |
---|---|---|---|
A模型 | 28 | 48 | 57 |
B模型 | 12 | 41 | 55 |
[1] |
张源. 城市三维地质建模方法研究[J]. 矿山测量, 2021, 49(1):65-68,88.
[
|
[2] |
戴粤, 戴吾蛟. 基于Surfer平台的FLAC3D三维地质建模方法与模型验证[J]. 工程勘察, 2022, 50(3):43-46.
[
|
[3] |
刘鑫, 李季秀, 胡立堂. 基于多源数据融合的复杂地质矿区三维地质建模[J]. 工程勘察, 2021, 49(12):35-39.
[
|
[4] |
王金鑫, 赵光成, 禄丰年, 等. 真三维地质模型构建的球体测地线八叉树网格方法[J]. 地球信息科学学报, 2019, 21(8):1161-1169.
[
|
[5] |
黄岸烁, 张宝一. 一种基于距离场的三维地质空间属性插值方法[J]. 地质与勘探, 2019, 55(6):1510-1517.
[
|
[6] |
郑通科, 陈庆, 袁峰, 等. 三维矿体模型快速构建方法研究[J]. 合肥工业大学学报(自然科学版), 2015, 38(1):98-102.
[
|
[7] |
张海翔, 李占东, 李阳, 等. “双控”地质建模技术的实践与认识——以渤海湾盆地SZ36-1油田为例[J]. 石油地球物理勘探, 2021, 56(3):603-611,415.
[
|
[8] |
|
[9] |
李文雅, 李丽娟. 三维地质精细化建模在古贤水利枢纽中的应用[J]. 人民长江, 2021, 52(S1):117-119,129.
[
|
[10] |
张明明, 李晓晖, 袁峰, 等. 地层三维建模及面模型插值方法对比研究[J]. 安徽地质, 2015, 25(3):182-186.
[
|
[11] |
龚方方, 胡继华. 基于物探数据的三维地质建模研究——以新疆吐鲁番盆地为例[J]. 产业与科技论坛, 2019, 18(10):92-94.
[
|
[12] |
|
[13] |
曾敏, 赵信文, 陈松, 等. 基于多源数据融合的广州南沙核心区三维工程地质建模[J]. 华南地质, 2022, 38(2):281-291.
[
|
[14] |
陈鹏宇. 大规模城市建筑物的一种混合LOD实时绘制算法[J]. 现代计算机, 2020(1):3-7.
[
|
[15] |
李媛媛, 罗训. 基于虚拟现实的渲染优化算法[J]. 计算机系统应用, 2019, 28(6):178-182.
[
|
[16] |
王振武, 吕小华, 韩晓辉. 基于四叉树分割的地形LOD技术综述[J]. 计算机科学, 2018, 45(4):34-45.
[
|
[17] |
宋力兵, 龚华军, 王新华. 基于改进的约束四叉树LOD全球地形实时绘制[J]. 计算机与数字工程, 2013, 41(10):1668-1671,1697.
[
|
[18] |
刘振东, 李成名, 武鹏达, 等. 去LoD层级约束的海量三维地形裂缝实时消除算法[J]. 测绘通报, 2018(7):48-52.
[
|
[19] |
袁凌, 李丹, 陶飞. 三维场景实时建模中地形生成算法优化[J]. 武汉大学学报·信息科学版, 2017, 42(10):1387-1393.
[
|
[20] |
汤延辰, 郭星, 张功营, 等. 一种多控制因子LOD大规模地形绘制算法[J]. 微电子学与计算机, 2019, 36(4):99-104.
|
[21] |
欧阳志恒, 崔光茫, 赵巨峰, 等. 基于分层级各向异性滤波的图像景深渲染算法[J]. 光学技术, 2018, 44(4):469-475.
[
|
[22] |
李朝奎, 王宁, 吴柏燕, 等. 一种新的ROAM算法及其在地形建模中的应用[J]. 地球信息科学学报, 2018, 20(9):1209-1215.
[
|
[23] |
韩莹, 杨丽芳, 郭娜. 基于LOD技术的多分辨率海水场景实时仿真[J]. 计算机仿真, 2020, 37(7):409-413.
[
|
[24] |
|
[25] |
|
[26] |
|
[27] |
|
[28] |
|
[29] |
廖定安, 肖海慧, 王成杰. 基于Hausdorff测度的图像分割算法研究[J]. 自动化技术与应用, 2019, 38(8):89-92.
[
|
/
〈 |
|
〉 |