OSGB三维模型快速顶层重建方法与流程
未命名
07-13
阅读:165
评论:0
osgb三维模型快速顶层重建方法
技术领域
1.本发明属于三维模型数据处理技术领域,具体是一种osgb三维模型快速顶层重建方法。
背景技术:
2.在实景三维模型中,osgb三维模型是一种使用最为广泛的数据模型,它是将一个三维场景划分为若干个瓦片,各个瓦片内部按照lod分级原则建立了多个层级的数据模型。在实际加载三维场景时,浏览软件根据一个索引文件依次访问和加载每个瓦片数据,在三维场景越来越大、数据量急剧增加的现状下,此种模式存在较大的弊端:1、加载速度较慢,瓦片依次刷新给人的体验感较差;2、数据量增多,对电脑硬件和浏览软件的性能要求高。为了解决上述问题,通常依据现有模型进行顶层重建,即对原有模型进行合并和数据抽稀,建立多个更“粗糙”的层级,直至得到一个顶层文件,这个顶层文件包含了整个三维场景,数据量较少、分辨率较低,但能够满足最基本的显示需求。如公布号为cn114943810b的发明专利,公开了一种基于osgb的倾斜摄影切片的优化方法,通过构建八叉树进行顶层重建。公布号为cn115937456b的发明专利,公开了一种实景三维模型顶层重建方法,通过构建dom和dsm影像的方法进行顶层重建。
3.上述方法采取了较为复杂的算法进行顶层重建,在数据量很大的情况下需要耗费大量的时间进行重建。因此,有必要研究一种更合理的方法,对osgb三维模型进行快速顶层重建。
技术实现要素:
4.本发明的目的是解决大场景三维模型加载效率低、体验感差,现有方法较为复杂的问题,提出一种osgb三维模型快速顶层重建方法。
5.osgb三维模型快速顶层重建方法,包括以下步骤:s1,获取osgb三维模型,根据各瓦片数据范围及其邻接关系按照四叉树方式向上合并,构建顶层四叉树t;具体步骤为:s11,获取osgb三维模型数据和属性数据,假设其包含n个瓦片,单个瓦片长宽尺寸均为s,模型原点为(x0,y0,z0);s12,依次读取n个瓦片的根节点,获取每个瓦片的数据范围minxi,minyi,minzi,maxxi,maxyi,maxzi,i为瓦片编号,1≤i≤n;minxi,minyi,minzi分别表示第i个瓦片在x、y、z方向的最小值,maxxi,maxyi,maxzi分别表示第i个瓦片在x、y、z方向的最大值;s13,根据各瓦片的数据范围,按照下式计算整个模型的数据范围minx0,miny0,minz0,maxx0,maxy0,maxz0;minx0,miny0,minz0分别表示整个模型在x、y、z方向的最小值,maxx0,maxy0,maxz0分别表示整个模型在x、y、z方向的最大值;
;式中,minimum表示取最小值;maximum表示取最大值;s14,根据下式计算顶层四叉树的层级数l;;式中,d为三维模型在x方向长度和y方向长度中的最大值;s15,构建第l层四叉树的节点,具体包括:s151,计算第l层x方向和y方向的瓦片起始编号k
x
,ky,以及结束编号m
x
,my;;式中,表示取整运算;为第l层瓦片的长宽尺寸;s152,依次循环遍历当前层瓦片,假设某瓦片编号为(k,j),k
x
≤k≤m
x
,ky≤j≤my,建立瓦片节点o
l,k,j,children
,l表示节点所在层级,k、j表示瓦片编号,children表示当前节点所包含的子节点列表,该瓦片所包含的数据范围minxk,minyj,maxxk,maxyj根据下式计算:; minxk,minyj分别表示该瓦片在x、y方向的最小值,maxxk,maxyj分别表示该瓦片在x、y方向的最大值;s153,遍历原始瓦片,如果某原始瓦片包含于当前瓦片节点o
l,k,j,children
数据范围内,则将该原始瓦片添加到当前瓦片节点的children列表;如果原始瓦片遍历结束,当前瓦片节点的children列表为空,则当前瓦片节点为无效节点,不予保留,否则,当前瓦片节点为有效节点,予以保留;s154,执行步骤s152和 s153完毕,得到第l层四叉树的所有节点;s16,依照步骤s15依次建立第l-1至第1层的四叉树节点,得到顶层四叉树t;第l层瓦片的长宽尺寸,第l-1层瓦片的长宽尺寸,第l-2层瓦片的长宽尺寸,
…
,第一层瓦片的长度尺寸;s2,对四叉树t各层级节点数据重建,采用自底向上的方式逐层重建三维模型,采用规则格网方法来抽稀顶点,并使用delaunay三角剖分算法对抽稀后的顶点进行三维重建。
6.所述步骤s2的具体过程包括:
s21,从最底层即第l层开始重建模型,依次遍历当前层有效节点;s22,创建顶点数据集v,纹理图像列表img,有效顶点数据集w;s23,依次遍历当前节点的children列表,解析出顶点数据集dv、纹理图像集io,并将其分别存入v和img集合中;s24,根据当前节点数据范围minxk,minyj,maxxk,maxyj和预设的分辨率res构建规则格网,则规则格网内任意一点(m,n)的坐标按下式计算;s25,对于规则格网的每一点,依次遍历顶点数据集,找到离该格网点最近的顶点,存入有效顶点数据集w,遍历完规则格网点,得到抽稀后的有效顶点数据集w;s26,使用delaunay三角剖分算法对数据集w重新构建三维模型;s27,根据原模型纹理对抽稀后构建的新模型的顶点进行赋色,然后保存当前节点的模型数据;s28,重复步骤s21
‑ꢀ
s27,建立当前层所有节点的三维模型并保存;s29,依次建立第l-1至第1层所有节点的三维模型数据。
7.有益效果:1、本发明实现了osgb三维模型快速顶层重建,使大场景三维模型的浏览效率更高。
8.2、本发明使用主流的osgb三维模型数据格式作为顶层重建后的模型格式,保持了与原模型数据的一致性。
9.3、本发明自动化程度高,重建过程基本无需人工干预,可以直接得到顶层重建结果。
附图说明
10.图1是本发明的总体处理流程图。
11.图2是本发明中顶层四叉树构建示意图。
12.图3是本发明中单个节点瓦片重建示意图。
具体实施方式
13.下面结合附图和具体实施例对本发明作进一步说明。
14.实施例1如图1所示,一种osgb三维模型快速顶层重建方法,包括以下步骤:s1,获取osgb三维模型,根据各瓦片数据范围及其邻接关系按照四叉树方式向上合并,构建顶层四叉树t;s2,四叉树各层级节点数据重建,采用自底向上的方式逐层重建三维模型,在重建过程中保留各层级间的相互链接关系。
15.本方法采用规则格网这一简单的方法来抽稀顶点,并使用delaunay三角剖分算法对抽稀后的顶点进行三维重建,能够有效的保持原三维模型的基本轮廓,本方法简单、效率高,能够实现快速顶层重建。
16.实施例2本实施例以某osgb三维模型进行详细说明。
17.s1,获取osgb三维模型,根据各瓦片数据范围及其邻接关系按照四叉树方式向上合并,构建顶层四叉树t;具体步骤为:s11,获取osgb三维模型数据和属性数据,该模型包含2476个瓦片,单个瓦片长宽尺寸均为100m,模型原点为(420000,2954000,0);s12,依次读取2476个瓦片的根节点,获取每个瓦片的数据范围minxi,minyi,minzi,maxxi,maxyi,maxzi,1≤i≤2476;s13,根据各瓦片的数据范围,按照下式计算整个模型的数据范围minx0,miny0,minz0,maxx0,maxy0,maxz0,整个模型的数据范围具体为421099.8,2940399.8,1130.8,431200.2,2959100.2,1754.67;;式中,i为瓦片编号,minimum表示取最小值;maximum表示取最大值;s14,根据下式计算顶层四叉树的层级数l;;式中,d为三维模型在x方向长度和y方向长度中的最大值,此处为18700.4;计算出顶层四叉树的层级数l=8;s15,构建第l层(第8层)四叉树的节点,具体包括:s151, 计算得到当前层x方向和y方向的瓦片起始编号k
x
=4,ky=-69和结束编号m
x
=57,my=26;;式中,表示取整运算;x0,y0为模型原点坐标,此处分别为420000和2954000;此处原始瓦片的尺寸为100,第l层节点瓦片的尺寸即=200,第l-1层节点瓦片的尺寸即=400,
…
,第1层节点瓦片的尺寸==25600;s152,依次循环遍历当前层瓦片编号,假设某瓦片编号为(k,j),k
x
≤k≤m
x
,ky≤j≤my,建立瓦片节点o
l,k,j,children
(l表示节点所在层级,k、j表示瓦片编号,children表示当
前节点所包含的子节点列表),该瓦片所包含的数据范围minxk,minyj,maxxk,maxyj根据下式计算,;s153, 遍历原始瓦片,如果某原始瓦片包含于当前瓦片节点o
l,k,j,children
数据范围内,则将该原始瓦片添加到当前瓦片节点的children列表。如果原始瓦片遍历结束,当前瓦片节点的children列表为空,则当前瓦片节点为无效节点,不予保留,否则,当前瓦片节点为有效节点,予以保留;s154,执行步骤s152
‑ꢀ
s153完毕,则得到了第l层四叉树的所有节点;s16依照步骤s15依次建立第l-1至第1层的四叉树节点,即可得到顶层四叉树t,如图2是顶层四叉树构建示意图。
18.s2,四叉树各层级节点数据重建,采用自底向上的方式逐层重建三维模型,具体为采用规则格网方法来抽稀顶点,并使用delaunay三角剖分算法对抽稀后的顶点进行三维重建:s21,从最底层即第l层开始重建模型,依次遍历当前层有效节点;s22,创建顶点数据集v,纹理图像列表img,有效顶点数据集w;s23,依次遍历当前节点的children列表,解析出顶点数据集dv、纹理图像集io,并将其分别存入v和img集合中;s24,根据当前节点数据范围minxk,minyj,maxxk,maxyj和预设的分辨率res(此处设为2.0)构建规则格网,则规则格网内任意一点(m,n)的坐标按下式计算,;s25,对于规则格网的每一点,依次遍历顶点数据集,找到离该格网点最近的顶点,存入有效顶点数据集w,遍历完规则格网点,则得到了抽稀后的有效顶点数据集w;s26,使用delaunay三角剖分算法对数据集w重新构建三维模型;s27,根据原模型纹理对抽稀后的构建的新模型的顶点进行赋色,然后保存当前节点的模型数据;s28,重复步骤s21
‑ꢀ
s27,建立当前层所有节点的三维模型并保存;s29,依次建立第l-1至第1层所有节点的三维模型数据。
19.如图3是某个节点瓦片重建示意图。
20.将本发明方法的处理结果与cesiumlab 3.0.8商用软件的处理结果相比较,本发明方法能够极大地降低顶层重建的时间,缩减率高达98.6%,重建后数据文件大小也缩减了27.7%,说明本发明方法效率高。
21.以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
技术特征:
1.osgb三维模型快速顶层重建方法,其特征在于,包括以下步骤:s1,获取osgb三维模型,根据各瓦片数据范围及其邻接关系按照四叉树方式向上合并,构建顶层四叉树t;具体步骤为:s11,获取osgb三维模型数据和属性数据,假设其包含n个瓦片,单个瓦片长宽尺寸均为s,模型原点为(x0,y0,z0);s12,依次读取n个瓦片的根节点,获取每个瓦片的数据范围minx
i
,miny
i
,minz
i
,maxx
i
,maxy
i
,maxz
i
,i为瓦片编号,1≤i≤n;minx
i
,miny
i
,minz
i
分别表示第i个瓦片在x、y、z方向的最小值,maxx
i
,maxy
i
,maxz
i
分别表示第i个瓦片在x、y、z方向的最大值;s13,根据各瓦片的数据范围,按照下式计算整个模型的数据范围minx0,miny0,minz0,maxx0,maxy0,maxz0;minx0,miny0,minz0分别表示整个模型在x、y、z方向的最小值,maxx0,maxy0,maxz0分别表示整个模型在x、y、z方向的最大值;;式中,minimum表示取最小值;maximum表示取最大值;s14,根据下式计算顶层四叉树的层级数l;;式中,d为三维模型在x方向长度和y方向长度中的最大值;s15,构建第l层四叉树的节点,具体包括:s151,计算第l层x方向和y方向的瓦片起始编号k
x
,k
y
,以及结束编号m
x
,m
y
;;式中,表示取整运算;为第l层瓦片的长宽尺寸;s152,依次循环遍历当前层瓦片,假设某瓦片编号为(k,j),k
x
≤k≤m
x
,k
y
≤j≤m
y
,建立瓦片节点o
l,k,j,children
,l表示节点所在层级,k、j表示瓦片编号,children表示当前节点所包含的子节点列表,该瓦片所包含的数据范围minx
k
,miny
j
,maxx
k
,maxy
j
根据下式计算:; minx
k
,miny
j
分别表示该瓦片在x、y方向的最小值,maxx
k
,maxy
j
分别表示该瓦片在x、y方向的最大值;s153,遍历原始瓦片,如果某原始瓦片包含于当前瓦片节点o
l,k,j,children
数据范围内,则将该原始瓦片添加到当前瓦片节点的children列表;如果原始瓦片遍历结束,当前瓦片节
点的children列表为空,则当前瓦片节点为无效节点,不予保留,否则,当前瓦片节点为有效节点,予以保留;s154,执行步骤s152
‑ꢀ
s153完毕,得到第l层四叉树的所有节点;s16,依照步骤s15依次建立第l-1至第1层的四叉树节点,得到顶层四叉树t ;s2,对四叉树t各层级节点数据重建,采用自底向上的方式逐层重建三维模型,采用规则格网方法来抽稀顶点,并使用delaunay三角剖分算法对抽稀后的顶点进行三维重建。2.如权利要求1所述的osgb三维模型快速顶层重建方法,其特征在于,所述s1中构建第l层四叉树的节点,第l层瓦片的长宽尺寸,第l-1层瓦片的长宽尺寸,第l-2层瓦片的长宽尺寸,
…
,第一层瓦片的长度尺寸 。3.如权利要求1所述的osgb三维模型快速顶层重建方法,其特征在于,所述s2的具体过程为:s21,从最底层即第l层开始重建模型,依次遍历当前层有效节点;s22,创建顶点数据集v,纹理图像列表img,有效顶点数据集w;s23,依次遍历当前节点的children列表,解析出顶点数据集d
v
、纹理图像集i
o
,并将其分别存入v和img集合中;s24,根据当前节点数据范围minx
k
,miny
j
,maxx
k
,maxy
j
和预设的分辨率res构建规则格网,则规则格网内任意一点(m,n)的坐标按下式计算;s25,对于规则格网的每一点,依次遍历顶点数据集,找到离该格网点最近的顶点,存入有效顶点数据集w,遍历完规则格网点,得到抽稀后的有效顶点数据集w;s26,使用delaunay三角剖分算法对数据集w重新构建三维模型;s27,根据原模型纹理对抽稀后构建的新模型的顶点进行赋色,然后保存当前节点的模型数据;s28重复步骤s21
‑ꢀ
s27,建立当前层所有节点的三维模型并保存;s29,依次建立第l-1至第1层所有节点的三维模型数据。
技术总结
本发明属于三维模型数据处理技术领域,具体是一种OSGB三维模型快速顶层重建方法。本发明首先获取OSGB倾斜模型,根据各瓦片数据范围及其邻接关系按照四叉树方式向上合并,构建顶层四叉树T,再对四叉树各层级节点采用自底向上的方式逐层重建三维模型,并在重建过程中保留各层级间的相互链接关系,实现了OSGB三维模型快速顶层重建。本发明的方法设计合理,具有自动化程度高、效率高、成本低等特点。成本低等特点。成本低等特点。
技术研发人员:陈科 汪诗奇 王莹 李曦凌 郜士彬 许世民 保振永 叶洪剑 姜咏絮 毛云华 王学辉 许兴贵 张正梅
受保护的技术使用者:南方电网调峰调频发电有限公司鲁布革水力发电厂
技术研发日:2023.06.12
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
