1.本发明涉及三维建筑模型边折叠技术领域,具体涉及一种顾及角度误差的三维建筑模型边折叠简化算法。
背景技术:2.随着三维激光扫描技术的日趋成熟和三维数据采集设备的升级换代,人们获取到的三维数字化模型的数据密度日益增长,但通过网络传输海量的高密度数据来进行大规模三维场景的实时绘制,其效果还有待提高。
3.大规模三维场景的实时绘制一方面要求渲染出高质量的图像,另一方面还要满足用户实时交互的操作要求。为了获取适合多种场景使用的细节模型,需要对高分辨率网格模型进行不同程度简化操作。层次细节(level of detail,lod)技术是降低三维数据复杂性的有效方法。如何针对模型不同的复杂性,定量优化lod模型的细节水平,自适应的保留重要特征并减少不必要的冗余,以符合人对其认知过程的层次性,是网络三维显示的重要技术内容。
4.lod模型的建立,首先面临网格简化的问题。网格简化方法即在保留模型的重要几何和视觉特征的前提下,精简次要细节,以降低模型数据量。目前学者们基于不同的算法思想提出了多种网格简化方法。常见的简化机制包括顶点聚类(vertex cluste
‑
ring)、增量式简化(incremental decimation)、采样(sampling)和自适应细分(adaptive subdivision),简化算法基本都采用了这四种机制的某种结合或者是变形。其中,边折叠算法属于增量式简化中的一种,其实质是顶点删除。该算法具有简化模型的质量好、健壮性好、可以进行大幅度简化、生成不同精度的模型、易于进行不同层级lod之间的无缝切换等优良特性。
5.hoppe于1993年首先使用边折叠方法来简化网格模型,该算法通过优化一个全局的能量方程来确定边折叠的次序和新顶点的位置,通过逐次加入细节生成不同复杂度的简化模型。算法生成的结果模型质量好,但其计算过程是非线性的,实现和使用困难。1998年,garland等人在hoppe的算法基础上提出了二次误差度量(quadric error metrics,qem)边折叠算法,该算法在误差度量中以新顶点到一阶邻域三角形(first order triangle,fot)的距离平方和作为误差,计算过程简单,但不能很好地保持模型表面的细部特征。与garland算法不同,段黎明等提出的网格细分方法,将体积误差和三角形平展度加入到了误差测度中,其对边界三角形简化效果较差;刘晓利等在qem简化算法的基础上,由顶点的尖特征度确定折叠代价,降低了时间复杂度,但需要根据经验设定阈值和惩罚系数。董艳等将顶点的重要度引入折叠代价的权重中,以改变边的折叠次序,取得较好的结果,但计算时间较长。
6.针对三维建筑模型简化至低分辨率时,由于模型网格质量降低、表面细节特征丢失等原因导致的视觉退化问题,本发明设计了一种顾及角度误差的三维建筑模型边折叠简化算法。
技术实现要素:7.本发明的目的在于克服现有技术中存在的上述问题,提供一种顾及角度误差的三维建筑模型边折叠简化算法,在选取收缩边时预先加入顶点约束处理,以减少需要折叠操作的边的数量,提高计算性能;在二次误差测度算法的基础上引入角度误差加权,对生成新面片的旋转方向进行角度误差控制,以提高模型特征区域顶点的误差度量,更好的保留模型表面细部特征和视觉特征,从而避免模型网格质量降低、表面细节特征丢失等原因导致视觉退化的可能。
8.为实现上述技术目的,达到上述技术效果,本发明是通过以下技术方案实现:
9.一种顾及角度误差的三维建筑模型边折叠简化算法,包括以下步骤:
10.步骤一:初始化过程:
11.s1:初始模型做预处理;
12.s2:计算每个顶点的误差矩阵;
13.s3:计算每条边收缩生成的新顶点位置;
14.s4:将边放入堆中,建立最小堆;
15.s5:计算每条边收缩的误差测度值;
16.步骤二:简化过程:
17.s6:取出堆顶的边,进行边折叠;
18.s7:计算折叠后的角度误差,进行角度控制;
19.s8:更新简化边周围边的角度误差,再次建立最小堆;
20.s9:判断是否达到简化要求:没有达到简化要求,则回到步骤s6继续往下进行边折叠,达到简化要求,则简化完成。
21.优选地,所述s1中,在模型预处理过程中,选取收缩边时预先加入顶点约束处理。
22.与现有技术相比,本发明的有益效果如下:
23.本发明结构设计合理,第一:本发明通过基于qem边折叠简化算法,在模型预处理过程中,选取收缩边时预先加入顶点约束处理,以减少需要折叠操作的边的数量,提高计算性能;
24.第二:通过在二次误差测度算法的基础上引入角度误差加权,即在误差测度中引入顶点曲率和三角形法向约束因子,对生成新面片的旋转方向进行角度误差控制,减少了狭长三角形的生成,以提高模型特征区域顶点的误差度量,更好的保留模型表面细部特征和视觉特征;
25.第三:在保留保留模型表面细部特征和视觉特征的前提下,减少三维模型网格的密度,用少量的三角形面片保留建筑模型的大部分几何特征,输出质量较高的简化模型。
26.当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
27.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
28.图1为本发明的技术路线图;
29.图2为本发明的算法流程图;
30.图3为本发明的应用实施例的系统整体架构图;
具体实施方式
31.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
32.实施例1
33.请参阅图1
‑
2所示,一种顾及角度误差的三维建筑模型边折叠简化算法,包括以下步骤:
34.步骤一:初始化过程:
35.s1:初始模型做预处理:在模型预处理过程中,选取收缩边时预先加入顶点约束处理,以减少需要折叠操作的边的数量,提高计算性能;
36.s2:计算每个顶点的误差矩阵;
37.s3:计算每条边收缩生成的新顶点位置;
38.s4:将边放入堆中,建立最小堆;
39.s5:计算每条边收缩的误差测度值;
40.步骤二:简化过程:
41.s6:取出堆顶的边,进行边折叠;
42.s7:计算折叠后的角度误差,进行角度控制;
43.s8:更新简化边周围边的角度误差,再次建立最小堆;
44.s9:判断是否达到简化要求:没有达到简化要求,则回到步骤s6继续往下进行边折叠,达到简化要求,则简化完成。
45.实施例2应用实例
46.本发明已实施应用于一个基于webgis和b/s架构的,面向实际应用场景的城市三维场景基础资料表达系统。
47.系统应用组件式技术,实现了架构的松散性耦合,各模块具有高度自的独立性,系统各层次间模块可灵活的复用、分散组合与扩展。系统利用webgl(web graphics library)技术,结合我国标准地理格网搭建,以iis 8.0作为web服务器,arcgis server 10.6作为gis服务器,使用postgresql+postgis作为数据库,通过vue、webserver等框架技术进行客户端的页面展现及空间信息数据渲染,系统整体架构如图3所示。
48.实施例3应用实例
49.通过选取云南省某山区场景,该场景原始三角面片数约4000万个,数据大小约为1gb,场景加载的时间约12s。简化后的三角面片数降低至约800万个,数据大小约为213m,完成加载时间约为3s,实现三维建筑模型边叠简化算法在大规模城市场景中的渲染效果。
50.本实施例的一个具体应用为:本发明结构设计合理,通过基于qem边折叠简化算法,提出的一种顾及角度误差的三维建筑模型边折叠简化算法,在模型预处理过程中,选取
收缩边时预先加入顶点约束处理,以减少需要折叠操作的边的数量,提高计算性能;
51.在二次误差测度算法的基础上引入角度误差加权,即在误差测度中引入顶点曲率和三角形法向约束因子,对生成新面片的旋转方向进行角度误差控制,减少了狭长三角形的生成,以提高模型特征区域顶点的误差度量,更好的保留模型表面细部特征和视觉特征;
52.在保留保留模型表面细部特征和视觉特征的前提下,减少三维模型网格的密度,用少量的三角形面片保留建筑模型的大部分几何特征,输出质量较高的简化模型。
53.在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
54.以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。