CN113379924A - 一种三维模型简化方法、装置及存储介质 - Google Patents
一种三维模型简化方法、装置及存储介质 Download PDFInfo
- Publication number
- CN113379924A CN113379924A CN202110733997.1A CN202110733997A CN113379924A CN 113379924 A CN113379924 A CN 113379924A CN 202110733997 A CN202110733997 A CN 202110733997A CN 113379924 A CN113379924 A CN 113379924A
- Authority
- CN
- China
- Prior art keywords
- fitting
- segmentation
- boundary
- region
- vertex
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
-
- 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
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Architecture (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供一种三维模型简化方法、装置及存储介质,涉及家居模型技术领域。该方法包括:获取家具的三角网格模型;对所述三角网格模型进行区域分割,以得到多个分块区域;识别所述分块区域的分割边界,并对所述分割边界进行顶点简化;对简化后的边界顶点进行三角剖分,以得到简化模型,通过区域分割和自适应分割合理确定减面目标,维护原始模型的拓扑结构,保证网格质量,解决现有方法容易导致网格模型拓扑结构被破坏、局部特征丢失且三角面片质量难以保证的问题。
Description
技术领域
本申请涉及家居模型技术领域,具体而言,涉及一种三维模型简化方法、装置及存储介质。
背景技术
精细的三维模型会增加模型存储、计算及绘制成本,因此需要进行模型简化。在简化的同时,应该较好地保持原模型的拓扑结构和重要外形特征。
现有的方法,通过人工设参的方式设置减面目标,即输入剩下多少面。简化后仅仅利用局部的几何信息对网格模型进行表达,往往会导致网格模型拓扑结构被破坏,并导致和原始模型差别较大。若简化过度还会导致局部几何特征难以保持,三角面片质量将难以保证,容易出现极狭长的三角形,在展示时容易出现破面的现象,难以满足显示的要求。
发明内容
本申请实施例的目的在于提供一种三维模型简化方法、装置及存储介质,通过区域分割和自适应分割合理确定减面目标,维护原始模型的拓扑结构,保证网格质量,解决现有方法容易导致网格模型拓扑结构被破坏、局部特征丢失且三角面片质量难以保证的问题。
本申请实施例提供了一种三维模型简化方法,所述方法包括:
获取家具的三角网格模型;
对所述三角网格模型进行区域分割,以得到多个分块区域;
识别所述分块区域的分割边界,并对所述分割边界进行顶点简化;
对简化后的边界顶点进行三角剖分,以得到简化模型。
在上述实现过程中,通过区域分割和自适应分割对三维模型进行平面特征提取,分割后得到的拟合平面和分割边界代表了原始网格的整体特征,利用这些特征进行简化,可以保持原始模型的重要特征,从而保维护原始模型的拓扑结构,保证网格质量,解决现有方法容易导致网格模型拓扑结构被破坏、局部特征丢失且三角面片质量难以保证的问题。
进一步地,所述对所述三角网格模型进行区域分割,以得到多个分块区域,包括:
对所述三角网格模型进行初始区域分割,以得到初始分割结果;
基于所述初始分割结果进行自适应区域分割,以得到多个分块区域。
在上述实现过程中,根据拟合精度,自适应的确定减面目标,可以自适应地控制分割和拟合程度,从而控制减面程度,避免人为指定减面目标。
进一步地,所述对所述三角网格模型进行初始区域分割,以得到初始分割结果,包括:
随机选取任意预设数量个数的选定三角形,并将每个选定三角形所在平面作为对应区域的初始拟合平面;
根据三角网格模型中的其他三角形与所述初始拟合平面的接近程度,将逼近同一初始拟合平面的其他三角形聚成一类,以得到多个聚类;
所述其他三角形与所述初始拟合平面的接近程度利用拟合误差表示:
其中,t表示其他三角形,Pi表示初始拟合平面;ni表示其他三角形的法向量,i表示其他三角形的个数,n(x)表示初始拟合平面的法向量;
对每个所述聚类重新进拟合以得到最佳拟合平面;
重复进行聚类和拟合过程,直到全局拟合误差最小为止,以得到分块区域;
每个区域的区域拟合误差表示为:
其中,Ri表示分割好的第i个区域;tj表示区域Ri中的第j个三角形;全局拟合误差表示为:
其中,n表示所有区域的总数量。
在上述实现过程中,通过区域分割将模型划分成多个近似平面的分块区域,并得到每个分块区域的最佳拟合平面,具体通过面片聚类即将连通且近似在同一平面的三角形面片聚成一类,对于每一类,都计算出拟合平面,相对于顶点聚类来说,更能够把握模型的平面特征。
进一步地,所述基于所述初始分割结果进行自适应区域分割,以得到多个分块区域,包括:
对所述初始分割结果进行判断,以确定所述预设数量的大小;
若所述预设数量较小,则进行新区域插入操作;
若所述预设数量较大,则进行相邻区域合并操作。
在上述实现过程中,如果预设数量较小,说明分割不彻底,相差较远且不在一个平面内的两个分块区域可能被分成了一个区域,可以将两者分开;若预设数量较大,说明近似位于同一个平面的区域被分成了多个区域,可以将这些区域进行合并,达到合理调整分块区域的目的。
进一步地,所述若所述预设数量较小,则进行新区域插入操作,包括:
若所述预设数量较小,则获取区域拟合误差最大的分块区域;
分别获取所述分块区域中拟合误差最大的最大三角形和拟合误差最小的最小三角形;
若所述最大三角形的拟合误差大于预设的插入阈值;
则将所述最大三角形和最小三角形分别作为种子区域,进行区域生长。
在上述实现过程中,设置插入阈值,插入的次数由插入阈值的大小确定,可自适应的控制分割块数和分割程度。
进一步地,所述若所述预设数量较大,则进行相邻区域合并操作,包括:
遍历相邻的分块区域,并获取每个分块区域的拟合平面的法向量;
判断两个法向量的夹角是否小于预设的第一合并阈值;
若是,则将相邻的两个分块区域进行合并,并重新进行平面拟合。
在上述实现过程中,作为合并操作的一种实现方式,可以通过拟合平面的法向量的接近程度来判断,若两个平面的法向量很接近,则可以进行合并操作,利用夹角的第一合并阈值来确定分割块数和分割程度。
进一步地,所述若所述预设数量较大,则进行相邻区域合并操作,包括:
遍历相邻的分块区域,并计算合并后增大的拟合误差量,所述拟合误差量为合并后的区域拟合误差,减去相邻的分块区域的区域拟合误差之和;
判断所述拟合误差量是否大于预设的第二合并阈值;
若否,则将相邻的两个分块区域进行合并,并重新进行平面拟合。
在上述实现过程中,作为合并操作的一种实现方式,可以通过合并后拟合误差的变化情况来判断是否合并,若合并后的拟合误差量小于第二合并阈值,则可以进行合并操作,利用拟合误差量的第二合并阈值来确定分割块数和分割程度。
进一步地,所述识别所述分块区域的分割边界,并对所述分割边界进行顶点简化,包括:
识别分割边界上的边界顶点;
将任意边界顶点作为待判定顶点,判断所述待判定顶点与相邻的两个边界顶点之间的夹角是否大于预设的夹角阈值;
若是,则剔除所述待判定顶点;
若否,则保留所述待判定顶点,以实现顶点简化。
在上述实现过程中,通过夹角阈值有选择的保留分块区域边界上的顶点,剔除对边界轮廓影响较小的顶点且不影响其拓扑结构,达到简化目的。
本申请实施例还提供一种三维模型简化装置,所述装置包括:
数据获取模块,用于获取家具的三角网格模型;
区域分割模块,用于对所述三角网格模型进行区域分割,以得到多个分块区域;
顶点简化模块,用于识别所述分块区域的分割边界,并对所述分割边界进行顶点简化;
三角化模块,用于对简化后的边界顶点进行三角剖分,以得到简化模型。
在上述实现过程中,通过区域分割和自适应分割对三维模型进行平面特征提取,分割后得到的拟合平面和分割边界代表了原始网格的整体特征,利用这些特征进行简化,可以保持原始模型的重要特征,从而保维护原始模型的拓扑结构,保证网格质量,解决现有方法容易导致网格模型拓扑结构被破坏、局部特征丢失且三角面片质量难以保证的问题。
本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的三维模型简化方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种三维模型简化方法的流程图;
图2(a)-图2(b)为本申请实施例提供的简化前后模型拓扑结构改变示意图;
图3(a)-图3(b)为本申请实施例提供的现有方法处理前后局部几何特征丢失示意图;
图4为本申请实施例提供的初始区域分割流程图;
图5为本申请实施例提供的插入操作流程图;
图6为本申请实施例提供的其中一种合并操作的流程图;
图7为本申请实施例提供的另一种合并操作的流程图;
图8(a)-8(b)为本申请实施例提供的原始模型和减面后模型;
图9为本申请实施例提供的简化过程流程图;
图10为本申请实施例提供的区域分割后的模型示意图;
图11为图10对应的分割边界示意图;
图12为本申请实施例提供的模型的原始边界顶点示意图;
图13为本申请实施例提供的简化后的边界顶点示意图;
图14为本申请实施例提供的图3(a)的减面后模型的局部圆角区示意图;
图15为本申请实施例提供的三维模型简化装置的结构框图;
图16为本申请实施例提供的三维模型简化装置的具体结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参看图1,图1为本申请实施例提供的一种三维模型简化方法的流程图。该方法应用于三角网格模型的简化。现有方法进行模型简化,往往只考虑三角面片局部的特征,对边进行不合理的删除,容易导致模型拓扑结构的改变,出现洞和三角形翻转等现象,从而影响模型的展示效果。如图2(a)-图2(b)所示,为简化前后模型拓扑结构改变示意图,模型一角和侧边出现洞;例如,圆角区域简化过度,变形严重,局部几何特征丢失,如图3(a)-图3(b)所示,为局部几何特征丢失示意图,原模型的圆角特征丢失。三角面片质量难以保证,容易出现极狭长的三角形,出现破面的现象,影响展示效果。
三角网格模型(三维模型)由几何信息(顶点位置)和拓扑信息(点,边,三角形面片)构成。三角网格模型简化即在保持原模型几何形状不变的前提下,采用适当的算法减少该模型的面片数、边数和顶点数。本申请通过区域分割对模型进行平面特征提取,即把模型分割成多个近似共面的区域。分割后得到的拟合平面和分割边界代表了原始网格的整体特征,利用这些特征进行简化,可以保持原始模型的重要特征。
该方法具体包括以下步骤:
步骤S100:获取家具的三角网格模型;
将沙发、枕头和床等家具模型看成是由多个平面构成的三维模型,将家具模型按平面进行分割,就是将家具模型划分成多个近似平面的区域,并得到每个区域的拟合平面。区域(面)和区域边界(边)就构成了家具模型的特征。所谓区域分割,在本申请中采用面片聚类,相比于顶点聚类更能把握家具模型的平面特征,把连通且近似在同一平面的三角形面片聚成一类,对于每一类,都计算出拟合平面。
步骤S200:对所述三角网格模型进行区域分割,以得到多个分块区域;
该步骤具体包括:
步骤S210:对所述三角网格模型进行初始区域分割,以得到初始分割结果;
首先需要进行初始化聚类和拟合平面,然后通过交替迭代的方法,逐步优化聚类和拟合平面。如图4所示,为初始区域分割流程图,具体包括以下步骤:
步骤S211:随机选取任意预设数量个数的选定三角形,并将每个选定三角形所在平面作为对应区域的初始拟合平面;
例如,给定目标是把家具模型分割成k块,并初始化分块和拟合结果:随机选取k个三角形作为选定三角形,分配给k个区域,把每个选定三角形所在的平面作为该区域的初始拟合平面。其中,k的大小可以为总的三角形个数的三分之一,也可以是其他值,不做任何限定。
步骤S212:根据三角网格模型中的其他三角形与所述初始拟合平面的接近程度,将逼近同一初始拟合平面的其他三角形聚成一类,以得到多个聚类;
该步骤为聚类过程:固定k个初始拟合平面,根据其他三角形与初始拟合平面的接近程度,把逼近同一个初始拟合平面的那些其他三角形聚成一类。使用区域增长方法来划分区域,首先选择一组三角形面片(选定三角形)作为种子区域,然后遍历这些种子区域使得它们生长,直到所有的三角形面片都被分配到某个区域。
其中,三角形与拟合平面的接近程度是可通过拟合误差来度量,拟合误差越小二者越接近。三角形面片的拟合误差是三角面片t的法向量与拟合平面Pi之间的法向量偏差,定义如下:
其中,t表示其他三角形,Pi表示拟合平面;ni表示其他三角形的法向量,n(x)表示拟合平面的法向量,i表示其他三角形的个数。
步骤S213:对每个所述聚类重新进行拟合以得到最佳拟合平面;
该步骤为拟合过程,固定k个聚类,对每一类重新计算最佳拟合平面,具体计算过程可以采用最小二乘拟合法,该方法为现有技术,在此不再赘述。
步骤S214:重复进行聚类和拟合过程,直到全局拟合误差最小为止,以得到分块区域;
重复步骤S212和步骤S213,进行交替迭代,直到收敛。
区域拟合误差代表了区域和拟合平面的逼近程度,误差越小,说明区域和拟合平面越靠近。每个区域的区域拟合误差为该区域所有三角形拟合误差的和。每个区域的区域拟合误差表示为:
其中,i和j均表示计数器;Ri表示分割好的第i个区域;tj表示区域Ri中的第j个三角形;
全局拟合误差表示为:
其中,n表示所有区域的总数量。
全局拟合误差:对于每个三角形tj,它被分配给了一个区域Ri,每个区域Ri均有一个最优拟合平面Pi,把每个三角形tj到对应最优拟合平面的误差累加起来就是全局拟合误差。
步骤S220:基于初始分割结果进行自适应区域分割,以得到多个分块区域。
经过步骤S211-步骤S214的分割步骤,通过收敛计算可以降低全局拟合误差。对于事先给定的分块区域数k,上述方法可以得到一组分割结果。但是如果k给得过大或过小,都可能使分割结果不够准确。所以可以把上述结果作为初始分割结果,在此基础上进行调整,进行自适应分割。
自适应分割包括插入操作和合并操作两种,若所述预设数量较小,则进行新区域插入操作,若所述预设数量较大,则进行相邻区域合并操作,如图5所示,为插入操作流程图,具体地:
步骤S221:若所述预设数量较小,则获取区域拟合误差最大的分块区域;
步骤S222:分别获取所述分块区域中拟合误差最大的最大三角形和拟合误差最小的最小三角形;
步骤S223:若所述最大三角形的拟合误差大于预设的插入阈值,则将所述最大三角形和最小三角形分别作为种子区域,进行区域生长。
如果初始给定的分块数k过小,即分割不彻底,相差较远并不在一个拟合平面内的两个区域可能被分到了同一个分块区域,这种情况下需要插入一个新的区域即将离拟合平面最远和最近的三角形分别作为种子区域,进行区域生长,最后变成两个分块区域。
首先找到拟合情况最差的区域,也就是区域拟合误差最大的分块区域(区域拟合误差最大的)。计算出该分块区域中所有三角形的拟合误差,找到拟合误差最大和最小的三角形(最大三角形和最小三角形),也就是离拟合平面最远的三角形和最近的三角形,分别作为种子三角形,进行区域生长。可以选定一个插入阈值,如果拟合最差的区域拟合误差仍然小于插入阈值,说明所有区域的拟合效果都达到理想情况,就不进行插入操作;否则可进行插入操作。对于插入阈值的选择在此不做限定,例如可以是模型包围盒尺寸的百分之一。
若所述预设数量较大,则进行相邻区域合并操作,具体地:
如果初始给定的分块区域数k过大,那么近似位于同一平面的三角形被分割成了多个区域,这时需要对这些区域进行合并。合并操作是把两个类聚到一起变成一个新的类,并用一个新的平面来拟合这个新类。
作为其中一种实施方式,如图6所示,为其中一种合并操作的流程图,合并操作具体可以包括以下步骤:
步骤S224:遍历相邻的分块区域,并获取每个分块区域的拟合平面的法向量;
步骤S225:判断两个法向量的夹角是否小于预设的第一合并阈值;
步骤S226:若是,则将相邻的两个分块区域进行合并,并重新进行平面拟合。
遍历所有相邻的分块区域(区域对),如果区域对的拟合平面的法向量很接近,那么可以进行合并操作。给定一个第一合并阈值,若平面法向的夹角小于第一合并阈值,可以合并,否则不合并。
作为另外一种实施方式,如图7所示,为另一种合并操作的流程图,合并操作具体可以包括以下步骤:
步骤S227:遍历相邻的分块区域,并计算合并后增大的拟合误差量,所述拟合误差量为合并后的区域拟合误差,减去相邻的分块区域的区域拟合误差之和;
步骤S228:判断所述拟合误差量是否大于预设的第二合并阈值;
步骤S229:若否,则将相邻的两个分块区域进行合并,并重新进行平面拟合。
如果区域对的拟合平面不相同,那么合并这两个区域必然会带来拟合误差的增大。所以判断是否需要合并操作的另外一种方法是,遍历所有相邻区域对,计算合并这两个区域所增大的拟合误差量,也就是计算出用一个新平面拟合这两个区域的误差,减去原来两个区域的拟合误差之和。
如果合并所带来的误差大于给定阈值(第二合并阈值),那就不进行合并操作,否则进行合并。如果不止一对区域可以合并,那么选取增大的拟合误差量最小的那一对区域进行合并。同样,可以选取一个合并阈值,如果合并所带来的拟合误差量大于第二合并阈值,则进行合并,需要说明的是,对于合并次数并不进行限定,可以是多次合并。
合并后,对合并后的分块区域重新进行聚类和平面拟合,以得到最佳拟合平面。
进行一次插入操作,可以增加一个分块区域,一次合并操作可以减少一个分块区域。可以在原先给定分割块数算法的基础上进行调整,插入的次数可以由插入阈值来决定,合并的次数由合并阈值决定。通过给定插入阈值和分割阈值,可以自适应地控制分割程度,避免人为指定分割块数,使得分块区域的数量更加合理,符合家具模型的整体特征。
该方法,根据拟合精度,自适应地决定减面目标,通过设定插入阈值和合并阈值,可以自适应地控制分割和拟合程度,从而控制减面程度,避免人为指定减面目标。
如图8(a)-图8(b)所示,分别为原始模型和采用本方法得到的减面后模型,减面后,面数约为原来的五分之一。减面前后的模型对比说明,减面前后的效果差别很小,几何形状和拓扑结构都得以保持。根据拟合精度,自适应地决定减面目标,通过设定插入阈值和分割阈值,可以自适应地控制分割和拟合程度,从而控制减面程度,避免人为指定减面目标。
步骤S300:识别所述分块区域的分割边界,并对所述分割边界进行顶点简化;
如图9所示,为简化过程流程图,具体简化过程包括以下步骤:
步骤S301:识别分割边界上的边界顶点;
步骤S302:将任意边界顶点作为待判定顶点,判断所述待判定顶点与相邻的两个边界顶点之间的夹角是否大于预设的夹角阈值;
步骤S303:若是,则剔除所述待判定顶点;
步骤S304:若否,则保留所述待判定顶点,以实现顶点简化。
分割后的每个分块区域都近似平面,可以用平面来代替。那么只需要边界上的顶点就可以决定整个分块区域的形状。内部的顶点对这个区域的影响很小,所以可以全部剔除。
对于分块区域边界上的顶点(边界顶点):分割边界是相邻两个分块区域的分割线,即两个近似平面区域的分界线,代表了原始模型的边特征。按照新网格尽可能保持原网格特征的原则,分割边界需要被保持。也就是说,简化后网格的边界应该包含原始网格的分割边界。选取需要保留的顶点,原则是要保证边界形状和原来差别不大。如图10-图11所示,分别为区域分割后的模型示意图以及对应的分割边界示意图。
此外,在保证边界形状和原来差别不大的情况下,也可以进一步剔除对分割边界形状影响极小的边界顶点。计算分割边界上任意一个待判定顶点与相邻的两个边界顶点构成的夹角,例如夹角为180度,即三个边界顶点在一条直线上,则将位于中间的待判定顶点剔除,并不会影响整条分割边界,因此,夹角越接近180度的顶点,对边界轮廓的形状影响越小,贡献度越低。所以可以保证在保持边界形状的前提下,剔除影响不大的边界顶点,达到简化效果。
示例地,可以通过以下步骤实现:
第一步,识别分割区域边界上的边界顶点:如果一条边位于原始模型的边界,或者它相邻的两个面片所属的区域不同,那么它就被标记为分割区域的边界,对这些边界顶点进行重新标号;
第二步,有选择地保留分割区域边界上的顶点:选定夹角阈值,例如175度,保留夹角小于夹角阈值的边界顶点,并对它们赋予新的顶点标号;
第三步,对每个子区域的边界顶点按照标号进行逆时针或者顺时针排序,可获得简化后的边界顶点,如图12-图13所示,分别为模型的原始边界顶点示意图以及简化后的边界顶点示意图。
被保留的边界顶点构成了简化网格的所有边界顶点,所以简化后网格中的边界顶点都是原始模型中已有的边界顶点,容易维护拓扑结构,避免产生拓扑杂乱的情况,保证了简化前后拓扑结构的一致。网格表面的亏格(Genus)和流型(Manifold)在简化过程中保持不变,保持了拓扑结构。
步骤S400:对简化后的边界顶点进行三角剖分,以得到简化模型。
三角剖分可以通过Delaunay三角化实现,具体地:
把每个分块区域投影到对应的拟合平面上,在二维平面上分别进行Delaunay三角化,再将局部的三角剖分合并成全部的三角剖分,Delaunay三角化保证了没有出现狭长的三角形面片。其中,Delaunay三角化为现有技术,在此不再详细赘述。
该过程中,Delaunay三角化最大化了三角剖分中三角形的最小角,从而可以避免出现狭长的三角形,保证了网格质量。
如图14所示,为对应于图3(a)的减面后模型的局部圆角区示意图,由图可以看出,区别于现有方法,圆角区的局部几何特征得意保持。利用区域分割的结果辅助网格简化即对原始模型进行三维网格分割,提取分割边界,从而定义出原始模型的边特征,这样在进行三角网格简化后仍然能保持原始模型的一些重要几何特征,如圆角特征,使其得以保持。
本申请实施例还提供一种三维模型简化装置,如图15所示,为三维模型简化装置的结构框图,所述装置包括:
数据获取模块100,用于获取家具的三角网格模型;
区域分割模块200,用于对所述三角网格模型进行区域分割,以得到多个分块区域;
顶点简化模块300,用于识别所述分块区域的分割边界,并对所述分割边界进行顶点简化;
三角化模块400,用于对简化后的边界顶点进行三角剖分,以得到简化模型。
如图16所示,为三维模型简化装置的具体结构框图,其中,区域分割模块200包括初始区域分割模块210和自适应分割模块220。
初始区域分割模块210包括:
初始平面确定模块211,用于随机选取任意预设数量个数的选定三角形,并将每个选定三角形所在平面作为对应区域的初始拟合平面;
聚类模块212,用于根据三角网格模型中的其他三角形与所述初始拟合平面的接近程度,将逼近同一初始拟合平面的其他三角形聚成一类,以得到多个聚类;
拟合模块213,用于对每个所述聚类重新进行拟合以得到最佳拟合平面;
迭代模块214,用于重复进行聚类和拟合过程,直到全局拟合误差最小为止,以得到分块区域。
自适应分割模块220包括插入模块221和第一合并模块222和第二合并模块223。
其中,插入模块221用于:
若所述预设数量较小,则获取区域拟合误差最大的分块区域;
分别获取所述分块区域中拟合误差最大的最大三角形和拟合误差最小的最小三角形;
若所述最大三角形的拟合误差大于预设的插入阈值,则将所述最大三角形和最小三角形分别作为种子区域,进行区域生长。
第一合并模块222用于:
遍历相邻的分块区域,并获取每个分块区域的拟合平面的法向量;
判断两个法向量的夹角是否小于预设的第一合并阈值;
若是,则将相邻的两个分块区域进行合并,并重新进行平面拟合。
第二合并模块223用于:
遍历相邻的分块区域,并计算合并后增大的拟合误差量,所述拟合误差量为合并后的区域拟合误差,减去相邻的分块区域的区域拟合误差之和;
判断所述拟合误差量是否大于预设的第二合并阈值;
若否,则将相邻的两个分块区域进行合并,并重新进行平面拟合。
顶点简化模块300包括:
识别模块301,用于识别分割边界上的边界顶点;
判断模块302,用于将任意边界顶点作为待判定顶点,判断所述待判定顶点与相邻的两个边界顶点之间的夹角是否大于预设的夹角阈值;
若是,则剔除所述待判定顶点;
若否,则保留所述待判定顶点,以实现顶点简化。
本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的三维模型简化方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种三维模型简化方法,其特征在于,所述方法包括:
获取家具的三角网格模型;
对所述三角网格模型进行区域分割,以得到多个分块区域;
识别所述分块区域的分割边界,并对所述分割边界进行顶点简化;
对简化后的边界顶点进行三角剖分,以得到简化模型。
2.根据权利要求1所述的三维模型简化方法,其特征在于,所述对所述三角网格模型进行区域分割,以得到多个分块区域,包括:
对所述三角网格模型进行初始区域分割,以得到初始分割结果;
基于所述初始分割结果进行自适应区域分割,以得到多个分块区域。
3.根据权利要求2所述的三维模型简化方法,其特征在于,所述对所述三角网格模型进行初始区域分割,以得到初始分割结果,包括:
随机选取任意预设数量个数的选定三角形,并将每个选定三角形所在平面作为对应区域的初始拟合平面;
根据三角网格模型中的其他三角形与所述初始拟合平面的接近程度,将逼近同一初始拟合平面的其他三角形聚成一类,以得到多个聚类;
所述其他三角形与所述初始拟合平面的接近程度利用拟合误差表示:
其中,t表示其他三角形,Pi表示初始拟合平面;ni表示其他三角形的法向量,i表示其他三角形的个数,n(x)表示初始拟合平面的法向量;
对每个所述聚类重新进拟合以得到最佳拟合平面;
重复进行聚类和拟合过程,直到全局拟合误差最小为止,以得到分块区域;
每个区域的区域拟合误差表示为:
其中,Ri表示分割好的第i个区域;tj表示区域Ri中的第j个三角形;
全局拟合误差表示为:
其中,n表示所有区域的总数量。
4.根据权利要求3所述的三维模型简化方法,其特征在于,所述基于所述初始分割结果进行自适应区域分割,以得到多个分块区域,包括:
对所述初始分割结果进行判断,以确定所述预设数量的大小;
若所述预设数量较小,则进行新区域插入操作;
若所述预设数量较大,则进行相邻区域合并操作。
5.根据权利要求4所述的三维模型简化方法,其特征在于,所述若所述预设数量较小,则进行新区域插入操作,包括:
若所述预设数量较小,则获取区域拟合误差最大的分块区域;
分别获取所述分块区域中拟合误差最大的最大三角形和拟合误差最小的最小三角形;
若所述最大三角形的拟合误差大于预设的插入阈值,则将所述最大三角形和最小三角形分别作为种子区域,进行区域生长。
6.根据权利要求4所述的三维模型简化方法,其特征在于,所述若所述预设数量较大,则进行相邻区域合并操作,包括:
遍历相邻的分块区域,并获取每个分块区域的拟合平面的法向量;
判断两个法向量的夹角是否小于预设的第一合并阈值;
若是,则将相邻的两个分块区域进行合并,并重新进行平面拟合。
7.根据权利要求4所述的三维模型简化方法,其特征在于,所述若所述预设数量较大,则进行相邻区域合并操作,包括:
遍历相邻的分块区域,并计算合并后增大的拟合误差量,所述拟合误差量为合并后的区域拟合误差,减去相邻的分块区域的区域拟合误差之和;
判断所述拟合误差量是否大于预设的第二合并阈值;
若否,则将相邻的两个分块区域进行合并,并重新进行平面拟合。
8.根据权利要求4所述的三维模型简化方法,其特征在于,所述识别所述分块区域的分割边界,并对所述分割边界进行顶点简化,包括:
识别分割边界上的边界顶点;
将任意边界顶点作为待判定顶点,判断所述待判定顶点与相邻的两个边界顶点之间的夹角是否大于预设的夹角阈值;
若是,则剔除所述待判定顶点;
若否,则保留所述待判定顶点,以实现顶点简化。
9.一种三维模型简化装置,其特征在于,所述装置包括:
数据获取模块,用于获取家具的三角网格模型;
区域分割模块,用于对所述三角网格模型进行区域分割,以得到多个分块区域;
顶点简化模块,用于识别所述分块区域的分割边界,并对所述分割边界进行顶点简化;
三角化模块,用于对简化后的边界顶点进行三角剖分,以得到简化模型。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1至8任一项所述的三维模型简化方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110733997.1A CN113379924B (zh) | 2021-06-30 | 2021-06-30 | 一种三维模型简化方法、装置及存储介质 |
PCT/CN2022/074862 WO2023273339A1 (zh) | 2021-06-30 | 2022-01-29 | 一种三维模型简化方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110733997.1A CN113379924B (zh) | 2021-06-30 | 2021-06-30 | 一种三维模型简化方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113379924A true CN113379924A (zh) | 2021-09-10 |
CN113379924B CN113379924B (zh) | 2023-06-09 |
Family
ID=77580285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110733997.1A Active CN113379924B (zh) | 2021-06-30 | 2021-06-30 | 一种三维模型简化方法、装置及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113379924B (zh) |
WO (1) | WO2023273339A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113838212A (zh) * | 2021-09-22 | 2021-12-24 | 杭州趣村游文旅集团有限公司 | 一种数字乡村三维模型的区块拼接方法 |
CN114399583A (zh) * | 2021-12-03 | 2022-04-26 | 聚好看科技股份有限公司 | 一种基于几何的三维模型拼接方法及装置 |
CN114494641A (zh) * | 2022-01-06 | 2022-05-13 | 广州市城市规划勘测设计研究院 | 一种三维模型轻量化方法及装置 |
WO2023273339A1 (zh) * | 2021-06-30 | 2023-01-05 | 广东三维家信息科技有限公司 | 一种三维模型简化方法、装置及存储介质 |
CN117115391A (zh) * | 2023-10-24 | 2023-11-24 | 中科云谷科技有限公司 | 模型更新方法、装置、计算机设备及计算机可读存储介质 |
CN117557740A (zh) * | 2024-01-10 | 2024-02-13 | 四川见山科技有限责任公司 | 三维模型分割层级切换方法、装置、电子设备及存储介质 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116186864B (zh) * | 2023-04-24 | 2023-07-07 | 中南冶勘资源环境工程有限公司 | 一种基于bim技术的深基坑模型快速建模方法及系统 |
CN116740102B (zh) * | 2023-06-15 | 2024-04-30 | 广州大学 | 一种基于测地循环的流形人脸网格分割与提取方法 |
CN116977530A (zh) * | 2023-07-11 | 2023-10-31 | 优酷网络技术(北京)有限公司 | 三维模型的处理方法、装置、电子设备及介质 |
CN116580048B (zh) * | 2023-07-12 | 2023-09-26 | 武汉峰岭科技有限公司 | 一种提取房屋倾斜模型上直角房屋的轮廓线的方法及系统 |
CN117113478A (zh) * | 2023-07-28 | 2023-11-24 | 中水淮河规划设计研究有限公司 | 一种bim模型轻量化方法 |
CN117251906A (zh) * | 2023-09-01 | 2023-12-19 | 深圳图为技术有限公司 | 一种流程工厂的三维设备模型轻量化方法和系统 |
CN117058668B (zh) * | 2023-10-10 | 2024-02-02 | 中冶武勘智诚(武汉)工程技术有限公司 | 一种三维模型减面评估方法及装置 |
CN117315375B (zh) * | 2023-11-20 | 2024-03-01 | 腾讯科技(深圳)有限公司 | 虚拟部件分类方法、装置、电子设备及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101877147A (zh) * | 2010-06-29 | 2010-11-03 | 浙江大学 | 三维三角形网格模型的简化算法 |
US20140368498A1 (en) * | 2013-06-12 | 2014-12-18 | Google Inc. | Shape Preserving Mesh Simplification |
CN107085865A (zh) * | 2017-05-12 | 2017-08-22 | 杭州电子科技大学 | 应用于有限元分析的四边形分割方法 |
CN108961411A (zh) * | 2018-07-02 | 2018-12-07 | 南京大学 | 一种保持外观特征的复杂三维建筑物模型简化方法 |
CN109801299A (zh) * | 2019-01-22 | 2019-05-24 | 中国科学院大学 | 基于二次曲面拟合的模型的交互式分割方法、系统、装置 |
CN111696111A (zh) * | 2020-06-15 | 2020-09-22 | 重庆大学 | 一种基于ssdf衰减图聚类的3d模型网格分割方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002342785A (ja) * | 2001-05-15 | 2002-11-29 | Ricoh Co Ltd | 三角形メッシュ簡単化装置およびプログラム |
CN106504330B (zh) * | 2016-09-21 | 2019-05-24 | 中国科学院自动化研究所 | 基于最小角消除的三角形网格曲面的重新网格化方法 |
CN109785443B (zh) * | 2018-12-21 | 2023-05-23 | 博迈科海洋工程股份有限公司 | 一种针对大型海洋工程装备的三维模型简化方法 |
CN113379924B (zh) * | 2021-06-30 | 2023-06-09 | 广东三维家信息科技有限公司 | 一种三维模型简化方法、装置及存储介质 |
-
2021
- 2021-06-30 CN CN202110733997.1A patent/CN113379924B/zh active Active
-
2022
- 2022-01-29 WO PCT/CN2022/074862 patent/WO2023273339A1/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101877147A (zh) * | 2010-06-29 | 2010-11-03 | 浙江大学 | 三维三角形网格模型的简化算法 |
US20140368498A1 (en) * | 2013-06-12 | 2014-12-18 | Google Inc. | Shape Preserving Mesh Simplification |
CN107085865A (zh) * | 2017-05-12 | 2017-08-22 | 杭州电子科技大学 | 应用于有限元分析的四边形分割方法 |
CN108961411A (zh) * | 2018-07-02 | 2018-12-07 | 南京大学 | 一种保持外观特征的复杂三维建筑物模型简化方法 |
CN109801299A (zh) * | 2019-01-22 | 2019-05-24 | 中国科学院大学 | 基于二次曲面拟合的模型的交互式分割方法、系统、装置 |
CN111696111A (zh) * | 2020-06-15 | 2020-09-22 | 重庆大学 | 一种基于ssdf衰减图聚类的3d模型网格分割方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023273339A1 (zh) * | 2021-06-30 | 2023-01-05 | 广东三维家信息科技有限公司 | 一种三维模型简化方法、装置及存储介质 |
CN113838212A (zh) * | 2021-09-22 | 2021-12-24 | 杭州趣村游文旅集团有限公司 | 一种数字乡村三维模型的区块拼接方法 |
CN114399583A (zh) * | 2021-12-03 | 2022-04-26 | 聚好看科技股份有限公司 | 一种基于几何的三维模型拼接方法及装置 |
CN114494641A (zh) * | 2022-01-06 | 2022-05-13 | 广州市城市规划勘测设计研究院 | 一种三维模型轻量化方法及装置 |
CN117115391A (zh) * | 2023-10-24 | 2023-11-24 | 中科云谷科技有限公司 | 模型更新方法、装置、计算机设备及计算机可读存储介质 |
CN117115391B (zh) * | 2023-10-24 | 2024-01-12 | 中科云谷科技有限公司 | 模型更新方法、装置、计算机设备及计算机可读存储介质 |
CN117557740A (zh) * | 2024-01-10 | 2024-02-13 | 四川见山科技有限责任公司 | 三维模型分割层级切换方法、装置、电子设备及存储介质 |
CN117557740B (zh) * | 2024-01-10 | 2024-04-09 | 四川见山科技有限责任公司 | 三维模型分割层级切换方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023273339A1 (zh) | 2023-01-05 |
CN113379924B (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113379924A (zh) | 一种三维模型简化方法、装置及存储介质 | |
Hoffmann | Numerical control of Kohonen neural network for scattered data approximation | |
Xiao et al. | CAD mesh model segmentation by clustering | |
AU616382B2 (en) | Global blending of solid objects using a convolution integral | |
CN109685080B (zh) | 基于霍夫变换与区域生长的多尺度平面提取方法 | |
CN110941999B (zh) | 一种人群计数系统中自适应计算高斯核大小的方法 | |
US20130297058A1 (en) | Decomposition of 3d geometry into developable surface patches and 2d cut patterns | |
CN102938161B (zh) | 一种基于Mean Shift的三维形状自动分割方法 | |
Weber et al. | Sharp feature preserving MLS surface reconstruction based on local feature line approximations | |
Branch et al. | Automatic hole-filling of triangular meshes using local radial basis function | |
CN112017196B (zh) | 基于局部注意力机制的三维牙齿模型网格分割方法 | |
US9922458B2 (en) | Methods and systems for generating polycube segmentations from input meshes of objects | |
US7440609B2 (en) | Method of segmenting a three-dimensional structure | |
CN112687002B (zh) | 一种三维地质模型网格优化方法 | |
CN108171793B (zh) | 一种探查层叠区域三角网格的方法 | |
CN109671154A (zh) | 三角网格表示的曲面非迭代重新网格化方法 | |
WO2017107867A1 (zh) | 一种图像质量评估方法及装置 | |
US7809726B2 (en) | Mechanism for unsupervised clustering | |
EP1573672B1 (en) | Method of segmenting a three-dimensional data set allowing user corrections | |
CN114429535A (zh) | 一种三角网格曲面的光滑裁剪方法及装置 | |
US7733338B2 (en) | Reduction of a mesh with preservation of flow lines | |
US20070120850A1 (en) | Method and Apparatus for Non-Shrinking Mesh Smoothing Using Local Fitting | |
CN111047684A (zh) | 一种基于三维模型特征的模型简化方法 | |
EP1791091A2 (en) | Method and apparatus for non-shrinking mesh smoothing using local fitting | |
CN111815777B (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 |