CN109872390B - 一种海量三维模型的组织方法 - Google Patents

一种海量三维模型的组织方法 Download PDF

Info

Publication number
CN109872390B
CN109872390B CN201711259682.8A CN201711259682A CN109872390B CN 109872390 B CN109872390 B CN 109872390B CN 201711259682 A CN201711259682 A CN 201711259682A CN 109872390 B CN109872390 B CN 109872390B
Authority
CN
China
Prior art keywords
vertex
topological
triangle
triangles
space range
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
Application number
CN201711259682.8A
Other languages
English (en)
Other versions
CN109872390A (zh
Inventor
高健
牛霆葳
沈迎志
蔡红
周培龙
沈美岑
张真真
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Stargis Tianjin Technology Development Co ltd
Original Assignee
Stargis Tianjin Technology Development Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Stargis Tianjin Technology Development Co ltd filed Critical Stargis Tianjin Technology Development Co ltd
Priority to CN201711259682.8A priority Critical patent/CN109872390B/zh
Publication of CN109872390A publication Critical patent/CN109872390A/zh
Application granted granted Critical
Publication of CN109872390B publication Critical patent/CN109872390B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种海量三维模型的组织方法,涉及在显示屏上展示虚拟现实技术,其特征在于,包括如下步骤:模型数据空间范围分块;模型数据分层处理;模型数据分层简化;节点模型数据重组输出,遍历节点下简化拓扑三角形集合中的拓扑三角形,输出纹理图像,为模型数据建立拓扑结构;评价所有拓扑顶点的删除误差;执行拓扑顶点删除操作并处理纹理偏移;获取所有节点的拓扑三角形集合;根据引用的纹理图像对三角形数据进行分组和输出;根据节点的上下层关系输出并设置关联关系。本发明的优越性为:对城市三维模型数据进行优化组织,提高了城市三维模型数据实时可视化的效率。

Description

一种海量三维模型的组织方法
技术领域
本发明涉及在显示屏上展示虚拟现实技术,特别涉及一种通过海量城市三维模型数据的空间索引结构的构建,以及城市三维模型数据的自动多细节层次简化,对网络环境下的城市三维模型数据进行优化组织,提高了网络环境下城市三维模型数据的动态调度效率,提高了城市三维模型数据实时可视化的效率的海量三维模型的组织方法。
背景技术
地理信息技术(Geographic Information System或Geo-Information system,GIS)有时又称为“地学信息技术”或“资源与环境信息技术”。它是一种特定的十分重要的空间信息技术。它是在计算机硬、软件技术支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术方法。而这种技术可以应用在房地产领域中的建筑漫游,如房地产漫游,小区浏览,楼盘漫游,三维虚拟样板房等房地产虚拟现实三维展示;在规划领域中可以应用在市政规划,城市规划,城市形象展示,数字化城市,城市数字化工程,园区规划,场馆建设等;在园林领域可以用于园林场景的景区宣传,旅游景点开发,地形地貌表现,国家公园,森林公园,自然文化遗产保护,历史文化遗产记录,园区景观规划,场馆绿化,小区绿化,楼盘景观展示等;在工业设计领域可以为工业产品,电子产品进行展示;在游戏动画中可以实现动画展示、游戏动画电影动画等;在虚拟现实演播室,虚拟现实舞台,虚拟商业空间,虚拟现实环境表现等诸多项目的应用中起到展示与宣传,辅助销售,辅助办公等作用。
从以上的实际应用案例可以看到,数据可视化等各行业的应用虽然千差万别,但从解决方案上来说,其底层的核心技术是相同的,最终都要将数据和信息以图形化,交互式地呈现给用户,因此都用到海量数据的组织、管理与快速发布。
随着遥感卫星和数字摄影测量技术的日益成熟,卫星遥感信息逐渐成为GIS中的一种重要数据来源,而遥感影像数据作为国家空间数据框架中的重要基础数据,对“国家空间数据基础设施”建设所起的作用也日益增强。在影像数据应用需求急速增长的前提下,对日益庞大的数据进行有效的管理和利用成为了数字摄影测量和遥感图像处理领域迫切需要解决的问题。特别是数据组织化管理、发布和管理分布的海量影像数据从而为国土规划、测绘遥感、交通、水利电力、农林环保等各种应用提供影像信息服务更具有现实意义。
城市是个复杂的巨大系统,三维数字城市通过建立能够全方位地、直观地给人们提供有关城市的各种具有真实感的场景信息,构建出一个立体化、逼真化的三维虚拟城市环境,为城市管理者面对复杂的城市,提供更有力的决策手段。随着空间信息获取技术和三维建模技术的快速发展,表达地上、地表、地下等数据内容的城市三维模型数据的获取精度与建模速度不断提高,数据建模范围不断扩大,精细度与复杂性不断增加,导致其数据量急剧膨胀,呈现了大规模的特性。同时,用户对三维场景可视化实时性、真实感的需求不断增强,与有限的计算机处理能力和网络带宽之间的矛盾日益突出,大规模城市三维模型数据实时可视化的性能瓶颈日益凸显。
在过去的十几年中,计算与图形处理硬件取得了极大的发展,然而这一巨大的进步并没有解决城市精细三维模型和场景绘制的性能问题。在大规模用户并发控制和网络数据传输方面,还有待于进一步提高空间数据调度与传输的效率,尤其是在大规模三维精细模型可视化与多类型终端自适应可视化方面,还需要发展新的方法。目前海量地形数据和正射影像纹理数据可视化的效率已经可以满足用户的需求,但是显示大规模城市三维精细模型时的效率还很低。
现有的大规模城市三维模型数据的可视化效率很低,难以满足用户需求。一方面是因为城市三维模型数据的数据量极大,且数据结构复杂,不像地形数据和影像数据可以通过金字塔分层分块的方式就可以高效调度与可视化;另一方面是因为城市三维模型数据的可视化涉及到大量的数据传输,数据组织方式的不足导致网络传输效率的低下,从而导致网络传输的速度跟不上三维实时可视化的需求,难以达到满意的三维实时可视化效果。
三维GIS是目前GIS的一个重要发展方向,它在日益增长的三维空间信息需求的牵引和蓬勃发展的现代新兴技术的驱动下得到了稳步的发展。城市三维的建设与应用,已成为地理信息技术发展的必然趋势,也是“数字城市”建设的重要组成部分。三维模型数据的存储组织是最为基础和关键的技术之一,它的优劣直接影响着三维技术应用的发展前景。
随着计算机性能和应用需求的不断提高,传统的二维GIS已经不能满足多分辨率、多尺度和多时空的直观三维表达的需求,迫切需要寻求精确建模和虚拟现实等技术实现现实世界的三维可视化表达,使得高精度、多分辨率、多时空、多细节层次模型的三维场景建立产生了海量、结构复杂和多尺度的三维模型数据。将三维模型数据按照一定的规则进行必要的格网分割处理,处理后的数据称为瓦片(Tile),其瓦片数量级十分庞大,通常可达到T甚至P数量级。在分辨率不断提高的前提下,三维模型数据量的增长速度远远大于计算机内存的增长速度,面对如此大庞大的数据,要进行快速查询调用数据将是非常困难的,这对计算机硬件和应用软件都提出了非常高的要求,三维GIS技术的瓶颈之一也就是如何解决海量三维模型数据组织问题,因此对三维模型进行瓦片分割及其高效存储组织也是目前三维研究的一个重要内容。
解决三维模型数据的组织存储难题,对于实现三维模型的快速建立,提升大范围三维场景的漫游速度、查询相应时间及多用户并发请求,提高三维场景的流畅、逼真显示和人机交互体验有着重要意义,它决定着三维GIS系统的发展方向。基于现有的三维模型组织存储方法,考虑到不同应用环境、不同组织方法、不同算法对三维模型数据的组织存储影响效率不同,以及磁盘和内存中定义的结构不一样,具体实现细节也会不一样,本文从尽可能的减少调度次数和内存资源占用角度出发,提出了一种种海量三维模型的组织方法,对于解决三维模型数据的存储组织难题具有现实意义。
通过海量城市三维模型数据的空间索引结构的构建,以及城市三维模型数据的自动多细节层次简化,对网络环境下的城市三维模型数据进行优化组织,提高了网络环境下城市三维模型数据的动态调度效率,提高了城市三维模型数据实时可视化的效率。通过信息化手段的规范管理,为信息服务系统建设做好铺垫,在持续推进信息化基础建设中提升保障服务能力,为全面推进信息化建设提供平台支撑和信息资源的实时性、完整性做好铺垫。改变人们的生活,推动着工业生产、城市建设以及国防工业的发展,达到真正的电子信息与地理信息技术相互融合,从而实现智慧城市概念的推广与应用。
发明内容
本发明实施例提供一种海量三维模型的组织方法,本发明方法以三维数据范围z轴方向的最大高度差作为分层过程中根节点的正方体空间范围边长,同时限定了节点所包含的最大三角面个数,为场景显示时的精度和速度的平衡提供了很大的遍历,保证了每个节点数据量的一致性。将模型数据三角面引用的纹理图像通过纹理坐标对相应区域颜色值提取并以矩阵的形式保存到拓扑三角形结构中,解决了模型简化过程中引用不同纹理的三角面执行删除操作时无法使用纹理坐标来表示引用的图像区域的问题。将精密的单体三维模型数据进行空间范围上的分块和分层处理,并根据所处层级对三维模型数据进行不同程度的细节简化,可以在保证模型数据显示精度的前提下,提高渲染运算效率和浏览流畅性;通过海量城市三维模型数据的空间索引结构的构建,以及城市三维模型数据的自动多细节层次简化,对网络环境下的城市三维模型数据进行优化组织,提高了网络环境下城市三维模型数据的动态调度效率,提高了城市三维模型数据实时可视化的效率。通过信息化手段的规范管理,为信息服务系统建设做好铺垫,在持续推进信息化基础建设中提升保障服务能力,为全面推进信息化建设提供平台支撑和信息资源的实时性、完整性做好铺垫。改变人们的生活,推动着工业生产、城市建设以及国防工业的发展,达到真正的电子信息与地理信息技术相互融合,从而实现智慧城市概念的推广与应用。
本发明实施例提供一种海量三维模型的组织方法,其中,该方法包括如下步骤:
模型数据空间范围分块:计算模型数据整体空间范围在横轴、纵轴、竖轴方向上的长度;调整整体空间范围在横轴和纵轴方向的长度范围;在横、纵轴平面上对整体空间范围进行分块处理;
模型数据分层处理:获取模型数据分层的根节点集合,计算各根节点空间范围内的模型数据;根据节点空间范围内的三角面数量,对节点进行迭代分层处理;
模型数据分层简化:为模型数据建立拓扑结构;评价所有拓扑顶点的删除误差;执行拓扑顶点删除操作并处理纹理偏移;获取所有节点的拓扑三角形集合;
节点模型数据重组输出:遍历节点下简化拓扑三角形集合中的拓扑三角形,输出纹理图像;根据引用的纹理图像对三角形数据进行分组和输出;根据节点的上下层关系输出并设置关联关系。
一种海量三维模型的组织方法,其中,所述模型数据空间范围分块的具体步骤为:
计算模型数据整体空间范围在横、纵、竖轴方向上的长度:将模型数据中的模型进行遍历,获取模型的顶点坐标数据计算整体空间范围;获取整体空间范围在横、纵、竖轴方向上的最大、最小值,分别计算其在横、纵、竖轴方向上的长度;
调整整体空间范围在横轴和纵轴方向的长度:将整体空间范围在横轴和纵轴方向上的长度调整为整体空间范围竖轴方向的长度的2的幂次方倍数;
将整体空间范围在横、纵轴平面上进行分块处理:将整体空间范围在横、纵轴平面上进行四等分,分割获得四块体积相同的空间范围,若分割出的空间范围在横轴方向上的长度大于整体空间范围在竖轴方向上的长度,则对所有分割出的空间范围继续进行四等份细分,迭代执行直至分割出的空间范围在横轴方向上的长度小于等于整体空间范围在竖轴方向上的长度。
一种海量三维模型的组织方法,其中,所述调整整体空间范围在横轴和纵轴方向的长度范围的具体步骤为:
计算调整长度:计算整体空间范围在横轴和纵轴方向上长度的较大值,将较大值增加到整体空间范围在竖轴方向上长度的2的幂次方倍数,其计算公式为:
Figure BDA0001493231430000041
其中:INT()为取整函数;ZL为整体空间范围在z轴方向的长度;L为整体空间范围在横轴、纵轴方向上的长度的较大值;
通过公式计算获得整体空间范围在横轴和纵轴方向上长度的较大值要增加到的数值La;
调整空间范围在横轴和纵轴方向上的长度:将整体空间范围在横轴和纵轴方向上的长度统一调整为整体空间范围在横轴和纵轴方向上长度的较大值增加到整体空间范围在z轴方向上长度的2的幂次方倍数获得的值,其计算公式为:
Figure BDA0001493231430000051
其中:Xmin为整体空间范围在横轴方向的最小值;Xmax为整体空间范围在横轴方向的最大值;Ymin为整体空间范围在纵轴方向的最小值;Ymax为整体空间范围在纵轴方向的最大值;La为整体空间范围在横轴和纵轴方向上长度的较大值增加到整体空间范围在z轴方向上长度的2的幂次方倍数获得的值;XL为整体空间范围在横轴方向上的长度;YL为整体空间范围在纵轴方向上的长度;通过公式计算获得横轴、纵轴上调整后的长度范围:Xmin’为横轴方向上调整后的最小值;Xmax’为横轴方向上调整后的最大值;Ymin’为纵轴方向上调整后的最小值;Ymax’为纵轴方向上调整后的最大值。
一种海量三维模型的组织方法,其中,所述模型数据分层处理的具体步骤为:
获取模型数据分层的根节点集合:获取模型数据整体范围分块处理中最后一次分块获得的所有空间范围,创建与其数量相同的对应根节点,并将每个空间范围分别设置给对应的根节点,获得分层处理的根节点集合;
计算根节点空间范围内的模型顶点数据:判断模型与根节点空间范围的位置关系,将位于根节点空间范围内的模型数据部分记录到根节点下的模型集合中;
获取所有根节点三角面数量:遍历所有模型数据,分别与根节点集合中的每一个根节点进行上述计算根节点空间范围内的模型顶点数据步骤中进行处理,获得每个根节点下的模型数据;分别统计每个根节点下所有模型数据的三角面数量;
根据根节点三角面数量执行迭代分层处理:判断根节点下三角面数量是否大于设定值;若三角面数量大于设定值,对该根节点进行迭代分层处理。
一种海量三维模型的组织方法,其中,所述计算根节点空间范围内的模型顶点数据的具体步骤为:
判断模型与根节点空间范围的位置关系:计算模型的空间范围与根节点的空间范围的交集情况;交集为空集,判定该模型不在根节点空间范围内;交集为模型空间范围全集,判定模型被根节点空间范围完全包围,将模型数据保存到根节点模型集合;交集不为模型空间范围全集,判定模型有部分数据被根节点空间范围包围,进行模型切割操作;
模型切割操作:以根节点空间范围为界限对模型进行切割,保留根节点空间范围内的数据构成新的模型,并将该模型保存到根节点模型集合。
一种海量三维模型的组织方法,其中,所述根据根节点三角面数量执行迭代分层处理的具体步骤为:
分割节点空间范围创建子节点:分别以节点空间范围在横、纵、竖轴三个方向上的中点所在的与另两个轴所在平面平行的平面对节点空间范围进行切割,获得八个体积相同的次级空间范围,并以这八个次级空间范围建立该节点下一层的八个子节点,子节点的空间范围设定为对应的次级空间范围;
获取子节点模型数据:遍历节点下的模型数据,分别计算位于八个子节点空间范围内的模型数据,并将模型数据保存到对应子节点下的模型集合中;
根据子节点三角面数量判断是否执行迭代分层操作:模型数据遍历完成后,分别统计八个子节点下模型集合中所有模型数据的三角面数量并判断三角面数量是否大于设定值,对大于设定值的子节点继续分割节点空间范围创建子节点,获取子节点模型数据,根据子节点三角面数量判断是否执行迭代分层操作。
一种海量三维模型的组织方法,其中,所述模型数据分层简化的具体步骤为:
模型数据建立拓扑结构:获取模型的三角面数据,建立拓扑顶点集合和拓扑三角形集合;获取拓扑三角面的纹理颜色值矩阵;转移拓扑顶点拓扑关系;删除重复拓扑顶点,重置拓扑关系;
评价所有拓扑顶点的删除误差影响:判断拓扑顶点的拓扑关系类型;判断拓扑顶点的几何结构类型;根据顶点类型计算拓扑顶点的删除误差影响;
执行拓扑顶点删除操作并处理纹理偏移:重复从误差集合中选择误差最小的拓扑顶点作为目标顶点执行删除操作直至删拓扑顶点的删除比率达到设定值为止;
获取各节点的拓扑三角形集合:遍历所有节点,将每个节点中的模型集合中的模型依次建立拓扑结构,评价所有拓扑顶点的删除误差,执行拓扑顶点删除操作并处理纹理偏移,将模型简化获得的拓扑三角形统一保存到简化拓扑三角形集合中,分别获得每个节点的简化拓扑三角形集合。
一种海量三维模型的组织方法,其中,所述模型数据建立拓扑结构的具体步骤为:
获取模型三角面数据创建拓扑顶点集合和拓扑三角形集合:遍历三角面数据,为每个三角面创建拓扑三角形,将三角面的法向量、纹理坐标、纹理贴图等信息存入到拓扑三角形中,将拓扑三角形存入拓扑三角形集合中并获得其在集合中的位置索引;为三角面的三个顶点分别创建拓扑顶点,将拓扑三角面位置索引存入到拓扑顶点中,将三个拓扑顶点存入到拓扑顶点集合中,并获得它们在集合总的位置索引,将三个位置索引存入到拓扑三角面中;
获取拓扑三角面纹理颜色值矩阵:遍历拓扑三角形集合,根据拓扑三角形的纹理坐标获取纹理图像上的对应区域的像素点,以获取到的像素点区域的最小包围框尺寸创建颜色值矩阵,将像素点的颜色值逐一填充到矩阵对应位置;
转移拓扑顶点拓扑关系:遍历拓扑顶点集合,获取目标拓扑顶点的坐标,在集合中查找与其坐标相同的重合拓扑顶点;将重合拓扑顶点中的拓扑三角形位置索引复制到目标拓扑顶点中,并根据索引在拓扑三角形集合中找到对应拓扑三角形,将拓扑三角形中重合拓扑顶点的位置索引更换为目标拓扑顶点的位置索引,最后将重合拓扑顶点中的拓扑三角形位置索引全部删除;
删除拓扑顶点并重置拓扑关系:遍历拓扑顶点集合,删除掉其中不包含有拓扑三角形位置索引的拓扑顶点,更新拓扑顶点集合;遍历拓扑顶点集合,根据拓扑顶点中包含的拓扑三角形位置索引找到对应拓扑三角形,将其中包含的拓扑顶点位置索引更新。
一种海量三维模型的组织方法,其中,所述评价所有拓扑顶点的删除误差影响的具体步骤为:
判断目标拓扑顶点的拓扑关系类型:根据目标拓扑顶点的关联三角形和关联顶点的数量,判定其拓扑关系的类型;
根据拓扑关系类型和几何结构判断拓扑顶点的几何结构类型:计算目标顶点的几何结构参数,并结合目标顶点的拓扑关系类型判断目标顶点的几何结构类型;
根据顶点类型计算拓扑顶点的删除误差:根据拓扑顶点的拓扑关系类型和几何结构类型选择相应删除误差的计算方法计算其误差;
获得误差集合:遍历拓扑顶点集合中的所有顶点,判断顶点的拓扑关系类型和几何结构类型,计算删除误差,获得误差集合并将误差集合按照误差大小升序排列。
一种海量三维模型的组织方法,其中,所述判断目标拓扑顶点的拓扑关系类型的具体步骤为:
拓扑关系类型判定依据:判定依据为查找所有以目标拓扑顶点为一端顶点的边的关联三角形数量,即共用该边的三角形数量,以及是否查找了目标拓扑顶点所有的关联三角形;在查找过程中,当出现关联三角形数量大于2的情况时,查找过程终止;
拓扑关系类型及判定条件:简单顶点判定条件为查找过程全部完成后,各边的关联三角形数量都为2,且查找了目标顶点的所有关联三角形;非流型顶点判定条件为查找过程全部完成后,各边的关联三角形数量都为2,但没有查找顶点的所有关联三角形,或各边关联三角形的数量出现大于2的情况,或查找的三角形数量大于顶点的关联三角形数量;边界顶点判定条件为查找过程完成中,各边的关联三角形数量出现为1的情况,且查找了顶点的所有关联三角形;上述条件中,没有完成顶点所有关联三角形的遍历,从上一循环中找到的边界边开始进行反方向的遍历,遍历完成满足上述条件,为边界顶点,否为非流型结构顶点。
一种海量三维模型的组织方法,其中,所述根据拓扑关系类型和几何结构判断拓扑顶点的几何结构类型的具体步骤为:
计算目标顶点的几何结构参数:计算目标顶点所有关联三角形的面积和、各三角形的单位法向量、特征边的数量、平均平面、平均平面的单位法向量;
特征边的判定:计算边的两个关联三角形的二面角,判定二面角的角度小于设定值为特征边;或边界顶点的两条边界边判定为特征边;
边界边的判定:查找边的关联三角形,三角形数量为1时判定为边界边;
根据目标顶点的关联三角形面积和中心点计算平均平面中心点;计算公式为:
Figure BDA0001493231430000071
其中:c为目标顶点的关联三角形数量;mi(i=1,2…,c)为每个三角形的中心,Ai(i=1,2,…,c)为每个三角形的面积,∑为求和函数;
根据公式获得平均平面的中心m;
根据目标顶点的关联三角形面积和单位法向量计算平均平面单位法向量;计算公式为:
Figure BDA0001493231430000072
其中:c为目标顶点的关联三角形数量;ni(i=1,2,…,c)为三角形的单位法
向量;Ai(i=1,2,…,c)为三角形的面积;∑为求和函数;
拓扑顶点几何结构类型及判定条件:退化顶点的判定条件为目标顶点没有单位法向量且关联三角形的面积之和为0,或平均平面的单位法向量为0判定为退化顶点;边缘结束顶点的判定条件为简单顶点且特征边数量为1;内部边缘顶点的判定条件为简单顶点且特征边数量为2;拐角顶点的判断条件为简单顶点且特征边数量大于2,边界边顶点且特征边数量不为2;裂缝尖端顶点判断条件为边界顶点,两条边界边为特征边,且两边界边重合。
一种海量三维模型的组织方法,其中,所述根据顶点类型计算拓扑顶点的删除误差的具体步骤为:
简单顶点、边缘结束顶点、裂缝尖端顶点的删除误差计算:计算目标顶点到平均平面距离的平方作为该类顶点的误差,计算公式为:
d=(An*(xv-X)+Bn*(yv-Y)+Cn*(zv-Z))2    (5)
其中,xv、yv、zv为目标顶点在x、y、z三个轴上的值,X、Y、Z为平均平面的中心点坐标在x、y、z三个轴上的值,An、Bn、Cn为平均平面的单位法向量在x、y、z三个轴上的值;根据公式计算得到目标顶点到平均平面距离的平方d;
内部顶点和边界顶点的删除误差计算:对于目标顶点的关联三角形的数量为1的情况,计算其关联三角形的面积作为误差;关联三角形的数量不为1时,计算目标顶点到特征边的距离以及特征边的长度,选择较小的一个作为误差。
一种海量三维模型的组织方法,其中,所述执行拓扑顶点删除操作并处理纹理偏移的具体步骤为:
选择目标顶点转移拓扑关系的替换顶点:根据目标顶点的拓扑关系类型和几何结构类型,选择其相邻顶点中最适合作为目标顶点拓扑关系转移的替换顶点;顶点类型为内部边缘顶点时,以其两个特征边长度作为误差度量,选择误差度量最小的特征边另一端顶点作为替换顶点;顶点类型为简单顶点或边缘结束顶点时:遍历所有目标顶点的关联顶点,以关联顶点到目标顶点的距离作为误差度量,选择误差最小的关联顶点作为替换顶点;顶点类型为边界顶点时:以两个边界边的边长作为误差度量,选择边长较短的一个边的另一端顶点作为替换顶点;顶点类型为裂缝尖端顶点时:边界边的另一端顶点作为替换顶点;顶点类型为退化顶点时:第一个关联点作为替换顶点;
执行删除操作:找到目标顶点和替换顶点所在边的两个相邻拓扑三角形,从拓扑三角形集合中找到并删除这两个拓扑三角形,同时从引用这两个拓扑三角形索引位置的拓扑顶点中删除这两个位置索引;从拓扑顶点集合中找到并删除目标顶点,将目标顶点的拓扑三角形位置索引转移到替换顶点上;
处理纹理偏移:当目标顶点执行删除操作后,将目标顶点剩余的关联三角形的纹理颜色值矩阵进行相应处理。
一种海量三维模型的组织方法,其中,所述处理纹理偏移的具体步骤为:
获取颜色值合并矩阵:将执行删除操作前的关联三角形的几何位置投影到关联三角形的平均平面上,根据平面上投影的几何位置将关联三角形中保存的纹理颜色值矩阵进行合并,得到颜色值合并矩阵;
更新颜色值矩阵:将执行删除操作后的关联三角形的几何位置同样投影到删除前的关联三角形平均平面上,将颜色值合并矩阵映射到投影的几何位置上;根据投影中各关联三角形的几何位置,从颜色值合并矩阵的相应位置上获取相应区域的颜色值,将颜色值更新到关联三角形的颜色值矩阵上。
一种海量三维模型的组织方法,其中,所述节点模型数据重组输出的具体步骤为:
遍历节点下的简化拓扑三角形集合中的元素,输出纹理图像:将各拓扑三角形中保存的颜色值矩阵按照长度和宽度进行排列组合,然后写入到1024*1024的空白图像中作为纹理图像,并按照颜色值矩阵在图像中的位置为对应顶点计算纹理坐标,并将图像名称和纹理坐标保存到拓扑三角形中;当图像没有足够空间后,可创建新的空白图像进行保存;
根据拓扑三角形中保存的图像名称进行分组并输出:将引用相同图像的拓扑三角形分为一组;将节点下划分的各组拓扑三角形数据和对应纹理的图像保存到同一个三维数据文件中;
根据节点的上下层节点关系输出并进行关联关系设置:从空间范围最小的一层节点开始,逐一遍历节点下的简化拓扑三角形集合中的元素输出纹理图像,根据拓扑三角形中保存的图像名称分组输出;当节点存在有子节点时,将节点包含的数据按照子节点的空间范围再次分组,并为每组数据设置相应的子节点作为关联关系。
由此可见:
本发明方法以三维数据范围z轴方向的最大高度差作为分层过程中根节点的正方体空间范围边长,同时限定了节点所包含的最大三角面个数,为场景显示时的精度和速度的平衡提供了很大的遍历,保证了每个节点数据量的一致性。将模型数据三角面引用的纹理图像通过纹理坐标对相应区域颜色值提取并以矩阵的形式保存到拓扑三角形结构中,解决了模型简化过程中引用不同纹理的三角面执行删除操作时无法使用纹理坐标来表示引用的图像区域的问题。将精密的单体三维模型数据进行空间范围上的分块和分层处理,并根据所处层级对三维模型数据进行不同程度的细节简化,可以在保证模型数据显示精度的前提下,提高渲染运算效率和浏览流畅性;通过海量城市三维模型数据的空间索引结构的构建,以及城市三维模型数据的自动多细节层次简化,对网络环境下的城市三维模型数据进行优化组织,提高了网络环境下城市三维模型数据的动态调度效率,提高了城市三维模型数据实时可视化的效率。通过信息化手段的规范管理,为信息服务系统建设做好铺垫,在持续推进信息化基础建设中提升保障服务能力,为全面推进信息化建设提供平台支撑和信息资源的实时性、完整性做好铺垫。改变人们的生活,推动着工业生产、城市建设以及国防工业的发展,达到真正的电子信息与地理信息技术相互融合,从而实现智慧城市概念的推广与应用。
附图说明
图1为本发明的实施例提供的海量三维模型的组织方法的整体流程示意图;
图2为本发明的实施例提供的模型数据空间范围分块步骤流程示意图;
图3为本发明的实施例提供的调整整体空间范围在横轴和纵轴方向的长度范围步骤流程示意图;
图4为本发明的实施例提供的模型数据分层处理步骤流程示意图;
图5为本发明的实施例提供的计算根节点空间范围内的模型顶点数据步骤流程示意图;
图6为本发明的实施例提供的根据根节点三角面数量执行迭代分层处理步骤流程示意图;
图7为本发明的实施例提供的模型数据分层简化步骤流程示意图;
图8为本发明的实施例提供的模型数据建立拓扑结构步骤流程示意图;
图9为本发明的实施例提供的评价所有拓扑顶点的删除误差影响步骤流程示意图;
图10为本发明的实施例提供的判断目标拓扑顶点的拓扑关系类型步骤流程示意图;
图11为本发明的实施例提供的根据拓扑关系类型和几何结构判断拓扑顶点的几何结构类型步骤流程示意图;
图12为本发明的实施例提供的根据顶点类型计算拓扑顶点的删除误差步骤流程示意图;
图13为本发明的实施例提供的执行拓扑顶点删除操作并处理纹理偏移步骤流程示意图;
图14为本发明的实施例提供的处理纹理偏移步骤流程示意图;
图15为本发明的实施例提供的节点模型数据重组输出步骤流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合附图以及具体实施例来详细说明本发明,在此本发明的示意性实施例以及说明用来解释本发明,但并不作为对本发明的限定。
实施例1:
图1为本实施例提供的一种海量三维模型的组织方法的流程示意图,如图1所示,该方法包括如下步骤:
模型数据空间范围分块:计算模型数据整体空间范围在横轴、纵轴、竖轴方向上的长度;调整整体空间范围在横轴和纵轴方向的长度范围;在横、纵轴平面上对整体空间范围进行分块处理;
模型数据分层处理:获取模型数据分层的根节点集合,计算各根节点空间范围内的模型数据;根据节点空间范围内的三角面数量,对节点进行迭代分层处理;
模型数据分层简化:为模型数据建立拓扑结构;评价所有拓扑顶点的删除误差;执行拓扑顶点删除操作并处理纹理偏移;获取所有节点的拓扑三角形集合;
节点模型数据重组输出:遍历节点下简化拓扑三角形集合中的拓扑三角形,输出纹理图像;根据引用的纹理图像对三角形数据进行分组和输出;根据节点的上下层关系输出并设置关联关系。
如图2所示,一种海量三维模型的组织方法,其中所述模型数据空间范围分块的具体步骤为:
计算模型数据整体空间范围在横、纵、竖轴方向上的长度:将模型数据中的模型进行遍历,获取模型的顶点坐标数据计算整体空间范围;获取整体空间范围在横、纵、竖轴方向上的最大、最小值,分别计算其在横、纵、竖轴方向上的长度;
调整整体空间范围在横轴和纵轴方向的长度:将整体空间范围在横轴和纵轴方向上的长度调整为整体空间范围竖轴方向的长度的2的幂次方倍数;
将整体空间范围在横、纵轴平面上进行分块处理:将整体空间范围在横、纵轴平面上进行四等分,分割获得四块体积相同的空间范围,若分割出的空间范围在横轴方向上的长度大于整体空间范围在竖轴方向上的长度,则对所有分割出的空间范围继续进行四等份细分,迭代执行直至分割出的空间范围在横轴方向上的长度小于等于整体空间范围在竖轴方向上的长度。
如图3所示,一种海量三维模型的组织方法,其中所述调整整体空间范围在横轴和纵轴方向的长度范围的具体步骤为:
计算调整长度:计算整体空间范围在横轴和纵轴方向上长度的较大值,将较大值增加到整体空间范围在竖轴方向上长度的2的幂次方倍数,其计算公式为:
Figure BDA0001493231430000111
其中:INT()为取整函数;ZL为整体空间范围在z轴方向的长度;L为整体空间范围在横轴、纵轴方向上的长度的较大值;
通过公式计算获得整体空间范围在横轴和纵轴方向上长度的较大值要增加到的数值La;
调整空间范围在横轴和纵轴方向上的长度:将整体空间范围在横轴和纵轴方向上的长度统一调整为整体空间范围在横轴和纵轴方向上长度的较大值增加到整体空间范围在z轴方向上长度的2的幂次方倍数获得的值,其计算公式为:
Figure BDA0001493231430000112
其中:Xmin为整体空间范围在横轴方向的最小值;Xmax为整体空间范围在横轴方向的最大值;Ymin为整体空间范围在纵轴方向的最小值;Ymax为整体空间范围在纵轴方向的最大值;La为整体空间范围在横轴和纵轴方向上长度的较大值增加到整体空间范围在z轴方向上长度的2的幂次方倍数获得的值;XL为整体空间范围在横轴方向上的长度;YL为整体空间范围在纵轴方向上的长度;通过公式计算获得横轴、纵轴上调整后的长度范围:Xmin’为横轴方向上调整后的最小值;Xmax’为横轴方向上调整后的最大值;Ymin’为纵轴方向上调整后的最小值;Ymax’为纵轴方向上调整后的最大值。
如图4所示,一种海量三维模型的组织方法,其中所述模型数据分层处理的具体步骤为:
获取模型数据分层的根节点集合:获取模型数据整体范围分块处理中最后一次分块获得的所有空间范围,创建与其数量相同的对应根节点,并将每个空间范围分别设置给对应的根节点,获得分层处理的根节点集合;
计算根节点空间范围内的模型顶点数据:判断模型与根节点空间范围的位置关系,将位于根节点空间范围内的模型数据部分记录到根节点下的模型集合中;
获取所有根节点三角面数量:遍历所有模型数据,分别与根节点集合中的每一个根节点进行上述计算根节点空间范围内的模型顶点数据步骤中进行处理,获得每个根节点下的模型数据;分别统计每个根节点下所有模型数据的三角面数量;
根据根节点三角面数量执行迭代分层处理:判断根节点下三角面数量是否大于设定值;若三角面数量大于设定值,对该根节点进行迭代分层处理。
如图5所示,一种海量三维模型的组织方法,其中所述计算根节点空间范围内的模型顶点数据的具体步骤为:
判断模型与根节点空间范围的位置关系:计算模型的空间范围与根节点的空间范围的交集情况;交集为空集,判定该模型不在根节点空间范围内;交集为模型空间范围全集,判定模型被根节点空间范围完全包围,将模型数据保存到根节点模型集合;交集不为模型空间范围全集,判定模型有部分数据被根节点空间范围包围,进行模型切割操作;
模型切割操作:以根节点空间范围为界限对模型进行切割,保留根节点空间范围内的数据构成新的模型,并将该模型保存到根节点模型集合。
如图6所示,一种海量三维模型的组织方法,其中所述根据根节点三角面数量执行迭代分层处理的具体步骤为:
分割节点空间范围创建子节点:分别以节点空间范围在横、纵、竖轴三个方向上的中点所在的与另两个轴所在平面平行的平面对节点空间范围进行切割,获得八个体积相同的次级空间范围,并以这八个次级空间范围建立该节点下一层的八个子节点,子节点的空间范围设定为对应的次级空间范围;
获取子节点模型数据:遍历节点下的模型数据,分别计算位于八个子节点空间范围内的模型数据,并将模型数据保存到对应子节点下的模型集合中;
根据子节点三角面数量判断是否执行迭代分层操作:模型数据遍历完成后,分别统计八个子节点下模型集合中所有模型数据的三角面数量并判断三角面数量是否大于设定值,对大于设定值的子节点继续分割节点空间范围创建子节点,获取子节点模型数据,根据子节点三角面数量判断是否执行迭代分层操作。
如图7所示,一种海量三维模型的组织方法,其中所述模型数据分层简化的具体步骤为:
模型数据建立拓扑结构:获取模型的三角面数据,建立拓扑顶点集合和拓扑三角形集合;获取拓扑三角面的纹理颜色值矩阵;转移拓扑顶点拓扑关系;删除重复拓扑顶点,重置拓扑关系;
评价所有拓扑顶点的删除误差影响:判断拓扑顶点的拓扑关系类型;判断拓扑顶点的几何结构类型;根据顶点类型计算拓扑顶点的删除误差影响;
执行拓扑顶点删除操作并处理纹理偏移:重复从误差集合中选择误差最小的拓扑顶点作为目标顶点执行删除操作直至删拓扑顶点的删除比率达到设定值为止;
获取各节点的拓扑三角形集合:遍历所有节点,将每个节点中的模型集合中的模型依次建立拓扑结构,评价所有拓扑顶点的删除误差,执行拓扑顶点删除操作并处理纹理偏移,将模型简化获得的拓扑三角形统一保存到简化拓扑三角形集合中,分别获得每个节点的简化拓扑三角形集合。
如图8所示,一种海量三维模型的组织方法,其中所述模型数据建立拓扑结构的具体步骤为:
获取模型三角面数据创建拓扑顶点集合和拓扑三角形集合:遍历三角面数据,为每个三角面创建拓扑三角形,将三角面的法向量、纹理坐标、纹理贴图等信息存入到拓扑三角形中,将拓扑三角形存入拓扑三角形集合中并获得其在集合中的位置索引;为三角面的三个顶点分别创建拓扑顶点,将拓扑三角面位置索引存入到拓扑顶点中,将三个拓扑顶点存入到拓扑顶点集合中,并获得它们在集合中的位置索引,将三个位置索引存入到拓扑三角面中;
获取拓扑三角面纹理颜色值矩阵:遍历拓扑三角形集合,根据拓扑三角形的纹理坐标获取纹理图像上的对应区域的像素点,以获取到的像素点区域的最小包围框尺寸创建颜色值矩阵,将像素点的颜色值逐一填充到矩阵对应位置;
转移拓扑顶点拓扑关系:遍历拓扑顶点集合,获取目标拓扑顶点的坐标,在集合中查找与其坐标相同的重合拓扑顶点;将重合拓扑顶点中的拓扑三角形位置索引复制到目标拓扑顶点中,并根据索引在拓扑三角形集合中找到对应拓扑三角形,将拓扑三角形中重合拓扑顶点的位置索引更换为目标拓扑顶点的位置索引,最后将重合拓扑顶点中的拓扑三角形位置索引全部删除;
删除拓扑顶点并重置拓扑关系:遍历拓扑顶点集合,删除掉其中不包含有拓扑三角形位置索引的拓扑顶点,更新拓扑顶点集合;遍历拓扑顶点集合,根据拓扑顶点中包含的拓扑三角形位置索引找到对应拓扑三角形,将其中包含的拓扑顶点位置索引更新。
如图9所示,一种海量三维模型的组织方法,其中所述评价所有拓扑顶点的删除误差影响的具体步骤为:
判断目标拓扑顶点的拓扑关系类型:根据目标拓扑顶点的关联三角形和关联顶点的数量,判定其拓扑关系的类型;
根据拓扑关系类型和几何结构判断拓扑顶点的几何结构类型:计算目标顶点的几何结构参数,并结合目标顶点的拓扑关系类型判断目标顶点的几何结构类型;
根据顶点类型计算拓扑顶点的删除误差:根据拓扑顶点的拓扑关系类型和几何结构类型选择相应删除误差的计算方法计算其误差;
获得误差集合:遍历拓扑顶点集合中的所有顶点,判断顶点的拓扑关系类型和几何结构类型,计算删除误差,获得误差集合并将误差集合按照误差大小升序排列。
如图10所示,一种海量三维模型的组织方法,其中所述判断目标拓扑顶点的拓扑关系类型的具体步骤为:
拓扑关系类型判定依据:判定依据为查找所有以目标拓扑顶点为一端顶点的边的关联三角形数量,即共用该边的三角形数量,以及是否查找了目标拓扑顶点所有的关联三角形;在查找过程中,当出现关联三角形数量大于2的情况时,查找过程终止;
拓扑关系类型及判定条件:简单顶点判定条件为查找过程全部完成后,各边的关联三角形数量都为2,且查找了目标顶点的所有关联三角形;非流型顶点判定条件为查找过程全部完成后,各边的关联三角形数量都为2,但没有查找顶点的所有关联三角形,或各边关联三角形的数量出现大于2的情况,或查找的三角形数量大于顶点的关联三角形数量;边界顶点判定条件为查找过程完成中,各边的关联三角形数量出现为1的情况,且查找了顶点的所有关联三角形;上述条件中,没有完成顶点所有关联三角形的遍历,从上一循环中找到的边界边开始进行反方向的遍历,遍历完成满足上述条件,为边界顶点,否为非流型结构顶点。
如图11所示,一种海量三维模型的组织方法,其中所述根据拓扑关系类型和几何结构判断拓扑顶点的几何结构类型的具体步骤为:
计算目标顶点的几何结构参数:计算目标顶点所有关联三角形的面积和、各三角形的单位法向量、特征边的数量、平均平面、平均平面的单位法向量;
特征边的判定:计算边的两个关联三角形的二面角,判定二面角的角度小于设定值为特征边;或边界顶点的两条边界边判定为特征边;
边界边的判定:查找边的关联三角形,三角形数量为1时判定为边界边;
根据目标顶点的关联三角形面积和中心点计算平均平面中心点;计算公式为:
Figure BDA0001493231430000141
其中:c为目标顶点的关联三角形数量;mi(i=1,2…,c)为每个三角形的中心,Ai(i=1,2,…,c)为每个三角形的面积,∑为求和函数;
根据公式获得平均平面的中心m;
根据目标顶点的关联三角形面积和单位法向量计算平均平面单位法向量;计算公式为:
Figure BDA0001493231430000142
其中:c为目标顶点的关联三角形数量;ni(i=1,2,…,c)为三角形的单位法
向量;Ai(i=1,2,…,c)为三角形的面积;∑为求和函数;
拓扑顶点几何结构类型及判定条件:退化顶点的判定条件为目标顶点没有单位法向量且关联三角形的面积之和为0,或平均平面的单位法向量为0判定为退化顶点;边缘结束顶点的判定条件为简单顶点且特征边数量为1;内部边缘顶点的判定条件为简单顶点且特征边数量为2;拐角顶点的判断条件为简单顶点且特征边数量大于2,边界边顶点且特征边数量不为2;裂缝尖端顶点判断条件为边界顶点,两条边界边为特征边,且两边界边重合。
如图12所示,一种海量三维模型的组织方法,其中所述根据顶点类型计算拓扑顶点的删除误差的具体步骤为:
简单顶点、边缘结束顶点、裂缝尖端顶点的删除误差计算:计算目标顶点到平均平面距离的平方作为该类顶点的误差,计算公式为:
d=(An*(xv-X)+Bn*(yv-Y)+Cn*(zv-Z))2    (5)
其中,xv、yv、zv为目标顶点在x、y、z三个轴上的值,X、Y、Z为平均平面的中心点坐标在x、y、z三个轴上的值,An、Bn、Cn为平均平面的单位法向量在x、y、z三个轴上的值;根据公式计算得到目标顶点到平均平面距离的平方d;
内部顶点和边界顶点的删除误差计算:对于目标顶点的关联三角形的数量为1的情况,计算其关联三角形的面积作为误差;关联三角形的数量不为1时,计算目标顶点到特征边的距离以及特征边的长度,选择较小的一个作为误差。
如图13所示,一种海量三维模型的组织方法,其中所述执行拓扑顶点删除操作并处理纹理偏移的具体步骤为:
选择目标顶点转移拓扑关系的替换顶点:根据目标顶点的拓扑关系类型和几何结构类型,选择其相邻顶点中最适合作为目标顶点拓扑关系转移的替换顶点;顶点类型为内部边缘顶点时,以其两个特征边长度作为误差度量,选择误差度量最小的特征边另一端顶点作为替换顶点;顶点类型为简单顶点或边缘结束顶点时:遍历所有目标顶点的关联顶点,以关联顶点到目标顶点的距离作为误差度量,选择误差最小的关联顶点作为替换顶点;顶点类型为边界顶点时:以两个边界边的边长作为误差度量,选择边长较短的一个边的另一端顶点作为替换顶点;顶点类型为裂缝尖端顶点时:边界边的另一端顶点作为替换顶点;顶点类型为退化顶点时:第一个关联点作为替换顶点;
执行删除操作:找到目标顶点和替换顶点所在边的两个相邻拓扑三角形,从拓扑三角形集合中找到并删除这两个拓扑三角形,同时从引用这两个拓扑三角形索引位置的拓扑顶点中删除这两个位置索引;从拓扑顶点集合中找到并删除目标顶点,将目标顶点的拓扑三角形位置索引转移到替换顶点上;
处理纹理偏移:当目标顶点执行删除操作后,将目标顶点剩余的关联三角形的纹理颜色值矩阵进行相应处理。
如图14所示,一种海量三维模型的组织方法,其中所述处理纹理偏移的具体步骤为:
获取颜色值合并矩阵:将执行删除操作前的关联三角形的几何位置投影到关联三角形的平均平面上,根据平面上投影的几何位置将关联三角形中保存的纹理颜色值矩阵进行合并,得到颜色值合并矩阵;
更新颜色值矩阵:将执行删除操作后的关联三角形的几何位置同样投影到删除前的关联三角形平均平面上,将颜色值合并矩阵映射到投影的几何位置上;根据投影中各关联三角形的几何位置,从颜色值合并矩阵的相应位置上获取相应区域的颜色值,将颜色值更新到关联三角形的颜色值矩阵上。
如图15所示,一种海量三维模型的组织方法,其中所述节点模型数据重组输出的具体步骤为:
遍历节点下的简化拓扑三角形集合中的元素,输出纹理图像:将各拓扑三角形中保存的颜色值矩阵按照长度和宽度进行排列组合,然后写入到1024*1024的空白图像中作为纹理图像,并按照颜色值矩阵在图像中的位置为对应顶点计算纹理坐标,并将图像名称和纹理坐标保存到拓扑三角形中;当图像没有足够空间后,可创建新的空白图像进行保存;
根据拓扑三角形中保存的图像名称进行分组并输出:将引用相同图像的拓扑三角形分为一组;将节点下划分的各组拓扑三角形数据和对应纹理的图像保存到同一个三维数据文件中;
根据节点的上下层节点关系输出并进行关联关系设置:从空间范围最小的一层节点开始,逐一遍历节点下的简化拓扑三角形集合中的元素输出纹理图像,根据拓扑三角形中保存的图像名称分组输出;当节点存在有子节点时,将节点包含的数据按照子节点的空间范围再次分组,并为每组数据设置相应的子节点作为关联关系。
下面以一个更具体的一个细节方面的例子来对上述内容加以说明。
本方法对海量三维模型数据进行处理。采用方法可以实现对三维场景中的海量模型数据,包括建筑模型数据、地块模型数据、小品模型数据、树模型数据、灯模型数据等三维模型数据重新组织,进行统一划分简化处理,。
获取某地区三维场景中的建筑模型数据、地块模型数据、小品模型数据、树模型数据、灯模型数据等三维模型数据。按照设定的三维模型数据格式,计算三维模型数据的整体空间范围,计算整体空间范围在横轴、纵轴、竖轴方向上的最大、最小值,分别以最大、最小值的差值作为各轴方向上的长度。将整体空间范围在横轴和纵轴方向的长度以竖轴方向上的长度为基准计算调整长度,将横轴和纵轴方向的长度都调整为计算得到的调整长度,在横、纵轴平面上构成正方形。计算调整长度的公式为:
Figure BDA0001493231430000161
其中:INT()为取整函数;ZL为整体空间范围在z轴方向的长度;L为整体空间范围在横轴、纵轴方向上的长度的较大值;
调整横轴和纵轴方向长度的计算公式为:
Figure BDA0001493231430000162
其中:Xmin为整体空间范围在横轴方向的最小值;Xmax为整体空间范围在横轴方向的最大值;Ymin为整体空间范围在纵轴方向的最小值;Ymax为整体空间范围在纵轴方向的最大值;La为整体空间范围在横轴和纵轴方向上长度的较大值增加到整体空间范围在z轴方向上长度的2的幂次方倍数获得的值;XL为整体空间范围在横轴方向上的长度;YL为整体空间范围在纵轴方向上的长度;通过公式计算获得横轴、纵轴上调整后的长度范围:Xmin’为横轴方向上调整后的最小值;Xmax’为横轴方向上调整后的最大值;Ymin’为纵轴方向上调整后的最小值;Ymax’为纵轴方向上调整后的最大值。
以整体空间范围信息创建块结构,块结构包含空间范围、空间范围在横、纵、竖三个轴方向上的长度,以及四个次级块结构,次级块结构具有与块相同的结构,次级块结构可为空。整体空间范围创建的块结构为一级块结构,其次级块结构为二级块结构,依次类推。将一级块结构的横、纵轴方向上的长度按照公式进行调整,使其在横、纵轴构方向上的长度相等。
将一级块结构的空间范围在横、纵轴平面上进行四等分,分割获得四块体积相同的空间范围,并将分割出的空间范围信息按照规定的次序分配给一级块结构的四个次级块结构,即二级块结构。若次级块结构的空间范围在横轴方向上的长度大于整体空间范围在竖轴方向上的长度,则重复四等分过程,为次级块结构创建下一级的块结构;迭代执行直至创建的次级结构在横轴方向上的长度等于整体空间范围在竖轴方向上的长度,由此得到的最低层级的块结构的空间范围都是以整体空间范围纵轴方向长度为边长的正方体空间范围。
获取上述所有最低层级的块结构,创建与其数量相同的节点结构,同时将块结构的空间范围设置给节点。节点结构包含空间范围、空间范围在横、纵、竖三轴方向上的长度、节点名称、模型集合和八个子节点,子节点的结构与节点相同,子节点可以为空。根据最低层级的所有块结构创建的节点作为根节点,获得分层处理的根节点集合。遍历三维模型数据,计算位于根节点空间范围内的模型数据并存入到根节点模型集合中,对于部分位于根节点空间范围内的模型数据,进行模型切割处理,仅将空间范围内的模型数据存入模型集合中。
分别遍历各根节点下的模型集合,统计模型集合中所有模型的三角面数量之和并判断三角形数量之和是否大于设定值,对大于设定值的根节点进行迭代细分,直至节点中包含的三角面数量小于等于设定值。迭代细分以所有根节点作为第一层节点,以根节点空间范围在横、纵、竖轴三个方向上的中点所在的与另两个轴所在平面平行的平面对空间范围进行切割,获得八个体积相同的次级空间范围,并将这八个次级空间范围按照设定的次序分配给根节点的八个子节点,所有的根节点的子节点作为第二层节点。遍历第二层节点下的模型数据,分别计算位于第二层子节点空间范围内的模型数据,并将模型数据保存到对应子节点下的模型集合中;分别统计第二层节点中模型数据的三角面数量并判断其是否大于设定值,对大于设定值的第二层节点继续分割节点空间范围创建子节点,构建第三层节点。对所有节点进行迭代细分处理,直至创建的节点包含的三角面数量小于设定值时停止细分。
根据层级,分别遍历每一层的所有节点,为每个节点中的模型集合中的模型依次建立拓扑模型结构,拓扑模型结构包含拓扑三角形集合和拓扑顶点集合。拓扑三角形包含三个拓扑顶点索引、法向量、纹理坐标、材质以及颜色值矩阵等,拓扑顶点索引为拓扑顶点在拓扑顶点集合中的位置索引;拓扑顶点包含拓扑三角形索引集合和顶点坐标,拓扑三角形索引为拓扑三角形在拓扑三角形集合中的位置索引。根据设定的三维模型数据结构,读取三角面及其属性数据,属性数据包括法向量、纹理坐标、材质等。为每个三角面创建对应的拓扑三角形,将三角面的法向量、纹理坐标、纹理贴图等信息存入到拓扑三角形中,将拓扑三角形存入拓扑三角形集合中并获得其在集合中的位置索引;为三角面的三个顶点分别创建拓扑顶点,将拓扑三角面位置索引存入到拓扑顶点中,将三个拓扑顶点存入到拓扑顶点集合中,并获得它们在集合中的位置索引,将三个位置索引存入到拓扑三角面中;模型三角面遍历完成后,以拓扑三角形集合和拓扑顶点集合构建拓扑模型。遍历拓扑模型的拓扑三角形集合,将拓扑三角形按照纹理贴图进行分组,按组将对应的纹理贴图读入到内存中,按照拓扑三角形的三个纹理坐标计算引用纹理贴图的最小外接矩形区域,按照矩形区域的尺寸创建颜色值矩阵,从内存中逐个读取矩形区域内像素点的颜色值并填充到颜色值矩阵对应位置。
遍历拓扑模型的拓扑顶点集合,获取目标拓扑顶点的坐标,在集合中查找与其坐标相同的重合拓扑顶点,将所有重合拓扑顶点中的拓扑三角形位置索引复制到目标拓扑顶点中,并根据索引在拓扑三角形集合中找到对应拓扑三角形,将拓扑三角形中重合拓扑顶点的位置索引更换为目标拓扑顶点的位置索引,最后将重合拓扑顶点中的拓扑三角形位置索引全部删除。删除掉拓扑顶点集合中重复顶点,再次遍历拓扑顶点集合,删除掉其中不包含有拓扑三角形位置索引的拓扑顶点并更新拓扑顶点集合,重置拓扑顶点在集合中的位置。再次遍历拓扑顶点集合,根据拓扑顶点中包含的拓扑三角形位置索引找到对应拓扑三角形,将其中包含的拓扑顶点位置索引按照位置重置后的拓扑顶点集合中的位置进行更新。
遍历拓扑模型的拓扑顶点集合,计算拓扑顶点的删除误差。删除误差的计算方法由拓扑顶点的顶点类型确定,顶点类型由拓扑顶点的拓扑关系类型和几何结构类型确定。
拓扑关系类型的判定依据为:查找所有以目标拓扑顶点为一端顶点的边的关联三角形数量,即共用该边的三角形数量,以及是否查找了目标拓扑顶点所有的关联三角形;在查找过程中,当出现关联三角形数量大于2的情况时,查找过程终止。拓扑关系类型及对应判定条件为:简单顶点判定条件为查找过程全部完成后,各边的关联三角形数量都为2,且查找了目标顶点的所有关联三角形;非流型顶点判定条件为查找过程全部完成后,各边的关联三角形数量都为2,但没有查找顶点的所有关联三角形,或各边关联三角形的数量出现大于2的情况,或查找的三角形数量大于顶点的关联三角形数量;边界顶点判定条件为查找过程完成中,各边的关联三角形数量出现为1的情况,且查找了顶点的所有关联三角形;上述条件中,没有完成顶点所有关联三角形的遍历,从上一循环中找到的边界边开始进行反方向的遍历,遍历完成满足上述条件,为边界顶点,否为非流型结构顶点。
几何结构类型由上述得到的拓扑关系类型和几何结构参数确定。几何结构参数包括所有关联三角形的面积和、各三角形的单位法向量、特征边的数量、平均平面、平均平面的单位法向量。
特征边的判定为:计算边的两个关联三角形的二面角,判定二面角的角度小于设定值为特征边;或边界顶点的两条边界边判定为特征边。
边界边的判定:查找边的关联三角形,三角形数量为1时判定为边界边;
平均平面中心点计算公式为:
Figure BDA0001493231430000181
其中:c为目标顶点的关联三角形数量;mi(i=1,2…,c)为每个三角形的中心,Ai(i=1,2,…,c)为每个三角形的面积,∑为求和函数;
平均平面单位法向量计算公式为:
Figure BDA0001493231430000182
其中:c为目标顶点的关联三角形数量;ni(i=1,2,…,c)为三角形的单位法向量;Ai(i=1,2,…,c)为三角形的面积;∑为求和函数;
拓扑顶点几何结构类型及判定条件为:退化顶点的判定条件为目标顶点没有单位法向量且关联三角形的面积之和为0,或平均平面的单位法向量为0判定为退化顶点;边缘结束顶点的判定条件为简单顶点且特征边数量为1;内部边缘顶点的判定条件为简单顶点且特征边数量为2;拐角顶点的判断条件为简单顶点且特征边数量大于2,边界边顶点且特征边数量不为2;裂缝尖端顶点判断条件为边界顶点,两条边界边为特征边,且两边界边重合。
根据顶点的拓扑关系类型和几何结构类型选择对应的误差计算方法计算删除误差,其中简单顶点、边缘结束顶点、裂缝尖端顶点计算目标顶点到平均平面距离的平方作为删除误差,计算公式为:
d=(An*(xv-X)+Bn*(yv-Y)+Cn*(zv-Z))2    (5)
其中,xv、yv、zv为目标顶点在x、y、z三个轴上的值,X、Y、Z为平均平面的中心点坐标在x、y、z三个轴上的值,An、Bn、Cn为平均平面的单位法向量在x、y、z三个轴上的值;根据公式计算得到目标顶点到平均平面距离的平方d;
内部顶点和边界顶点的删除误差计算方法为:对于目标顶点的关联三角形的数量为1的情况,计算其关联三角形的面积作为误差;关联三角形的数量不为1时,计算目标顶点到特征边的距离以及特征边的长度,选择较小的一个作为误差。
创建以计算得到的删除误差作为键和以对应的拓扑顶点索引作为值构成的关联对作为基本元素的升序平衡二叉树结构,将此结构存储删除误差的有序集合;将删除计算得到的删除误差和对应拓扑顶点索引插入到删除误差集合中,插入过程采用递归插入,重复搜索集合找到合适插入点,插入元素后进行平衡旋转处理,保证集合的平衡。
根据误差集合的第一个元素中存储的拓扑顶点索引值从拓扑顶点集合中获取相应拓扑顶点作为目标顶点,根据目标顶点的拓扑关系类型和几何结构类型,选择其相邻顶点中最适合作为目标顶点拓扑关系转移的替换顶点。选择最适合的相邻顶点的方法为:顶点类型为内部边缘顶点时,以其两个特征边长度作为误差度量,选择误差度量最小的特征边另一端顶点作为替换顶点;顶点类型为简单顶点或边缘结束顶点时:遍历所有目标顶点的关联顶点,以关联顶点到目标顶点的距离作为误差度量,选择误差最小的关联顶点作为替换顶点;顶点类型为边界顶点时:以两个边界边的边长作为误差度量,选择边长较短的一个边的另一端顶点作为替换顶点;顶点类型为裂缝尖端顶点时:边界边的另一端顶点作为替换顶点;顶点类型为退化顶点时:第一个关联点作为替换顶点。
选择替换顶点后执行删除操作:找到目标顶点和替换顶点所在边的两个相邻拓扑三角形,从拓扑三角形集合中找到并删除这两个拓扑三角形,同时从引用这两个拓扑三角形索引位置的拓扑顶点中删除这两个位置索引;从拓扑顶点集合中找到并删除目标顶点,将目标顶点的拓扑三角形位置索引转移到替换顶点上;
当目标顶点执行删除操作后,其剩余的关联三角形发生几何形变,三角形引用的纹理像素将发生不同程度的偏移,需要对拓扑三角形的颜色值矩阵进行相应处理。在目标顶点执行删除操作前,获取其所有关联三角形计算平均平面,并将关联三角形按照几何位置投影到平均平面上,同时按照关联三角形的几何位置投影获取对应的颜色值矩阵进行合并,得到颜色值合并矩阵。将执行删除操作后的关联三角形的几何位置同样投影到上述平均平面上,将颜色值合并矩阵映射到投影几何位置上;根据投影中各关联三角形的几何位置,从颜色值合并矩阵的相应位置上获取相应区域的颜色值,将颜色值更新到关联三角形的颜色值矩阵上。
记录各拓扑三角形中保存的颜色值矩阵的长度和宽度,按照面积利用率最优的原则,将颜色值矩阵进行排列组合,然后进行合并并将颜色值写入到1024*1024的空白图像中作为纹理图像,并按照颜色值矩阵在图像中的位置为对应顶点计算纹理坐标,并将图像名称和纹理坐标保存到拓扑三角形中;当图像没有足够空间后,可创建新的空白图像进行保存;
将引用相同纹理图像的拓扑三角形分为一组。以根节点的节点名称按照设定的规则创建文件夹,为根节点以及其所有子节点分别创建二进制三维数据文件,文件名称根据节点名称进行设置,将各节点下划分的各组拓扑三角形数据和对应纹理的图像分别保存到对应三维数据文件中;将节点的所有子节点的三维数据文件名称记录到节点对应的三维数据文件中,进行关联关系的设置。
由此可见:
本发明方法以三维数据范围z轴方向的最大高度差作为分层过程中根节点的正方体空间范围边长,同时限定了节点所包含的最大三角面个数,为场景显示时的精度和速度的平衡提供了很大的遍历,保证了每个节点数据量的一致性。将模型数据三角面引用的纹理图像通过纹理坐标对相应区域颜色值提取并以矩阵的形式保存到拓扑三角形结构中,解决了模型简化过程中引用不同纹理的三角面执行删除操作时无法使用纹理坐标来表示引用的图像区域的问题。将精密的单体三维模型数据进行空间范围上的分块和分层处理,并根据所处层级对三维模型数据进行不同程度的细节简化,可以在保证模型数据显示精度的前提下,提高渲染运算效率和浏览流畅性;通过海量城市三维模型数据的空间索引结构的构建,以及城市三维模型数据的自动多细节层次简化,对网络环境下的城市三维模型数据进行优化组织,提高了网络环境下城市三维模型数据的动态调度效率,提高了城市三维模型数据实时可视化的效率。通过信息化手段的规范管理,为信息服务系统建设做好铺垫,在持续推进信息化基础建设中提升保障服务能力,为全面推进信息化建设提供平台支撑和信息资源的实时性、完整性做好铺垫。改变人们的生活,推动着工业生产、城市建设以及国防工业的发展,达到真正的电子信息与地理信息技术相互融合,从而实现智慧城市概念的推广与应用。
虽然通过实施例描绘了本发明实施例,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。

Claims (13)

1.一种海量三维模型的组织方法,其特征在于:该方法包括如下步骤:
模型数据空间范围分块:计算模型数据整体空间范围在横轴、纵轴、竖轴方向上的长度;调整整体空间范围在横轴和纵轴方向的长度范围;在横、纵轴平面上对整体空间范围进行分块处理;
模型数据分层处理:获取模型数据分层的根节点集合,计算各根节点空间范围内的模型数据;根据节点空间范围内的三角面数量,对节点进行迭代分层处理;所述模型数据分层处理的具体步骤为:获取模型数据分层的根节点集合:获取模型数据整体范围分块处理中最后一次分块获得的所有空间范围,创建与其数量相同的对应根节点,并将每个空间范围分别设置给对应的根节点,获得分层处理的根节点集合;计算根节点空间范围内的模型顶点数据:判断模型与根节点空间范围的位置关系,将位于根节点空间范围内的模型数据部分记录到根节点下的模型集合中;获取所有根节点三角面数量:遍历所有模型数据,分别与根节点集合中的每一个根节点进行上述计算根节点空间范围内的模型顶点数据步骤中进行处理,获得每个根节点下的模型数据;分别统计每个根节点下所有模型数据的三角面数量;根据根节点三角面数量执行迭代分层处理:判断根节点下三角面数量是否大于设定值;若三角面数量大于设定值,对该根节点进行迭代分层处理;
模型数据分层简化:为模型数据建立拓扑结构;评价所有拓扑顶点的删除误差;执行拓扑顶点删除操作并处理纹理偏移;获取所有节点的拓扑三角形集合;所述模型数据分层简化的具体步骤为:模型数据建立拓扑结构:获取模型的三角面数据,建立拓扑顶点集合和拓扑三角形集合;获取拓扑三角面的纹理颜色值矩阵;转移拓扑顶点拓扑关系;删除重复拓扑顶点,重置拓扑关系;评价所有拓扑顶点的删除误差影响:判断拓扑顶点的拓扑关系类型;判断拓扑顶点的几何结构类型;根据顶点类型计算拓扑顶点的删除误差影响;执行拓扑顶点删除操作并处理纹理偏移:重复从误差集合中选择误差最小的拓扑顶点作为目标顶点执行删除操作直至删拓扑顶点的删除比率达到设定值为止;获取各节点的拓扑三角形集合:遍历所有节点,将每个节点中的模型集合中的模型依次建立拓扑结构,评价所有拓扑顶点的删除误差,执行拓扑顶点删除操作并处理纹理偏移,将模型简化获得的拓扑三角形统一保存到简化拓扑三角形集合中,分别获得每个节点的简化拓扑三角形集合;
节点模型数据重组输出:遍历节点下简化拓扑三角形集合中的拓扑三角形,输出纹理图像;根据引用的纹理图像对三角形数据进行分组和输出;根据节点的上下层关系输出并设置关联关系。
2.根据权利要求1所述的一种海量三维模型的组织方法,其特征在于:所述模型数据空间范围分块的具体步骤为:
计算模型数据整体空间范围在横、纵、竖轴方向上的长度:将模型数据中的模型进行遍历,获取模型的顶点坐标数据计算整体空间范围;获取整体空间范围在横、纵、竖轴方向上的最大、最小值,分别计算其在横、纵、竖轴方向上的长度;
调整整体空间范围在横轴和纵轴方向的长度范围:将整体空间范围在横轴和纵轴方向上的长度调整为整体空间范围竖轴方向的长度的2的幂次方倍数;
将整体空间范围在横、纵轴平面上进行分块处理:将整体空间范围在横、纵轴平面上进行四等分,分割获得四块体积相同的空间范围,若分割出的空间范围在横轴方向上的长度大于整体空间范围在竖轴方向上的长度,则对所有分割出的空间范围继续进行四等份细分,迭代执行直至分割出的空间范围在横轴方向上的长度小于等于整体空间范围在竖轴方向上的长度。
3.根据权利要求1或2所述的一种海量三维模型的组织方法,其特征在于:所述调整整体空间范围在横轴和纵轴方向的长度范围的具体步骤为:
计算调整长度:计算整体空间范围在横轴和纵轴方向上长度的较大值,将较大值增加到整体空间范围在竖轴方向上长度的2的幂次方倍数,其计算公式为:
其中:INT()为取整函数;ZL为整体空间范围在z轴方向的长度;L为整体空间范围在横轴、纵轴方向上的长度的较大值;
通过公式计算获得整体空间范围在横轴和纵轴方向上长度的较大值要增加到的数值La;
调整空间范围在横轴和纵轴方向上的长度:将整体空间范围在横轴和纵轴方向上的长度统一调整为整体空间范围在横轴和纵轴方向上长度的较大值增加到整体空间范围在z轴方向上长度的2的幂次方倍数获得的值,其计算公式为:
其中:Xmin为整体空间范围在横轴方向的最小值;Xmax为整体空间范围在横轴方向的最大值;Ymin为整体空间范围在纵轴方向的最小值;Ymax为整体空间范围在纵轴方向的最大值;La为整体空间范围在横轴和纵轴方向上长度的较大值增加到整体空间范围在z轴方向上长度的2的幂次方倍数获得的值;XL为整体空间范围在横轴方向上的长度;YL为整体空间范围在纵轴方向上的长度;通过公式计算获得横轴、纵轴上调整后的长度范围:Xmin’为横轴方向上调整后的最小值;Xmax’为横轴方向上调整后的最大值;Ymin’为纵轴方向上调整后的最小值;Ymax’为纵轴方向上调整后的最大值。
4.根据权利要求1所述的一种海量三维模型的组织方法,其特征在于:所述计算根节点空间范围内的模型顶点数据的具体步骤为:
判断模型与根节点空间范围的位置关系:计算模型的空间范围与根节点的空间范围的交集情况;交集为空集,判定该模型不在根节点空间范围内;交集为模型空间范围全集,判定模型被根节点空间范围完全包围,将模型数据保存到根节点模型集合;交集不为模型空间范围全集,判定模型有部分数据被根节点空间范围包围,进行模型切割操作;
模型切割操作:以根节点空间范围为界限对模型进行切割,保留根节点空间范围内的数据构成新的模型,并将该模型保存到根节点模型集合。
5.根据权利要求1所述的一种海量三维模型的组织方法,其特征在于:所述根据根节点三角面数量执行迭代分层处理的具体步骤为:
分割节点空间范围创建子节点:分别以节点空间范围在横、纵、竖轴三个方向上的中点所在的与另两个轴所在平面平行的平面对节点空间范围进行切割,获得八个体积相同的次级空间范围,并以这八个次级空间范围建立该节点下一层的八个子节点,子节点的空间范围设定为对应的次级空间范围;
获取子节点模型数据:遍历节点下的模型数据,分别计算位于八个子节点空间范围内的模型数据,并将模型数据保存到对应子节点下的模型集合中;
根据子节点三角面数量判断是否执行迭代分层操作:模型数据遍历完成后,分别统计八个子节点下模型集合中所有模型数据的三角面数量并判断三角面数量是否大于设定值,对大于设定值的子节点继续分割节点空间范围创建子节点,获取子节点模型数据,根据子节点三角面数量判断是否执行迭代分层操作。
6.根据权利要求1所述的一种海量三维模型的组织方法,其特征在于:所述模型数据建立拓扑结构的具体步骤为:
获取模型三角面数据创建拓扑顶点集合和拓扑三角形集合:遍历三角面数据,为每个三角面创建拓扑三角形,将三角面的法向量、纹理坐标、纹理贴图存入到拓扑三角形中,将拓扑三角形存入拓扑三角形集合中并获得其在集合中的位置索引;为三角面的三个顶点分别创建拓扑顶点,将拓扑三角面位置索引存入到拓扑顶点中,将三个拓扑顶点存入到拓扑顶点集合中,并获得它们在集合总的位置索引,将三个位置索引存入到拓扑三角面中;
获取拓扑三角面纹理颜色值矩阵:遍历拓扑三角形集合,根据拓扑三角形的纹理坐标获取纹理图像上的对应区域的像素点,以获取到的像素点区域的最小包围框尺寸创建颜色值矩阵,将像素点的颜色值逐一填充到矩阵对应位置;
转移拓扑顶点拓扑关系:遍历拓扑顶点集合,获取目标拓扑顶点的坐标,在集合中查找与其坐标相同的重合拓扑顶点;将重合拓扑顶点中的拓扑三角形位置索引复制到目标拓扑顶点中,并根据索引在拓扑三角形集合中找到对应拓扑三角形,将拓扑三角形中重合拓扑顶点的位置索引更换为目标拓扑顶点的位置索引,最后将重合拓扑顶点中的拓扑三角形位置索引全部删除;
删除拓扑顶点并重置拓扑关系:遍历拓扑顶点集合,删除掉其中不包含有拓扑三角形位置索引的拓扑顶点,更新拓扑顶点集合;遍历拓扑顶点集合,根据拓扑顶点中包含的拓扑三角形位置索引找到对应拓扑三角形,将其中包含的拓扑顶点位置索引更新。
7.根据权利要求1所述的一种海量三维模型的组织方法,其特征在于,所述评价所有拓扑顶点的删除误差影响的具体步骤为:
判断目标拓扑顶点的拓扑关系类型:根据目标拓扑顶点的关联三角形和关联顶点的数量,判定其拓扑关系的类型;
根据拓扑关系类型和几何结构判断拓扑顶点的几何结构类型:计算目标顶点的几何结构参数,并结合目标顶点的拓扑关系类型判断目标顶点的几何结构类型;
根据顶点类型计算拓扑顶点的删除误差:根据拓扑顶点的拓扑关系类型和几何结构类型选择相应删除误差的计算方法计算其误差;
获得误差集合:遍历拓扑顶点集合中的所有顶点,判断顶点的拓扑关系类型和几何结构类型,计算删除误差,获得误差集合并将误差集合按照误差大小升序排列。
8.根据权利要求7所述的一种海量三维模型的组织方法,其特征在于,所述判断目标拓扑顶点的拓扑关系类型的具体步骤为:
拓扑关系类型判定依据:判定依据为查找所有以目标拓扑顶点为一端顶点的边的关联三角形数量,即共用该边的三角形数量,以及是否查找了目标拓扑顶点所有的关联三角形;在查找过程中,当出现关联三角形数量大于2的情况时,查找过程终止;
拓扑关系类型及判定条件:简单顶点判定条件为查找过程全部完成后,各边的关联三角形数量都为2,且查找了目标顶点的所有关联三角形;非流型顶点判定条件为查找过程全部完成后,各边的关联三角形数量都为2,但没有查找顶点的所有关联三角形,或各边关联三角形的数量出现大于2的情况,或查找的三角形数量大于顶点的关联三角形数量;边界顶点判定条件为查找过程完成中,各边的关联三角形数量出现为1的情况,且查找了顶点的所有关联三角形;上述条件中,没有完成顶点所有关联三角形的遍历,从上一循环中找到的边界边开始进行反方向的遍历,遍历完成满足上述条件,为边界顶点,否为非流型结构顶点。
9.根据权利要求7所述的一种海量三维模型的组织方法,其特征在于,所述根据拓扑关系类型和几何结构判断拓扑顶点的几何结构类型的具体步骤为:
计算目标顶点的几何结构参数:计算目标顶点所有关联三角形的面积和、各三角形的单位法向量、特征边的数量、平均平面、平均平面的单位法向量;
特征边的判定:计算边的两个关联三角形的二面角,判定二面角的角度小于设定值为特征边;或边界顶点的两条边界边判定为特征边;
边界边的判定:查找边的关联三角形,三角形数量为1时判定为边界边;
根据目标顶点的关联三角形面积和中心点计算平均平面中心点;计算公式为:
其中:c为目标顶点的关联三角形数量;mi(i=1,2…,c)为每个三角形的中心,
Ai(i=1,2,…,c)为每个三角形的面积,∑为求和函数;
根据公式获得平均平面的中心m;
根据目标顶点的关联三角形面积和单位法向量计算平均平面单位法向量;计算公式为:
其中:c为目标顶点的关联三角形数量;ni(i=1,2,…,c)为三角形的单位法向量;Ai(i=1,2,…,c)为三角形的面积;∑为求和函数;
拓扑顶点几何结构类型及判定条件:退化顶点的判定条件为目标顶点没有单位法向量且关联三角形的面积之和为0,或平均平面的单位法向量为0判定为退化顶点;边缘结束顶点的判定条件为简单顶点且特征边数量为1;内部边缘顶点的判定条件为简单顶点且特征边数量为2;拐角顶点的判断条件为简单顶点且特征边数量大于2,边界边顶点且特征边数量不为2;裂缝尖端顶点判断条件为边界顶点,两条边界边为特征边,且两边界边重合。
10.根据权利要求7所述的一种海量三维模型的组织方法,其特征在于,所述根据顶点类型计算拓扑顶点的删除误差的具体步骤为:
简单顶点、边缘结束顶点、裂缝尖端顶点的删除误差计算:计算目标顶点到平均平面距离的平方作为该类顶点的误差,计算公式为:
d=(An*(xv-X)+Bn*(yv-Y)+Cn*(zv-Z))2 (5)
其中,xv、yv、zv为目标顶点在x、y、z三个轴上的值,X、Y、Z为平均平面的中心点坐标在x、y、z三个轴上的值,An、Bn、Cn为平均平面的单位法向量在x、y、z三个轴上的值;根据公式计算得到目标顶点到平均平面距离的平方d;
内部顶点和边界顶点的删除误差计算:对于目标顶点的关联三角形的数量为1的情况,计算其关联三角形的面积作为误差;关联三角形的数量不为1时,计算目标顶点到特征边的距离以及特征边的长度,选择较小的一个作为误差。
11.根据权利要求1所述的一种海量三维模型的组织方法,其特征在于,所述执行拓扑顶点删除操作并处理纹理偏移的具体步骤为:
选择目标顶点转移拓扑关系的替换顶点:根据目标顶点的拓扑关系类型和几何结构类型,选择其相邻顶点中最适合作为目标顶点拓扑关系转移的替换顶点;顶点类型为内部边缘顶点时,以其两个特征边长度作为误差度量,选择误差度量最小的特征边另一端顶点作为替换顶点;顶点类型为简单顶点或边缘结束顶点时:遍历所有目标顶点的关联顶点,以关联顶点到目标顶点的距离作为误差度量,选择误差最小的关联顶点作为替换顶点;顶点类型为边界顶点时:以两个边界边的边长作为误差度量,选择边长较短的一个边的另一端顶点作为替换顶点;顶点类型为裂缝尖端顶点时:边界边的另一端顶点作为替换顶点;顶点类型为退化顶点时:第一个关联点作为替换顶点;
执行删除操作:找到目标顶点和替换顶点所在边的两个相邻拓扑三角形,从拓扑三角形集合中找到并删除这两个拓扑三角形,同时从引用这两个拓扑三角形索引位置的拓扑顶点中删除这两个位置索引;从拓扑顶点集合中找到并删除目标顶点,将目标顶点的拓扑三角形位置索引转移到替换顶点上;
处理纹理偏移:当目标顶点执行删除操作后,将目标顶点剩余的关联三角形的纹理颜色值矩阵进行相应处理。
12.根据权利要求11所述的一种海量三维模型的组织方法,其特征在于,所述处理纹理偏移的具体步骤为:
获取颜色值合并矩阵:将执行删除操作前的关联三角形的几何位置投影到关联三角形的平均平面上,根据平面上投影的几何位置将关联三角形中保存的纹理颜色值矩阵进行合并,得到颜色值合并矩阵;
更新颜色值矩阵:将执行删除操作后的关联三角形的几何位置同样投影到删除前的关联三角形平均平面上,将颜色值合并矩阵映射到投影的几何位置上;根据投影中各关联三角形的几何位置,从颜色值合并矩阵的相应位置上获取相应区域的颜色值,将颜色值更新到关联三角形的颜色值矩阵上。
13.根据权利要求1所述的一种海量三维模型的组织方法,其特征在于,所述节点模型数据重组输出的具体步骤为:
遍历节点下的简化拓扑三角形集合中的元素,输出纹理图像:将各拓扑三角形中保存的颜色值矩阵按照长度和宽度进行排列组合,然后写入到1024*1024的空白图像中作为纹理图像,并按照颜色值矩阵在图像中的位置为对应顶点计算纹理坐标,并将图像名称和纹理坐标保存到拓扑三角形中;当图像没有足够空间后,可创建新的空白图像进行保存;
根据拓扑三角形中保存的图像名称进行分组并输出:将引用相同图像的拓扑三角形分为一组;将节点下划分的各组拓扑三角形数据和对应纹理的图像保存到同一个三维数据文件中;
根据节点的上下层节点关系输出并进行关联关系设置:从空间范围最小的一层节点开始,逐一遍历节点下的简化拓扑三角形集合中的元素输出纹理图像,根据拓扑三角形中保存的图像名称分组输出;当节点存在有子节点时,将节点包含的数据按照子节点的空间范围再次分组,并为每组数据设置相应的子节点作为关联关系。
CN201711259682.8A 2017-12-04 2017-12-04 一种海量三维模型的组织方法 Active CN109872390B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711259682.8A CN109872390B (zh) 2017-12-04 2017-12-04 一种海量三维模型的组织方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711259682.8A CN109872390B (zh) 2017-12-04 2017-12-04 一种海量三维模型的组织方法

Publications (2)

Publication Number Publication Date
CN109872390A CN109872390A (zh) 2019-06-11
CN109872390B true CN109872390B (zh) 2023-04-07

Family

ID=66915636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711259682.8A Active CN109872390B (zh) 2017-12-04 2017-12-04 一种海量三维模型的组织方法

Country Status (1)

Country Link
CN (1) CN109872390B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111028349B (zh) * 2019-10-24 2023-08-18 宝略科技(浙江)有限公司 一种适用于海量三维实景数据快速可视化的层级构建方法
CN111415406B (zh) * 2020-03-18 2023-05-12 东南数字经济发展研究院 一种分层分块三维模型数据分类压缩方法
CN112200892B (zh) * 2020-09-30 2024-07-26 京东方科技集团股份有限公司 一种显示处理方法和装置
CN113269860B (zh) * 2021-06-10 2022-10-04 广东奥普特科技股份有限公司 一种高精度三维数据实时渐进式渲染方法和系统
CN115861558A (zh) * 2022-11-26 2023-03-28 星际空间(天津)科技发展有限公司 一种空间数据模型切片的多级简化方法
CN118250438B (zh) * 2024-05-28 2024-09-10 隆瑞三优新能源汽车科技有限公司 基于充电桩的充电安全监控方法、装置、设备和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103093499A (zh) * 2012-12-26 2013-05-08 深圳先进技术研究院 一种适用于网络传输的城市三维模型数据组织方法
CN104766366A (zh) * 2015-03-31 2015-07-08 东北林业大学 一种三维虚拟现实演示的建立方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117494A (zh) * 2009-12-30 2011-07-06 新奥特(北京)视频技术有限公司 一种三维建模中的数据分层分块方法及装置
CN102117500B (zh) * 2009-12-30 2015-03-25 新奥特(北京)视频技术有限公司 一种三维模型构建方法及系统
CN102117492A (zh) * 2009-12-30 2011-07-06 新奥特(北京)视频技术有限公司 一种分块数据建模方法及装置
CN104008566A (zh) * 2013-02-27 2014-08-27 河南省电力勘测设计院 海量高精度三维电力设备模型在gis中高效渲染方法
ES2728861T3 (es) * 2013-03-15 2019-10-29 Univ Carnegie Mellon Sistema robótico autónomo supervisado para inspección y procesamiento de superficie compleja
CN103473428B (zh) * 2013-09-22 2017-04-05 中测新图(北京)遥感技术有限责任公司 矿井空间的分析方法和装置
CN106600679B (zh) * 2015-10-20 2019-11-08 星际空间(天津)科技发展有限公司 一种三维模型数据简化的方法
CN106780716A (zh) * 2016-11-21 2017-05-31 广州新起典数码科技有限公司 历史文化遗产数字化展示方法
CN106846247B (zh) * 2016-12-29 2020-04-14 郑州星途信息科技有限公司 空间环境数据多尺度显示方法、模型建立方法及装置
CN107341851A (zh) * 2017-06-26 2017-11-10 深圳珠科创新技术有限公司 基于无人机航拍影像数据的实时三维建模方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103093499A (zh) * 2012-12-26 2013-05-08 深圳先进技术研究院 一种适用于网络传输的城市三维模型数据组织方法
CN104766366A (zh) * 2015-03-31 2015-07-08 东北林业大学 一种三维虚拟现实演示的建立方法

Also Published As

Publication number Publication date
CN109872390A (zh) 2019-06-11

Similar Documents

Publication Publication Date Title
CN109872390B (zh) 一种海量三维模型的组织方法
WO2020192027A1 (zh) 一种嵌入式城市设计场景仿真方法及系统
CN104766366B (zh) 一种三维虚拟现实演示的建立方法
Floriani et al. VARIANT: a system for terrain modeling at variable resolution
CN110321443B (zh) 三维实景模型数据库构建方法、装置及数据服务系统
CN110704928A (zh) 一种从bim模型到gis模型的转换方法
CN103679804A (zh) 一种地下管线数据三维模型自动构建系统及其构建方法
CN111784840B (zh) 基于矢量数据自动分割lod层级三维数据单体化方法及系统
CN111540051B (zh) 一种基于cim的全要素海量数据轻量化及拓扑分析应用平台
CN112328722B (zh) 电力变电站三维gis和模型数据快速加载方法和系统
CN114820975B (zh) 基于全要素参数符号化的三维场景仿真重构系统及方法
CN109712242B (zh) 一种支持大规模三维场景虚拟漫游的模型数据组织方法
WO2024108975A1 (zh) 一种空间模型数据的切片方法
CN113704945B (zh) 管网道路的关联分析方法及装置、存储介质、电子设备
Yang et al. A hybrid spatial index for massive point cloud data management and visualization
Zhu et al. CyberCity GIS (CCGIS): integration of DEMs, images, and 3D models
WO2024108974A1 (zh) 一种空间数据模型切片的多级简化方法
CN104866549A (zh) 一种适于多智能体仿真的地形环境数据库系统
CN117112711A (zh) 一种实景三维地理信息系统及实现方法
Qiao et al. A rapid visualization method of vector data over 3D terrain
Enqing et al. Discussion on construction method of smart campus basic platform based on 3d geographic information technology
Wang et al. A 3-D city model data structure and its implementation in a relational database
Zhou et al. Study of an SCSG-OSM for the Creation of an Urban Three-Dimensional Building
Gruber et al. Urban data management—A modern approach
CN116310093B (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
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20190611

Assignee: Tianjin survey and Design Institute Group Co.,Ltd.

Assignor: STARGIS (TIANJIN) TECHNOLOGY DEVELOPMENT Co.,Ltd.

Contract record no.: X2023980054666

Denomination of invention: A method for organizing massive 3D models

Granted publication date: 20230407

License type: Common license|Cross license

Record date: 20231228