CN115937438B - 城市三维模型轻量化方法、系统、电子设备及存储介质 - Google Patents
城市三维模型轻量化方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115937438B CN115937438B CN202310112208.1A CN202310112208A CN115937438B CN 115937438 B CN115937438 B CN 115937438B CN 202310112208 A CN202310112208 A CN 202310112208A CN 115937438 B CN115937438 B CN 115937438B
- Authority
- CN
- China
- Prior art keywords
- dimensional model
- model
- octree
- node
- nodes
- 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 35
- 239000000178 monomer Substances 0.000 claims abstract description 43
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 23
- 238000001514 detection method Methods 0.000 claims description 27
- 238000012216 screening Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 239000003086 colorant Substances 0.000 claims description 3
- 238000010276 construction Methods 0.000 abstract description 8
- 238000005457 optimization Methods 0.000 abstract description 2
- 238000013079 data visualisation Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
- Y02A30/00—Adapting or protecting infrastructure or their operation
- Y02A30/60—Planning or developing urban green infrastructure
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明公开一种城市三维模型轻量化方法、系统、电子设备及存储介质,涉及三维模型数据优化领域,方法包括获取城市三维模型;根据所述城市三维模型的范围确定八叉树的空间边界;根据所述空间边界和所述城市三维模型利用八叉树算法进行空间划分,得到八叉树节点;对所述八叉树节点利用表面重构算法进行重构,得到简化模型;根据所述简化模型和单体属性纹理确定轻量化城市三维模型;所述单体属性纹理是根据所述城市三维模型确定的。本发明能满足三维建设过程中海量实景三维数据的快速浏览和应用的需求。
Description
技术领域
本发明涉及三维模型数据优化领域,特别是涉及一种城市三维模型轻量化方法、系统、电子设备及存储介质。
背景技术
在智慧城市建设中对具有流动性特点的人口数据的管理和数据可视化一直是一大难点,现提出一种解决方法是将流动的人口数据与静态的楼宇进行绑定和关联,从而实现“以静制动”。但由于大型、超大型城市的楼宇密集、人口数量众多,庞大的数据量造成数据可视化困难、人口数据绑定困难,因此,亟需一种能够对海量的、高密度的三维楼宇-人口三维模型数据进行轻量化处理的方法及系统,满足智慧城市建设中对城市人口高效管理的需求。
发明内容
本发明的目的是提供一种城市三维模型轻量化方法、系统、电子设备及存储介质,以满足三维建设过程中海量实景三维数据的快速浏览和应用的需求。
为实现上述目的,本发明提供了如下方案:
一种城市三维模型轻量化方法,包括:
获取城市三维模型;
根据所述城市三维模型的范围确定八叉树的空间边界;
根据所述空间边界和所述城市三维模型利用八叉树算法进行空间划分,得到八叉树节点;
对所述八叉树节点利用表面重构算法进行重构,得到简化模型;
根据所述简化模型和单体属性纹理确定轻量化城市三维模型;所述单体属性纹理是根据所述城市三维模型确定的。
可选地,对所述八叉树节点利用表面重构算法进行重构,得到简化模型,具体包括:
对所述八叉树节点进行筛选,得到与所述城市模型相交且不被遮挡的叶子节点;
根据所述叶子节点的顶点进行碰撞检测,得到检测结果;
根据所述检测结果构建三角面;
根据所述三角面确定简化模型。
可选地,根据所述简化模型和单体属性纹理确定轻量化城市三维模型,具体包括:
根据所述城市三维模型确定每个单体的外轮廓矢量数据;
将所述外轮廓矢量数据赋给到所述简化模型上,得到带有挂接属性的简化模型;
创建单通道纹理;
根据所述单通道纹理和所述外轮廓矢量数据确定单体属性纹理;
将所述单体属性纹理赋给所述带有挂接属性的简化模型,得到轻量化城市三维模型。
本发明还提供一种城市三维模型轻量化系统,包括:
获取模块,用于获取城市三维模型;
空间边界确定模块,用于根据所述城市三维模型的范围确定八叉树的空间边界;
空间划分模块,用于根据所述空间边界和所述城市三维模型利用八叉树算法进行空间划分,得到八叉树节点;
重构模块,用于对所述八叉树节点利用表面重构算法进行重构,得到简化模型;
轻量化城市三维模型确定模块,用于根据所述简化模型和单体属性纹理确定轻量化城市三维模型;所述单体属性纹理是根据所述城市三维模型确定的。
可选地,所述重构模块,具体包括:
筛选单元,用于对所述八叉树节点进行筛选,得到与所述城市模型相交且不被遮挡的叶子节点;
碰撞检测单元,用于根据所述叶子节点的顶点进行碰撞检测,得到检测结果;
三角面确定单元,用于根据所述检测结果构建三角面;
简化模型确定单元,用于根据所述三角面确定简化模型。
可选地,所述轻量化城市三维模型确定模块,具体包括:
外轮廓矢量数据确定单元,用于根据所述城市三维模型确定每个单体的外轮廓矢量数据;
带有挂接属性的简化模型确定单元,用于将所述外轮廓矢量数据赋给到所述简化模型上,得到带有挂接属性的简化模型;
创建单元,用于创建单通道纹理;
单体属性纹理确定单元,用于根据所述单通道纹理和所述外轮廓矢量数据确定单体属性纹理;
轻量化城市三维模型确定单元,用于将所述单体属性纹理赋给所述带有挂接属性的简化模型,得到轻量化城市三维模型。
本发明还提供一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述所述的方法。
本发明还提供一种存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如上述所述的方法。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明获取城市三维模型;根据所述城市三维模型的范围确定八叉树的空间边界;根据所述空间边界和所述城市三维模型利用八叉树算法进行空间划分,得到八叉树节点;对所述八叉树节点利用表面重构算法进行重构,得到简化模型;根据所述简化模型和单体属性纹理确定轻量化城市三维模型;所述单体属性纹理是根据所述城市三维模型确定的。通过八叉树算法和表面重构算法确定的轻量化城市三维模型,能够满足三维建设过程中海量实景三维数据的快速浏览和应用的需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为城市三维模型轻量化方法示意图;
图2为三角面构建规则示意图;
图3为进行单体属性查询功能的流程图;
图4为本发明提供的城市三维模型轻量化方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种城市三维模型轻量化方法、系统、电子设备及存储介质,以满足三维建设过程中海量实景三维数据的快速浏览和应用的需求。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1和图4所示,本发明提供的一种城市三维模型轻量化方法,包括:
步骤101:获取城市三维模型。
步骤102:根据所述城市三维模型的范围确定八叉树的空间边界。
确定八叉树的空间范围。首先遍历模型所有顶点,得到左下角顶点Vmin=(Xmin,Ymin,Zmin)和右上角顶点Vmax=(Xmax,Ymax,Zmax),计算模型的最大边长W=MAX(Xmax-Xmin,Ymax-Ymin,Zmax-Zmin),其中MAX表示取最大值的函数。立方体的中心点O=(Xmin+Xmax,Ymin+Ymax,Zmin+Zmax)*0.5,最终得到以O为中心,以W为边长的立方体空间;输出一个立方体空间范围,后续对这个立方体进行八叉树划分。(Xmin,Ymin,Zmin)为左下顶点的坐标,(Xmax,Ymax,Zmax)为右上顶点的坐标。
步骤103:根据所述空间边界和所述城市三维模型利用八叉树算法进行空间划分,得到八叉树节点。
从第0级开始按照八叉树算法对上述空间逐级划分,直至满足节点内单体数量为1或者节点内所包含的所有单体的三角面数量和纹理数量小于一定阈值。判断一个八叉树节点是否包含一个单体模型的条件是该八叉树节点所表达的立方体空间包含这个单体模型的中心点。每个八叉树节点对应一个索引l、i、j、k,l为级别,i为在x轴上的排序,j为在y轴上的排序,k为z方向上的排序。删掉所包含单体数量为0的八叉树节点。最终得到一系列与模型相交的八叉树节点。
步骤104:对所述八叉树节点利用表面重构算法进行重构,得到简化模型。
步骤104,具体包括:对所述八叉树节点进行筛选,得到与所述城市模型相交且不被遮挡的叶子节点;根据所述叶子节点的顶点进行碰撞检测,得到检测结果;根据所述检测结果构建三角面;根据所述三角面确定简化模型。
按照级别从高到低的顺序逐个遍历上述得到的所有非叶子八叉树节点,通过表面重建得到简化后的三维模型。针对每个非叶子节点,生成简化模型的过程如下:
(1)读取该节点内所有孩子节点的三维模型,将该节点继续向下划分m(m>0)级,取与模型相交且不被遮挡的所有叶子节点,判断一个八叉树节点是否与三维模型相交的条件是,三维模型中至少有一个三角面与其相交,判断一个节点是否被遮挡的条件是,其上、左、右、前、后五个面都存在其他八叉树节点与之相邻。得到一系列以该节点为祖先节点,且与模型相交,且不被遮挡的八叉树节点。并计算所有节点索引中的i、j、k的范围,imin为i的最小值,imax为i的最大值,jmin为j的最小值,jmax为j的最大值,kmin为k的最小值,kmax为k的最大值。
(2)针对上述得到的每个八叉树节点,遍历上、下、左、右、前、后六个面,取不存在其他八叉树节点与之相邻的面的四个顶点,针对于每个顶点Vs,以该点为起点,以D为方向,以八叉树节点的半径R为长度,创建一条线段,则线段的终点Ve=Vs+D*R。将线段与模型进行碰撞检测,如果存在交点,则计算交点处的位置V、法线N,颜色C,纹理坐标TC。其中,顶点位置V,顶点法线N和顶点的颜色C用来构建新的三角网mesh。计算线段与三维模型的交点,很多个交点可连成面(三角网)。法线N为交点所在三角面的法线,颜色C通过线性插值获得,方向D的计算方式为:首先得到这个节点所表达的立方体中与顶点Vs相连的三个面P1、P2、P3,和这三个面的法线N1、N2、N3,令D=normalize((S1*N1+S2*N2+S3*N3)*(-1))。其中,S1、S2、S3为标识参数,如果存在八叉树节点与P1相邻,则S1=0,否则S1=1,如果存在八叉树节点与P2相邻,则S2=0,否则S2=1,如果存在八叉树节点与P3相邻则S3=0,否则S3=1,normalize函数可使方向D为单位向量。顶点Vs处的纹理坐标TC的计算方式为:与顶点Vs相邻的八叉树节点索引的最小i记做ic,最小j记做jc,最小k记做kc,则
顶面纹理坐标:
前面纹理坐标:
后面纹理坐标:
左面纹理坐标:
右面纹理坐标:
判断线段是否与模型存在交点的方式为:线段与模型中至少有一个三角面相交,且三角面的法线与线段之间的夹角小于90度,每条线段最多与模型有一个交点,如果计算得到多个交点,则取与线段起点距离最近的那个。
这四条线段与三位模型进行碰撞检测后,如果获得交点数量大于或者等于3,则将这几个交点构建三角面,三角面中包含顶点V、法线N、颜色C和纹理坐标TC,当交点数量小于3的时候忽略,具体如图2所示,有三个交点的时候会生成一个三角面,有四个交点的时候生成两个三角面。其中,灰色区域为三角面,白色区域为空,实心点标识存在交点,空心点标识不存在交点。
经过以上步骤后得到完整的LOD,但是非叶子节点中的三维模型目前还不是单体化的,无法进行单体查询。
步骤105:根据所述简化模型和单体属性纹理确定轻量化城市三维模型;所述单体属性纹理是根据所述城市三维模型确定的。
步骤105,具体包括:根据所述城市三维模型确定每个单体的外轮廓矢量数据;将所述外轮廓矢量数据赋给到所述简化模型上,得到带有挂接属性的简化模型;创建单通道纹理;根据所述单通道纹理和所述外轮廓矢量数据确定单体属性纹理;将所述单体属性纹理赋给所述带有挂接属性的简化模型,得到轻量化城市三维模型。
生成单体属性纹理。属性纹理是一张单通道纹理,用于区分单体,不用于渲染,纹理中的像素记录了单体的OID,其中OID为单体的唯一标识符,通过OID又可检索得到其他属性值,其他属性值存于数据库的表中,OID为数据表的索引。生成属性纹理的过程如下:
(1)计算得到每个单体的外轮廓矢量数据。遍历数据中的单体,针对每个单体数据,遍历单体中的所有三角面,将三维三角面映射到二维XY平面,然后将相邻的三角面合并成MultiPolygon记为Geometry。将模型所有顶点坐标的最大Z值记为MaxHeight,最小Z值记为MinHeight,唯一标识符记为OID,于是得到一条以Geometry(MultiPolygon类型)为几何字段,以MinHeight(double类型)、MaxHeight(double类型)、OID(int类型)为属性字段的矢量数据,同理得到其他单体的外轮廓矢量数据。这些矢量数据用于给生成的简化三维模型挂接属性。
(2)然后创建一张单通道的,S*T大小的纹理,S为纹理的宽,T为纹理的高。遍历纹理中的每个像素,计算得到像素所在的纹理坐标tccr=(Col/S,Row/T),其中Col为像素的列号,Row为像素的行号,根据纹理坐标tc算出其对应的空间坐标p,计算方式为:先找出纹理坐标tc(x,y)所在的三角面,该三角面三个顶点处的纹理坐标分别为tc1(x1,y1)、tc2(x2,y2)、tc3(x3,y3),空间坐标为p1、p2、p3。令
l3=1-l1-l2
则p=p1×l1+p2×l2+p3×l3。然后计算点p落在哪个矢量轮廓内,将像素值赋予该矢量轮廓的OID字段值。点p在矢量轮廓内的条件为,矢量多边形包含p且p.z()>=MinHeight并且p.z()<=MaxHeight。最后将该属性纹理赋给三维模型。
写出完整的LOD结构,将该LOD结构的数据加入到三维场景中,实现城市三维模型的高效渲染的同时可进行单体化查询,查询的流程如图3所示。鼠标点击模型,获取被点击模型的属性纹理及点击位置的纹理坐标,获取属性纹理中在相应纹理坐标处的像素值,即为OID值,通过OID检索其他属性,实现属性查询功能。
本发明还提供一种城市三维模型轻量化系统,包括:
获取模块,用于获取城市三维模型。
空间边界确定模块,用于根据所述城市三维模型的范围确定八叉树的空间边界。
空间划分模块,用于根据所述空间边界和所述城市三维模型利用八叉树算法进行空间划分,得到八叉树节点。
重构模块,用于对所述八叉树节点利用表面重构算法进行重构,得到简化模型。
轻量化城市三维模型确定模块,用于根据所述简化模型和单体属性纹理确定轻量化城市三维模型;所述单体属性纹理是根据所述城市三维模型确定的。
作为一种优选的实施方式,所述重构模块,具体包括:
筛选单元,用于对所述八叉树节点进行筛选,得到与所述城市模型相交且不被遮挡的叶子节点。
碰撞检测单元,用于根据所述叶子节点的顶点进行碰撞检测,得到检测结果。
三角面确定单元,用于根据所述检测结果构建三角面。
简化模型确定单元,用于根据所述三角面确定简化模型。
作为一种优选的实施方式,所述轻量化城市三维模型确定模块,具体包括:
外轮廓矢量数据确定单元,用于根据所述城市三维模型确定每个单体的外轮廓矢量数据。
带有挂接属性的简化模型确定单元,用于将所述外轮廓矢量数据赋给到所述简化模型上,得到带有挂接属性的简化模型。
创建单元,用于创建单通道纹理。
单体属性纹理确定单元,用于根据所述单通道纹理和所述外轮廓矢量数据确定单体属性纹理。
轻量化城市三维模型确定单元,用于将所述单体属性纹理赋给所述带有挂接属性的简化模型,得到轻量化城市三维模型。
本发明还提供一种电子设备,包括:
一个或多个处理器。
存储装置,其上存储有一个或多个程序。
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述所述的方法。
本发明还提供一种存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如上述所述的方法。
本发明先根据模型的范围确定八叉树的空间边界,利用八叉树算法对空间边界逐级划分,得到若干个八叉树节点,将上述所有非叶子节点中的模型用表面重构算法生成简化模型,生成单体属性纹理赋给三维模型形成单体化模型,从而构建完整的LOD结构。最后依据该LOD结构生成最终的实景三维模型结果数据,满足实景三维中国建设过程中PB级海量实景三维数据的快速浏览和应用的需求。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种城市三维模型轻量化方法,其特征在于,包括:
获取城市三维模型;
根据所述城市三维模型的范围确定八叉树的空间边界;
根据所述空间边界和所述城市三维模型利用八叉树算法进行空间划分,得到八叉树节点;
对所述八叉树节点利用表面重构算法进行重构,得到简化模型;
根据所述简化模型和单体属性纹理确定轻量化城市三维模型;所述单体属性纹理是根据所述城市三维模型确定的;
对所述八叉树节点利用表面重构算法进行重构,得到简化模型,具体包括:
对所述八叉树节点进行筛选,得到与所述城市三维模型相交且不被遮挡的叶子节点;
根据所述叶子节点的顶点进行碰撞检测,得到检测结果;
根据所述检测结果构建三角面;
根据所述三角面确定简化模型;
按照级别从高到低的顺序逐个遍历上述得到的所有非叶子八叉树节点,通过表面重建得到简化后的三维模型;针对每个非叶子节点,生成简化模型的过程如下:
(1)读取该节点内所有孩子节点的三维模型,将该节点继续向下划分m级,m>0,取与模型相交且不被遮挡的所有叶子节点,判断一个八叉树节点是否与三维模型相交的条件是,三维模型中至少有一个三角面与其相交,判断一个节点是否被遮挡的条件是,其上、左、右、前、后五个面都存在其他八叉树节点与之相邻;得到一系列以该节点为祖先节点,且与模型相交,且不被遮挡的八叉树节点;并计算所有节点索引中的i、j、k的范围,imin为i的最小值,imax为i的最大值,jmin为j的最小值,jmax为j的最大值,kmin为k的最小值,kmax为k的最大值;
(2)针对上述得到的每个八叉树节点,遍历上、下、左、右、前、后六个面,取不存在其他八叉树节点与之相邻的面的四个顶点,针对于每个顶点Vs,以该点为起点,以D为方向,以八叉树节点的半径R为长度,创建一条线段,则线段的终点Ve=Vs+D*R;将线段与模型进行碰撞检测,如果存在交点,则计算交点处的位置V、法线N,颜色C,纹理坐标TC;其中,顶点位置V,顶点法线N和顶点的颜色C用来构建新的三角网mesh;计算线段与三维模型的交点,很多个交点可连成面;法线N为交点所在三角面的法线,颜色C通过线性插值获得,方向D的计算方式为:首先得到这个节点所表达的立方体中与顶点Vs相连的三个面P1、P2、P3,和这三个面的法线N1、N2、N3,令D=normalize((S1*N1+S2*N2+S3*N3)*(-1));其中,S1、S2、S3为标识参数,如果存在八叉树节点与P1相邻,则S1=0,否则S1=1,如果存在八叉树节点与P2相邻,则S2=0,否则S2=1,如果存在八叉树节点与P3相邻则S3=0,否则S3=1,normalize函数可使方向D为单位向量;顶点Vs处的纹理坐标TC的计算方式为:与顶点Vs相邻的八叉树节点索引的最小i记做ic,最小j记做jc,最小k记做kc,则
顶面纹理坐标:
前面纹理坐标:
后面纹理坐标:
左面纹理坐标:
右面纹理坐标:
判断线段是否与模型存在交点的方式为:线段与模型中至少有一个三角面相交,且三角面的法线与线段之间的夹角小于90度,每条线段最多与模型有一个交点,如果计算得到多个交点,则取与线段起点距离最近的那个;
这四条线段与三位模型进行碰撞检测后,如果获得交点数量大于或者等于3,则将这几个交点构建三角面,三角面中包含顶点V、法线N、颜色C和纹理坐标TC,当交点数量小于3的时候忽略。
2.根据权利要求1所述的城市三维模型轻量化方法,其特征在于,根据所述简化模型和单体属性纹理确定轻量化城市三维模型,具体包括:
根据所述城市三维模型确定每个单体的外轮廓矢量数据;
将所述外轮廓矢量数据赋给到所述简化模型上,得到带有挂接属性的简化模型;
创建单通道纹理;
根据所述单通道纹理和所述外轮廓矢量数据确定单体属性纹理;
将所述单体属性纹理赋给所述带有挂接属性的简化模型,得到轻量化城市三维模型。
3.一种城市三维模型轻量化系统,其特征在于,包括:
获取模块,用于获取城市三维模型;
空间边界确定模块,用于根据所述城市三维模型的范围确定八叉树的空间边界;
空间划分模块,用于根据所述空间边界和所述城市三维模型利用八叉树算法进行空间划分,得到八叉树节点;
重构模块,用于对所述八叉树节点利用表面重构算法进行重构,得到简化模型;
轻量化城市三维模型确定模块,用于根据所述简化模型和单体属性纹理确定轻量化城市三维模型;所述单体属性纹理是根据所述城市三维模型确定的;
所述重构模块,具体包括:
筛选单元,用于对所述八叉树节点进行筛选,得到与所述城市三维模型相交且不被遮挡的叶子节点;
碰撞检测单元,用于根据所述叶子节点的顶点进行碰撞检测,得到检测结果;
三角面确定单元,用于根据所述检测结果构建三角面;
简化模型确定单元,用于根据所述三角面确定简化模型;
按照级别从高到低的顺序逐个遍历上述得到的所有非叶子八叉树节点,通过表面重建得到简化后的三维模型;针对每个非叶子节点,生成简化模型的过程如下:
(1)读取该节点内所有孩子节点的三维模型,将该节点继续向下划分m级,m>0,取与模型相交且不被遮挡的所有叶子节点,判断一个八叉树节点是否与三维模型相交的条件是,三维模型中至少有一个三角面与其相交,判断一个节点是否被遮挡的条件是,其上、左、右、前、后五个面都存在其他八叉树节点与之相邻;得到一系列以该节点为祖先节点,且与模型相交,且不被遮挡的八叉树节点;并计算所有节点索引中的i、j、k的范围,imin为i的最小值,imax为i的最大值,jmin为j的最小值,jmax为j的最大值,kmin为k的最小值,kmax为k的最大值;
(2)针对上述得到的每个八叉树节点,遍历上、下、左、右、前、后六个面,取不存在其他八叉树节点与之相邻的面的四个顶点,针对于每个顶点Vs,以该点为起点,以D为方向,以八叉树节点的半径R为长度,创建一条线段,则线段的终点Ve=Vs+D*R;将线段与模型进行碰撞检测,如果存在交点,则计算交点处的位置V、法线N,颜色C,纹理坐标TC;其中,顶点位置V,顶点法线N和顶点的颜色C用来构建新的三角网mesh;计算线段与三维模型的交点,很多个交点可连成面;法线N为交点所在三角面的法线,颜色C通过线性插值获得,方向D的计算方式为:首先得到这个节点所表达的立方体中与顶点Vs相连的三个面P1、P2、P3,和这三个面的法线N1、N2、N3,令D=normalize((S1*N1+S2*N2+S3*N3)*(-1));其中,S1、S2、S3为标识参数,如果存在八叉树节点与P1相邻,则S1=0,否则S1=1,如果存在八叉树节点与P2相邻,则S2=0,否则S2=1,如果存在八叉树节点与P3相邻则S3=0,否则S3=1,normalize函数可使方向D为单位向量;顶点Vs处的纹理坐标TC的计算方式为:与顶点Vs相邻的八叉树节点索引的最小i记做ic,最小j记做jc,最小k记做kc,则
顶面纹理坐标:
前面纹理坐标:
后面纹理坐标:
左面纹理坐标:
右面纹理坐标:
判断线段是否与模型存在交点的方式为:线段与模型中至少有一个三角面相交,且三角面的法线与线段之间的夹角小于90度,每条线段最多与模型有一个交点,如果计算得到多个交点,则取与线段起点距离最近的那个;
这四条线段与三位模型进行碰撞检测后,如果获得交点数量大于或者等于3,则将这几个交点构建三角面,三角面中包含顶点V、法线N、颜色C和纹理坐标TC,当交点数量小于3的时候忽略。
4.根据权利要求3所述的城市三维模型轻量化系统,其特征在于,所述轻量化城市三维模型确定模块,具体包括:
外轮廓矢量数据确定单元,用于根据所述城市三维模型确定每个单体的外轮廓矢量数据;
带有挂接属性的简化模型确定单元,用于将所述外轮廓矢量数据赋给到所述简化模型上,得到带有挂接属性的简化模型;
创建单元,用于创建单通道纹理;
单体属性纹理确定单元,用于根据所述单通道纹理和所述外轮廓矢量数据确定单体属性纹理;
轻量化城市三维模型确定单元,用于将所述单体属性纹理赋给所述带有挂接属性的简化模型,得到轻量化城市三维模型。
5.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至2中任意一项所述的方法。
6.一种存储介质,其特征在于,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至2中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310112208.1A CN115937438B (zh) | 2023-02-14 | 2023-02-14 | 城市三维模型轻量化方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310112208.1A CN115937438B (zh) | 2023-02-14 | 2023-02-14 | 城市三维模型轻量化方法、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115937438A CN115937438A (zh) | 2023-04-07 |
CN115937438B true CN115937438B (zh) | 2024-01-23 |
Family
ID=86550849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310112208.1A Active CN115937438B (zh) | 2023-02-14 | 2023-02-14 | 城市三维模型轻量化方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115937438B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574360B1 (en) * | 1999-07-23 | 2003-06-03 | International Business Machines Corp. | Accelerated occlusion culling using directional discretized occluders and system therefore |
CN101377857A (zh) * | 2008-07-30 | 2009-03-04 | 电子科技大学 | 一种基于八叉树空间划分和顶点删除的三维模型简化方法 |
CN106355644A (zh) * | 2016-08-31 | 2017-01-25 | 北京像素软件科技股份有限公司 | 三维电子游戏画面中的物体模型剔除方法及装置 |
CN110910505A (zh) * | 2019-11-29 | 2020-03-24 | 西安建筑科技大学 | 一种场景模型的加速渲染方法 |
CN111161411A (zh) * | 2020-04-08 | 2020-05-15 | 速度时空信息科技股份有限公司 | 一种基于八叉树的三维建筑物模型lod方法 |
CN113034663A (zh) * | 2019-12-09 | 2021-06-25 | 北京博超时代软件有限公司 | Gim模型轻量化处理方法和装置、设备及存储介质 |
CN114419256A (zh) * | 2022-01-24 | 2022-04-29 | 正元地理信息集团股份有限公司 | 基于多级抽壳算法的城市级bim数据轻量化方法及系统 |
CN115661374A (zh) * | 2022-12-26 | 2023-01-31 | 南京铖联激光科技有限公司 | 一种基于空间划分和模型体素化的快速检索方法 |
-
2023
- 2023-02-14 CN CN202310112208.1A patent/CN115937438B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574360B1 (en) * | 1999-07-23 | 2003-06-03 | International Business Machines Corp. | Accelerated occlusion culling using directional discretized occluders and system therefore |
CN101377857A (zh) * | 2008-07-30 | 2009-03-04 | 电子科技大学 | 一种基于八叉树空间划分和顶点删除的三维模型简化方法 |
CN106355644A (zh) * | 2016-08-31 | 2017-01-25 | 北京像素软件科技股份有限公司 | 三维电子游戏画面中的物体模型剔除方法及装置 |
CN110910505A (zh) * | 2019-11-29 | 2020-03-24 | 西安建筑科技大学 | 一种场景模型的加速渲染方法 |
CN113034663A (zh) * | 2019-12-09 | 2021-06-25 | 北京博超时代软件有限公司 | Gim模型轻量化处理方法和装置、设备及存储介质 |
CN111161411A (zh) * | 2020-04-08 | 2020-05-15 | 速度时空信息科技股份有限公司 | 一种基于八叉树的三维建筑物模型lod方法 |
CN114419256A (zh) * | 2022-01-24 | 2022-04-29 | 正元地理信息集团股份有限公司 | 基于多级抽壳算法的城市级bim数据轻量化方法及系统 |
CN115661374A (zh) * | 2022-12-26 | 2023-01-31 | 南京铖联激光科技有限公司 | 一种基于空间划分和模型体素化的快速检索方法 |
Non-Patent Citations (3)
Title |
---|
一种新的基于顶点聚类的网格简化算法;周昆等;自动化学报;全文 * |
三维网格模型简化技术研究;胡海鹤;知网;全文 * |
网格模型简化算法综述;董方敏等;三峡大学学报;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115937438A (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108133044B (zh) | 基于属性分离的空间大数据三维可视化方法及平台 | |
US8570322B2 (en) | Method, system, and computer program product for efficient ray tracing of micropolygon geometry | |
CN110992469B (zh) | 海量三维模型数据的可视化方法及系统 | |
CN102682103B (zh) | 一种面向海量激光雷达点云模型的三维空间索引方法 | |
CN111161411A (zh) | 一种基于八叉树的三维建筑物模型lod方法 | |
WO2001008263A2 (en) | Method and apparatus for generating atomic parts of graphic representation through skeletonization for interactive visualization applications | |
WO2022121525A1 (zh) | 三维场景数据的渲染方法及装置、存储介质、电子装置 | |
CN108919954B (zh) | 一种动态变化场景虚实物体碰撞交互方法 | |
JP2004164596A (ja) | 2分木を巡回する方法およびシステム | |
CN109118588B (zh) | 一种基于块分解的彩色lod模型自动生成方法 | |
CN115661374B (zh) | 一种基于空间划分和模型体素化的快速检索方法 | |
CN112070909A (zh) | 一种基于3D Tiles的工程三维模型LOD输出方法 | |
CN114004842A (zh) | “分形视距”纹理压缩与彩色多边形纹理集成的三维模型可视化方法 | |
CN113468286A (zh) | 一种基于三角面片个数划分的三维金字塔构建方法 | |
CN115861247A (zh) | 一种高分辨率遥感影像轮廓多级正则化方法、系统及应用 | |
Zhang et al. | A geometry and texture coupled flexible generalization of urban building models | |
US9454554B1 (en) | View dependent query of multi-resolution clustered 3D dataset | |
Leymarie et al. | Computation of the shock scaffold for unorganized point clouds in 3D | |
CN111402422B (zh) | 三维表面重建方法、装置和电子设备 | |
CN115937438B (zh) | 城市三维模型轻量化方法、系统、电子设备及存储介质 | |
Hu et al. | Parallel BVH construction using locally density clustering | |
CN108986212B (zh) | 一种基于裂缝消除的三维虚拟地形lod模型的生成方法 | |
CN115131384B (zh) | 基于边缘保持的仿生机器人3d打印方法、装置及介质 | |
CN110738719A (zh) | 一种基于视距分层优化的Web3D模型渲染方法 | |
Mateo et al. | Hierarchical, Dense and Dynamic 3D Reconstruction Based on VDB Data Structure for Robotic Manipulation Tasks |
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 |