【技术实现步骤摘要】
一种基于三角面片个数划分的三维金字塔构建方法
[0001]本专利技术涉及三维模型索引创建
,具体涉及一种基于三角面片个数划分的三维金字塔构建方法。
技术介绍
[0002]三维GIS已经成为当今乃至未来GIS技术的主要标志性内容之一,它突破了空间信息在二维地图平面中单调表现的束缚,为各行各业以及人们的日常生活提供了更有效的辅助决策支持。随着“数字孪生”概念深入人心,在智慧城市、智慧园区、智慧工厂等行业应用中,对城市级大场景三维模型展示的需求越来越强烈。
[0003]海量二维 GIS 数据以及瓦片式地形景观数据的高效组织管理技术已经相对成熟,而高效、一体化地组织与管理复杂的海量的大场景的三维空间模型数据一直是研究的前沿难点问题,也是三维GIS从局部范围示范应用到城市级综合应用面临的主要技术挑战。由于模型数据量大、三维空间对象几何形状各异、空间分布稀疏不均,构建高效的三维空间索引成为难题。一方面,由于城市级大场景三维模型数据量巨大,很难通过化简算法,在不影响客户端展示效果的前提下,将数据量减少至可控范围;另一方面,由于三维空间对象空间分布稀疏不均,采用基于空间范围划分的方式构建的空间索引,在空间分布密集的区域会产生相对大的模型切片,影响网络传输和前端渲染效率。基于三角面片个数划分的三维金字塔构建方法,在构建模型层次树的过程中,依据模型三角面片个数以构件为单位进行划分,使得模型构件在树的各个节点中均匀分布,不会出现基于空间范围划分方式中的局部大切片现象;通过设置单瓦片最大三角面片个数,采用边距和距离加权相结合的 ...
【技术保护点】
【技术特征摘要】
1.一种基于三角面片个数划分的三维金字塔构建方法,其特征在于,具体包括以下步骤:S1:分别设置单节点最大三角面片个数FaceCount参数和单构件最大三角面片个数meshFaceCount参数;S2:读取三维模型的数据,解析三维模型的几何、纹理和属性信息;S3:设置二叉树的最大深度Depth,并将步骤S2中读取的三维模型设置为二叉树的根节点;S4:确定节点分裂的坐标轴方向,对二叉树进行分裂,直至二叉树深度大于等于Depth或者所有叶子节点的三角面片个数都小于FaceCount参数;S5:遍历二叉树,重新计算二叉树每个节点外包围盒BoundingBox;对三维模型中相同纹理的构件进行合并,并构建构件集合;S6:遍历二叉树节点,计算当前节点三角面片化简参数,采用边折叠算法对节点进行三角面化简;S7:根据三角面片化简前后的数据,对化简后的三角面片纹理坐标进行重新计算;S8:输出模型金字塔数据。2.根据权利要求1所述的基于三角面片个数划分的三维金字塔构建方法,其特征在于,所述步骤S1中设置单节点最大三角面片个数FaceCount参数作为二叉树单节点三角面片个数上限值;设置单个构件最大三角面片个数meshFaceCount参数作为单个构件三角面片个数上限值;所述步骤S2中解析三维模型的纹理结构并保存纹理信息到构件的material字段,计算根节点的外包盒子BoundingBox。3.根据权利要求2所述的基于三角面片个数划分的三维金字塔构建方法,其特征在于,所述步骤S4具体为:S41:动态计算二叉树分裂方向,比较模型在在X轴、Y轴、Z轴方向的坐标范围,根据构件中心点坐标,取坐标范围差最大的坐标轴作为节点分裂的坐标轴方向;S42:将三维模型的构件根据构件中心点坐标沿步骤S41确定的坐标轴方向由小到大进行排序,遍历排序后三维模型构件,先将三维模型构件加入当前节点的left子树,当节点左子树构件三角面片个数之和大于当前节点总三角面片个数的一半时停止,将剩余的构件加入当到前节点的right子树;S43:根据步骤S1中设置的参数,以步骤S41中确定的节点分裂的坐标轴方向,对二叉树进行分裂,迭代执行步骤S41~42,直至二叉树深度大于等于Depth或者所有叶子节点的三角面片个数都小于FaceCount参数。4.根据权利要求3所述的所述的基于三角面片个数划分的三维金字塔构建方法,其特征在于,所述步骤S5具体为:遍历二叉树,重新计算二叉树每个节点外包围盒BoundingBox,再根据纹理对构件进行合并,遍历二叉树节点,构建构件集合Map<material,meshinfo>,其中material为纹理材质,meshinfo为构件集合,遍历集合Map<material,meshinfo>,对相同的material对应的构件进行合并,若当前构件三角面片个数大于设定值meshFaceCount参数,则停止当前合并,新建空的构件,进入下一轮合并。5.根据权利要求3所述的所述的基于三角面片个数划分的三维金字塔构建方法,其特征在于,所述步骤S41中动态计算二叉树分裂方向的方法,获取当前二叉树节点在各个方向
上的坐标范围差dim,具体计算方法为dim=max
‑
min,其中max为坐标轴方向对应坐标的最大值,min为坐标轴方向对应坐标的最小值;若X轴方向对应的dim值最大,则当前节点按X轴方向进行分裂;若Y轴方向对应的dim值最大,则当前节点按Y轴方向进行分裂;若Z轴方向对应的dim值最大,则当前节点按照Z轴方向进行分裂。6.根据权利要求5所述的所述的基于三角面片个数划分的三维金字塔构建方法,其特征在于,所述步骤S43二叉树节点的分裂方法具体为:获...
【专利技术属性】
技术研发人员:徐云和,姬炜,李华栋,
申请(专利权)人:速度时空信息科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。