CN107918957B - 一种保持结构和纹理特征的三维建筑模型化简方法 - Google Patents
一种保持结构和纹理特征的三维建筑模型化简方法 Download PDFInfo
- Publication number
- CN107918957B CN107918957B CN201610885876.8A CN201610885876A CN107918957B CN 107918957 B CN107918957 B CN 107918957B CN 201610885876 A CN201610885876 A CN 201610885876A CN 107918957 B CN107918957 B CN 107918957B
- Authority
- CN
- China
- Prior art keywords
- texture
- edge
- model
- calculating
- triangulation
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
Abstract
本发明公开了一种保持结构和纹理特征的三维建筑模型化简方法,解析各种不同来源格式的三维建筑模型数据,构造表面模型索引和表面模型三角网列表;根据三角网邻近信息,计算每个顶点的二次误差,从而计算每条边的二次误差;法线和面积验证,计算相邻的三角网和化简之后的表面模型三角网列表,采用RTT方法,计算新顶点的空间坐标和纹理坐标,并更新表面模型三角网列表中对应的纹理信息,以及新的顶点和纹理坐标;反复循环化简到指定的三角网数目为止;输出每个三角网的纹理,完成三维建筑模型的化简。本发明可以从高精度的三维模型自动生成不同细节层次的低精度模型,满足智慧城市各种应用需求。
Description
技术领域
本发明涉及地理信息系统、虚拟现实和计算机图形学领域,具体是一种保持结构和纹理特征的三维建筑模型化简方法。
背景技术
三维模型是数字和智慧城市的重要组成部分,主要包括道路、城市部件、植被和房屋等三维模型,其广泛应用于城市规划、地籍管理和通信规划等领域。随着Lidar和倾斜摄影技术的发展,为大规模三维模型的自动建立提供了可能。微软全球制图计划已经制成全球360个城市的三维模型。国内随着数字和智慧城市的建设,目前已经有多个城市都制作了大量的各种精度的三维模型。但是这些模型采用的软件和存储格式都不同,如何有效地重用和管理这些大规模三维模型,成为当前急需解决的问题。
建筑模型在城市中具有重要的作用,也是人们关注的主要的对象。制作三维模型是一个高成本的工作,其主要是由三维模型制作软件制作或者通过摄影测量自动重建而成的,但是由于制作成本高昂,一般都是根据特定的需要制作一个细节模型,一般制作为LOD3或LOD4级别的模型,但是在可视化的过程中,需要不同级别的三维模型,传统的手工制作方法成本太高,如果可以实现三维模型自动化简和生成,将极大改变当前的制作和生产工艺。
三维模型化简很早就引起大家的注意和研究,如申请号为CN201110275336.5的国内专利《三维模型数据化简、渐进传输方法及装置》,提出设定与视图窗口对应的视图控制参数;依据所述视图控制参数分析三维模型数据,获取在所述视图窗口中可见的三维模型数据;确定所述在视图窗口中可见的三维模型数据为化简后数据。,减小了数据传输过程中的数据量,提高了数据传输速度。该方法主要侧重于数据传输和调度,不能保持模型的多细节层次和纹理特征,很难生成多细节层次模型。
三维模型化简引起不少专家的研究,目前大家主要集中三维模型几何结构简化,通过化简模型三角网来减少模型的复杂性,如《三维建筑化简算法研究》(葛磊,解放军信息工程大学)、《基于网格分割的带纹理模型细节保持化简方法》(薛冰、王莉莉、沈哲,《计算机辅助设计与图形学学报》)等研究,这些方法都是侧重于建模的几何结构,纹理是三维模型的重要组成部分,纹理也需要化简;同时,建筑模型具有明显的边界结构特征。因此,需要研究一种既能保持模型的结构特征,又能保持纹理特征的三维模型化简方法,实现高精度的模型自动生成低精度模型。
发明内容
本发明的目的在于提供一种保持结构和纹理特征的三维建筑模型化简方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种保持结构和纹理特征的三维建筑模型化简方法,包括以下步骤:
A、解析各种不同来源格式的三维建筑模型数据,构造表面模型索引和表面模型三角网列表;
表面模型索引是记录模型表面三角网的邻近信息,通过邻近信息得到每个顶点相邻的边和三角网,以及每条边的相邻的三角网;
表面模型三角网列表记录每个三角网对应的顶点的空间坐标、纹理坐标和纹理信息;
B、根据三角网邻近信息,计算每个顶点的二次误差,从而计算每条边的二次误差,如果一条边相邻的面的数目为1,则表示该边为边界,加入惩罚值ε;将二次误差按照大小进行排序,依次化简每条边,并计算新的二次误差大小,并加入二次误差列表中排序,并进行到步骤C,否则放弃该次化简,进入到步骤D;
C、法线和面积验证:比较与此边相关联三角面的法向在折叠前后的变化情况,如果变化过大,则不对该边进行化简;计算边化简之后相邻的三角网的面积和原始的相邻面的面积,如果面积变大且超过一定的范围,则取消该次化简,并给该边加惩罚值ε/2,更新二次误差列表,进行步骤D;
D、在边化简的时候,计算相邻的三角网和化简之后的表面模型三角网列表,采用RTT(render to texture,渲染到纹理)方法,计算新顶点的空间坐标和纹理坐标,并更新表面模型三角网列表中对应的纹理信息,以及新的顶点和纹理坐标;
E、选择二次误差较小的边进行化简,重复A-D的步骤,反复循环化简到指定的三角网数目为止;
F、三维建筑模型渲染完成之后,输出每个三角网的纹理,并采用行列式扫描的方式,将纹理进行打包,输出为一整张纹理,从而完成三维建筑模型的化简;
G、根据不同LOD的细节程度需求,重复A-F步骤,计算出要化简之后的三角形的数目,生成不同细节层次的三维建筑模型。
作为本发明进一步的方案:面积变大且超过一定的范围是指化简之后相邻的三角网的面积和原始的相邻面的面积的比值超过1.3。
在上述方法中,定义三维建筑模型中包括顶点v的所有三角形构成一个集合,称为v的相关面集,记为f(v):
f(v)={(a,b,c,d)|ax+by+cz+d=0,a2+b2+c2=1} (1)
其中,ax+by+cz+d=0为相邻三角形的平面方程。令p=[a,b,c,d]T,又定义顶点v到三维建筑模型中面片集合f(v)的二次误差Δ′(v)为顶点v到面片集合f(v)距离的平方和。其中Δ′(v)可由下式计算得到:
其中:
并用(Q′i+Q′j)表示边折叠的误差矩阵测度,点离折叠的边越远,误差越大。
首先遍历三角网,计算出每个边的相邻三角网数组,如果其相邻的三角网小于1,则改边为边界,则该边加惩罚值ε,更新二次误差排序,依次边折叠计算。
计算使误差最小的点,限制在该边上。折叠后的新点位于y=ac+b线上,处于边(vi,vj),计算使二次误差最小的点位P作为折叠后的点,这样可以克服在建筑化简的过程中,按照严格计算公式出现的异常点的问题,并更新二次误差列表,并重新的进行边排序。
在边化简时,可能导致与该边相关联的三角面相互重叠或者三角面方向翻转的现象,比较与此边相关联三角面的法向在折叠前后的变化情况,如果变化过大,则不对该边进行折叠。为防止图形的边折叠之后,三维建筑模型的轮廓可能变化太大,需要面积验证,计算折叠边附近的三角网面积ΔS,并计算折叠之后三角网的面积和ΔS1:
如果变化率超过1.3,则将该边加惩罚值ε/2,更新误差二次误差列表,继续进行边折叠计算,否则继续计算。
三维建筑模型化简之后,三维建筑模型的几何结构发生变化,需要重新生成新的纹理,将分别使相机依次垂直对准更新的三角面,采用RTT技术并重新绘制变化的三角网场景,渲染到帧缓存中的纹理只包含当前化简面的纹理,经过纹理输出便能够得到建筑物各个面纹理,以及每个顶点的新纹理坐标。
三维建筑模型化简到指定数量的面之后,多张纹理还需要经过纹理拼合才能得到最终的纹理集。由于每一个面纹理和最终需要得到的纹理集均为矩形纹理。因此,纹理拼合的实质是在一个既定矩形范围内如何合理地排放各种不同大小的纹理,并且使得遗留区域最小,即如何最大化地利用既定的纹理空间。
二维矩形优化排样的实质是一个组合优化的二维布局问题,从计算复杂性来看,是一个多项式复杂程度的非确定性问题,本发明基于最低水平线的择优插入算法拼合纹理。在排序过程中,按照面积优先的原则将各个三角面纹理进行降序排列,如下式所示,其中Tn为待排纹理,即最大的纹理优先进行拼合:
Tn={T1,T2,T3…|(ST1>ST2>ST3…)} (7)
设置初始的最低水平线为大纹理的最下面的边。每当要排入一个纹理,就在水平线集中选取最低的一段水平线。如有数段,则选取最左边的一段,判断该段线的长度是否大于或等于要排纹理的长度或宽度。若是,则将该纹理在此位置排放,同时更新水平线。否则,将余下的纹理中可以放入最低水平线的所有纹理进行比较,选择长度或宽度最接近最低水平线长度的纹理Ti放到最低水平线上,如下式所示:
L(Ti)-L≤min(L(Tn)-L) (8)
如果没有小于最低水平线长度的纹理,则将最低水平线提升至与高度较低的一段平齐,并更新纹理的水平线。在纹理排放的过程中,需要记录下每张小纹理的尺寸,在纹理集中左下角的位置和是否旋转900等信息。若排样失败,即无法将三维建筑模型的纹理拼合到一张大纹理之中,则需将每张小纹理尺寸适当减小。
与现有技术相比,本发明的有益效果是:
本发明提供一种既能保持模型的结构特征,又能保持纹理特征的三维建筑模型化简方法,可以从高精度的三维模型自动生成不同细节层次的低精度模型,满足智慧城市各种应用需求。
附图说明
图1为包含本发明的保持边界和纹理的建筑模型化简总体的流程图。
图2为三维建筑模型边化简为点示意图。
图3为三角形化简的过程中面积验证的示意图。
图4为三角形化简的过程中法线验证示意图。
图5为本发明中的纹理重新生成之后纹理坐标转换示意图。
图6为本发明中的化简之后生成的纹理合并示意图。
具体实施方式
下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例中,如图1所示,一种保持边界和纹理特征的三维建筑模型化简方法,主要包括以下步骤:
步骤1:模型预处理
解析不同来源格式的三维建筑模型数据,根据原始模型的索引和顶点信息,构造表面模型索引和模型三角网列表,要求每个顶点的空间坐标是唯一的。
表面模型索引主要是记录模型表面三角网的邻近信息,通过邻近信息可以得到每个顶点的相邻边、每条边相邻的三角网和每个三角网的顶点位置。
表面模型三角网列表主要记录每个三角网对应的顶点的空间坐标、纹理坐标和纹理信息。
如果一条边相邻的面的数目为1,则表示该边为边界。通过模型预处理可以提高计算的速度,为后续的处理打下基础。
步骤2:计算三维建筑模型二次误差
计算每个顶点的二次误差,根据模型的三角网列表,假设ax+by+cz+d=0为三角形的平面方程。v的所有三角形构成一个集合,称为v的相关面集,记为f(v):
f(v)={(a,b,c,d)|ax+by+cz+d=0,a2+b2+c2=1} (1)
令p=[a,b,c,d]T,又定义顶点v到模型中面片集合f(v)的二次误差Δ′(v)为顶点v到面片集合f(v)距离的平方和。其中Δ(v)可由下式计算得到:
其中:
如果其相邻的三角网小于1,则改边为边界,则该边加惩罚值ε,更新二次误差排序,依次边计算折叠误差。
步骤3:三维建筑模型几何化简
根据三维建筑模型的边化简误差,对误差排序,依次化简每个边,需要做法线和面积验证。如图4所示,在化简过程中,可能导致与该边相关联的三角面相互重叠或者三角面方向翻转的现象,比较与此边相关联三角面的法向在折叠前后的变化情况,如果变化过大,则不对该边进行化简。面积验证是为防止图形化简之后,三维建筑模型的边界轮廓可变化太大,计算化简之前边邻近的三角网面积ΔS,并计算化简之后三角网的面积和ΔS1:
如果变化率超过1.3,则将该边加惩罚值ε/2,更新误差二次误差列表,继续进行边化简。
步骤4:三维建筑模型纹理生成
模型化简之后,三维建筑模型的几何结构发生变化,将分别使相机依次垂直对准更新的三角面,采用RTT技术并重新绘制变化的三角网场景,渲染到帧缓存中的纹理只包含当前化简面的纹理,经过纹理输出便能够得到建筑物各个面纹理,以及每个顶点的新纹理坐标。如图5所示,红色表示一个新生成的三角形,将三角网做旋转和便宜,并计算在新的纹理中的纹理坐标。
步骤5:三维建筑模型纹理合并
模型化简到指定数量的面之后,多张纹理还需要经过纹理拼合才能得到最终的纹理集。由于每一个面纹理和最终需要得到的纹理集均为矩形纹理。因此,纹理拼合的实质是在一个既定矩形范围内如何合理地排放各种不同大小的纹理,并且使得遗留区域最小,即如何最大化地利用既定的纹理空间。
二维矩形优化排样的实质是一个组合优化的二维布局问题,从计算复杂性来看,是一个多项式复杂程度的非确定性问题,本发明基于最低水平线的择优插入算法拼合纹理。在排序过程中,按照面积优先的原则将各个三角面纹理进行降序排列,如下式所示,其中Tn为待排纹理,即最大的纹理优先进行拼合:
Tn={T1,T2,T3…|(ST1>ST2>ST3…)} (7)
设置初始的最低水平线为大纹理的最下面的边。每当要排入一个纹理,就在水平线集中选取最低的一段水平线。如有数段,则选取最左边的一段,判断该段线的长度是否大于或等于要排纹理的长度或宽度。若是,则将该纹理在此位置排放,同时更新水平线。否则,将余下的纹理中可以放入最低水平线的所有纹理进行比较,选择长度或宽度最接近最低水平线长度的纹理Ti放到最低水平线上,如下式所示:
L(Ti)-L≤min(L(Tn)-L) (8)
如果没有小于最低水平线长度的纹理,则将最低水平线提升至与高度较低的一段平齐,并更新纹理的水平线。在纹理排放的过程中,需要记录下每张小纹理的尺寸,在纹理集中左下角的位置和是否旋转900等信息。若排样失败,即无法将模型的纹理拼合到一张大纹理之中,则需将每张小纹理尺寸适当减小。
本发明提供的上述装置可以是中国测绘科学研究院自主研发的NewMap World。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (1)
1.一种保持结构和纹理特征的三维建筑模型化简方法,其特征在于,包括以下步骤:
A、解析各种不同来源格式的三维建筑模型数据,构造表面模型索引和表面模型三角网列表;
其中表面模型索引是记录模型表面三角网的邻近信息,通过邻近信息得到每个顶点相邻的边和三角网,以及每条边的相邻的三角网;
表面模型三角网列表记录每个三角网对应的顶点的空间坐标、纹理坐标和纹理信息;
B、根据三角网邻近信息,计算每个顶点的二次误差,从而计算每条边的二次误差,如果一条边相邻的面的数目为1,则表示该边为边界,加入惩罚值ε;将二次误差按照大小进行排序,依次化简每条边,并计算新的二次误差大小,并加入二次误差列表中排序,并进行到步骤C,否则放弃该次化简,进入到步骤D;
C、法线和面积验证:比较与此边相关联三角面的法向在折叠前后的变化情况,如果变化过大,则不对该边进行化简;计算边化简之后相邻的三角网的面积和原始的相邻面的面积,如果化简之后相邻的三角网的面积和原始的相邻面的面积的比值超过1.3,则取消该次化简,并给该边加惩罚值ε/2,更新二次误差列表,进行步骤D;
D、在边化简的时候,计算相邻的三角网和化简之后的表面模型三角网列表,采用RTT方法,计算新顶点的空间坐标和纹理坐标,并更新表面模型三角网列表中对应的纹理信息,以及新的顶点和纹理坐标;
E、选择二次误差较小的边进行化简,重复A-D的步骤,反复循环化简到指定的三角网数目为止;
F、三维建筑模型渲染完成之后,输出每个三角网的纹理,并采用行列式扫描的方式,将纹理进行打包,输出为一整张纹理,从而完成三维建筑模型的化简;
G、根据不同LOD的细节程度需求,重复A-F步骤,计算出要化简之后的三角形的数目,生成不同细节层次的三维建筑模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610885876.8A CN107918957B (zh) | 2016-10-11 | 2016-10-11 | 一种保持结构和纹理特征的三维建筑模型化简方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610885876.8A CN107918957B (zh) | 2016-10-11 | 2016-10-11 | 一种保持结构和纹理特征的三维建筑模型化简方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107918957A CN107918957A (zh) | 2018-04-17 |
CN107918957B true CN107918957B (zh) | 2021-12-10 |
Family
ID=61892559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610885876.8A Active CN107918957B (zh) | 2016-10-11 | 2016-10-11 | 一种保持结构和纹理特征的三维建筑模型化简方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107918957B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109255836B (zh) * | 2018-08-23 | 2023-02-10 | 厦门五星珑科技有限公司 | 一种工件的排包系统及其排包方法 |
CN109544672A (zh) * | 2018-11-30 | 2019-03-29 | 胡翰 | 一种三维建筑模型纹理映射方法及装置 |
CN109711035A (zh) * | 2018-12-21 | 2019-05-03 | 成都四方伟业软件股份有限公司 | 城市模型构建方法及装置 |
CN111179414B (zh) * | 2019-12-30 | 2020-09-25 | 中国电力企业联合会电力建设技术经济咨询中心 | 一种地形lod的生成方法 |
CN113327315A (zh) * | 2021-06-11 | 2021-08-31 | 武汉天远视科技有限责任公司 | 多层次细节模型生成方法和装置 |
CN113449363B (zh) * | 2021-06-16 | 2023-09-26 | 中国工程物理研究院计算机应用研究所 | 一种面向数值模拟的大规模城市模型可计算处理方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0117157D0 (en) * | 2001-07-16 | 2001-09-05 | Imec Inter Uni Micro Electr | Extraction, hierarchical representation and flexible compression of surface meshes derived from 3D data |
CN102306394A (zh) * | 2011-08-30 | 2012-01-04 | 北京理工大学 | 基于外观保持的三维模型简化方法 |
CN103714577B (zh) * | 2014-01-23 | 2015-04-01 | 焦点科技股份有限公司 | 一种适用于带纹理模型的三维模型简化方法 |
CN103927424B (zh) * | 2014-05-05 | 2017-08-11 | 曾志明 | 利用体网格简化建筑三维模型结构的方法 |
-
2016
- 2016-10-11 CN CN201610885876.8A patent/CN107918957B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107918957A (zh) | 2018-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107918957B (zh) | 一种保持结构和纹理特征的三维建筑模型化简方法 | |
CN108961411A (zh) | 一种保持外观特征的复杂三维建筑物模型简化方法 | |
CN102509339B (zh) | 一种带纹理约束的三维模型顶点聚类简化方法 | |
CN103714577B (zh) | 一种适用于带纹理模型的三维模型简化方法 | |
JP2013507679A (ja) | 三次元物体モデルの3dプリントが可能な方法及びシステム | |
CN107170033A (zh) | 基于激光雷达技术的智慧城市3d实景地图系统 | |
CN104835202A (zh) | 一种三维虚拟场景快速构建方法 | |
US20240153123A1 (en) | Isogeometric Analysis Method Based on a Geometric Reconstruction Model | |
CN116229015B (zh) | 一种基于2N-Tree带附面层的贴体笛卡尔网格生成方法 | |
CN103871102A (zh) | 一种基于高程点和道路轮廓面的道路三维精细建模方法 | |
CN101408990B (zh) | 一种城市建筑模型的渐进压缩和传输方法 | |
KR101591427B1 (ko) | 3차원 지형 영상 가시화에서의 적응형 렌더링 방법 | |
CN104318605A (zh) | 矢量实线与三维地形的并行贴合渲染方法 | |
CN115082699B (zh) | 一种轮廓形状提取方法、装置、电子设备及存储介质 | |
CN115393548A (zh) | 一种适用于三维重建的网格纹理化简算法 | |
JP4619504B2 (ja) | 3次元デジタル地図作成装置 | |
CN114138265B (zh) | 一种基于数字孪生的可视化方法 | |
Hrozek et al. | Digital preservation of historical buildings using virtual reality technologies | |
Robles-Ortega et al. | Efficient visibility determination in urban scenes considering terrain information | |
CN109448135A (zh) | 一种基于多源数据的三维模型修补的方法 | |
Sugihara et al. | Roof report from automatically generated 3D building models by straight skeleton computation | |
Sugihara et al. | Automatic generation of a 3D terrain model by straight skeleton computation | |
CN112819108A (zh) | 一种多源异构模型的切片融合方法、系统及存储介质 | |
Sugihara | Straight skeleton for automatic generation of 3-D building models with general shaped roofs | |
CN100440258C (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 |