CN114429534A - 三维模型处理方法、装置、电子设备及存储介质 - Google Patents
三维模型处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114429534A CN114429534A CN202111619515.6A CN202111619515A CN114429534A CN 114429534 A CN114429534 A CN 114429534A CN 202111619515 A CN202111619515 A CN 202111619515A CN 114429534 A CN114429534 A CN 114429534A
- Authority
- CN
- China
- Prior art keywords
- vertex
- normal vector
- dimensional model
- edge
- unit normal
- 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.)
- Pending
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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本公开涉及一种三维模型处理方法、装置、电子设备及存储介质,涉及图像处理技术领域,该方法包括:确定三维模型中的每个顶点法向量,对于每个顶点,获取该顶点的每个邻点到该顶点的顶点法平面的距离,顶点法平面为经过该顶点且以该顶点法向量为法向量的平面,根据该顶点的每个邻点到该顶点的顶点法平面的距离,以及每个邻点与该顶点的边映射长度值,确定该顶点的偏差权值,根据三维模型中每条边上的两个顶点的偏差权值,确定每条边的收缩代价,根据每条边的收缩代价对三维模型进行边坍塌处理,以简化三维模型。
Description
技术领域
本公开涉及图像处理技术领域,尤其涉及一种三维模型处理方法、装置、电子设备及存储介质。
背景技术
随着计算机软硬件技术的不断发展,三维建模的应用范围越来越广,三维建模的需求量正在呈指数级的增加,三维模型的结构也愈发复杂。而复杂的三维模型在其处理过程中会消耗大量的系统资源,而在实际应用过程中,往往对模型处理速度有一定要求,或者缺少处理复杂三维模型的软硬件环境,这些场景下,就需要对三维模型进行简化处理。现有算法在简化过程中对网格尖锐处的简化效果较差。
发明内容
本公开的目的是提供一种三维模型处理方法、装置、电子设备及存储介质,用以解决在三维模型简化过程中对网格尖锐处的简化效果较差的问题。
为了实现上述目的,本公开的第一方面,提供一种三维模型处理方法,包括:
确定三维模型中的每个顶点法向量;
对于所述每个顶点,获取所述顶点的每个邻点到所述顶点的顶点法平面的距离,所述顶点法平面为经过所述顶点且以所述顶点法向量为法向量的平面;
根据所述顶点的每个邻点到所述顶点的顶点法平面的距离,以及每个邻点与所述顶点的边映射长度值,确定所述顶点的偏差权值;
根据所述三维模型中每条边上的两个顶点的偏差权值,确定每条边的收缩代价;
根据每条边的收缩代价对所述三维模型进行边坍塌处理,以简化所述三维模型。
可选地,所述确定三维模型中的每个顶点法向量,包括:
计算所述三维模型中的每个顶点的每个相邻面的法向量,对于每个顶点,包含所述顶点的面为所述顶点的相邻面;
对所述三维模型中的每个顶点的每个相邻面的法向量进行单位化,得到所述每个顶点的每个相邻面的单位法向量;
对于所述三维模型中的每个顶点,将所述顶点的各个相邻面的单位法向量按照预设规则相加,得到所述顶点的顶点法向量。
可选地,所述对于所述三维模型中的每个顶点,将所述顶点的各个相邻面的单位法向量按照预设规则相加,得到所述顶点的顶点法向量,包括:
将所述顶点的目标单位法向量与所述顶点的第i个相邻面的单位法向量相加,得到单位法向量和;其中,i为正整数,i的起始值为2,当i=2时,所述目标单位法向量为所述顶点的第1个相邻面的单位法向量;
对所述单位法向量和进行单位化,得到中间单位法向量;
取i=i+1,以所述中间单位法向量作为所述目标单位法向量,再次执行将所述顶点的目标单位法向量与所述顶点的第i个相邻面的单位法向量相加至所述对所述单位法向量和进行单位化,得到中间单位法向量的步骤,直至完成所述顶点的所有相邻面的单位法向量的相加,得到所述顶点的顶点法向量。
可选地,所述根据所述顶点的每个邻点到所述顶点的顶点法平面的距离,以及每个邻点与所述顶点的边映射长度值,确定所述顶点的偏差权值,包括:
对于所述顶点的每个邻点,获取所述邻点到所述顶点法平面的距离与所述邻点与所述顶点的边映射长度值的比值,作为所述邻点对应的偏差权值;其中,所述边映射长度值为所述邻点与所述顶点形成的边在所述顶点法平面的映射长度值;
对所述顶点的所有邻点对应的偏差权值进行求和得到的和值,作为所述顶点的偏差权值。
可选地,所述根据所述三维模型中每条边上的两个顶点的偏差权值,确定每条边的收缩代价,包括:
基于QEM算法确定所述三维模型中的每条边的初始收缩代价;
根据所述三维模型中每条边上的两个顶点的偏差权值,确定所述三维模型中每条边的偏差权值;
根据所述三维模型中每条边的偏差权值和所述初始收缩代价,确定每条边的收缩代价。
本公开的第二方面,提供一种三维模型处理装置,包括:
向量确定模块,用于确定三维模型中的每个顶点法向量;
距离获取模块,用于对于所述每个顶点,获取所述顶点的每个邻点到所述顶点的顶点法平面的距离,所述顶点法平面为经过所述顶点且以所述顶点法向量为法向量的平面;
权值确定模块,用于根据所述顶点的每个邻点到所述顶点的顶点法平面的距离,以及每个邻点与所述顶点的边映射长度值,确定所述顶点的偏差权值;
代价确定模块,用于根据所述三维模型中每条边上的两个顶点的偏差权值,确定每条边的收缩代价;
处理模块,用于根据每条边的收缩代价对所述三维模型进行边坍塌处理,以简化所述三维模型。
可选地,所述向量确定模块,包括:
法向量计算子模块,用于计算所述三维模型中的每个顶点的每个相邻面的法向量,对于每个顶点,包含所述顶点的面为所述顶点的相邻面;
单位化子模块,用于对所述三维模型中的每个顶点的每个相邻面的法向量进行单位化,得到所述每个顶点的每个相邻面的单位法向量;
运算子模块,用于对于所述三维模型中的每个顶点,将所述顶点的各个相邻面的单位法向量按照预设规则相加,得到所述顶点的顶点法向量。
可选地,所述运算子模块,用于:
将所述顶点的目标单位法向量与所述顶点的第i个相邻面的单位法向量相加,得到单位法向量和;其中,i为正整数,i的起始值为2,当i=2时,所述目标单位法向量为所述顶点的第1个相邻面的单位法向量;
对所述单位法向量和进行单位化,得到中间单位法向量;
取i=i+1,以所述中间单位法向量作为所述目标单位法向量,再次执行将所述顶点的目标单位法向量与所述顶点的第i个相邻面的单位法向量相加至所述对所述单位法向量和进行单位化,得到中间单位法向量的步骤,直至完成所述顶点的所有相邻面的单位法向量的相加,得到所述顶点的顶点法向量。
本公开的第三方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面中任一项所述方法的步骤。
本公开的第四方面,提供一种非临时性计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现第二方面中任一项所述方法的步骤。
通过上述技术方案,首先确定三维模型中的每个顶点法向量,对于每个顶点,获取顶点的每个邻点到顶点法平面的距离,其中顶点法平面为经过顶点且以顶点法向量为法向量的平面,再根据顶点的每个邻点到顶点的顶点法平面的距离,以及每个邻点与顶点的边映射长度值,确定顶点的偏差权值,并根据三维模型中每条边上的两个顶点的偏差权值,确定每条边的收缩代价,从而可以根据每条边的收缩代价对三维模型进行边坍塌处理,以简化三维模型。通过上述技术方案,在计算边的收缩代价时考虑了边的映射长度值,可以有效去除长短边差异,提升算法在尖锐处的简化效果,因此能够有效改善在三维模型简化过程中对尖锐处的简化效果。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据本公开一示例性实施例示出的一种三维模型处理方法的流程图。
图2是根据本公开一示例性实施例示出的一种三维模型的部分网格。
图3是根据本公开一示例性实施例示出的一种顶点法向量计算方法的流程图。
图4是根据本公开一示例性实施例示出的一种顶点偏差权值计算方法的流程图。
图5a是根据本公开一示例性实施例示出的一种边的偏差权值计算方法的流程图。
图5b是根据本公开一示例性实施例示出的一种边坍塌的示意图。
图6是根据一示例性实施例示出的一种三维模型处理装置框图。
图7是根据一示例性实施例示出的一种电子设备700的框图。
图8是根据一示例性实施例示出的一种电子设备800的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
QEM(Quadric Error Metrics,二次误差度量)算法,是一种基于二次误差度量的边坍塌算法,其作为一个即兼顾速度又兼顾效果的网格简化算法,在3D重建等应用上被大量的使用。
QEM算法的核心思路是通过大量的迭代进行边坍塌,从而达到三维模型的网格简化的目的。QEM通过对网格上每一条边计算一个代价值(cost)。将这些边放到一个最小堆中,每次迭代都将堆中代价值最小的边移除,然后重新计算这条边的顶点直接相连的其他边的代价值,并更新该最小堆。直至达到一定的简化条件阈值为止,比如三维模型的顶点数达到一定数目。
申请人发现,虽然现有的QEM算法兼顾了简化速度和质量,但是QEM 算法在简化过程中对网格尖锐处的简化效果不好,因此基于上述发现本公开提出了一种三维模型处理方法,以改进对三维模型进行简化时在网格尖锐处的表现不佳的问题。
图1是根据本公开一示例性实施例示出的一种三维模型处理方法的流程图,如图1所示,该三维模型处理方法,可以包括以下步骤。
在步骤S101中,确定三维模型中的每个顶点法向量。
可以理解的是,三维模型也称为3D模型,该三维模型是待简化的三维模型,可以是任意一种形状的三维模型,本公开不做限制。三维模型的顶点,指的是三维模型的网格中每条边两端的点,任意一个三维模型的网格都由大量的边和顶点构成。
对于任意一个顶点,其顶点法向量可以是根据该顶点的所有相邻面的单位法向量进行求和计算得出的。相邻面也称邻接面,某个顶点的相邻面为包含该顶点的所有面(即该顶点是这些面的其中一个顶点),面一般为三角形或四角形。例如,如图2所示,示出了三维模型的部分网格,在该网格中,顶点v的相邻面为以这个顶点v为顶点的所有面1~8。
或者,也可以根据预设的文件直接获取顶点的法向量,示例的,OBJ文件的三维模型可以提供所有顶点的法向量,顶点法向量也可以通过OpenGL (Open Graphics Library,开放图形库)编程进行计算。
在步骤S102中,对于每个顶点,获取该顶点的每个邻点到该顶点的顶点法平面的距离,顶点法平面为经过该顶点且以该顶点法向量为法向量的平面。
可以理解的是,顶点的邻点也称为邻接点,同一条边上的两个顶点互为邻点(也称一阶邻点),例如图2所示,点a~点h为顶点v的邻点。在已知顶点的各个邻点的坐标的情况下,将邻点和顶点法平面放在直角坐标系下进行计算,可以通过向量法计算各个邻点到顶点法平面的距离。
在步骤S103中,根据顶点的每个邻点到该顶点的顶点法平面的距离,以及每个邻点与该顶点的边映射长度值,确定该顶点的偏差权值。
在步骤S104中,根据三维模型中每条边上的两个顶点的偏差权值,确定每条边的收缩代价。
可以理解的是,每条边有两个顶点,可以通过将每条边上的两个顶点的偏差权值进行求和得到这条边的偏差权值。对三维模型的所有的边执行上述的步骤S101至S104即可得到三维模型的每条边的偏差权值。
在步骤S105中,根据每条边的收缩代价对三维模型进行边坍塌处理,以简化三维模型。
示例的,对三维模型进行边坍塌处理可以利用前述的QEM算法,可以先通过QEM算法计算出三维模型的每条边的初始收缩代价,然后利用步骤S104中得到的每条边的偏差权值乘以对应边的初始收缩代价,即可得到这条边的收缩代价,上述过程可以表示为:
costn=becost
其中,cost表示边的初始收缩代价,costn表示边的收缩代价,be表示边的偏差权值。可以理解为通过步骤S101-S104得到了每条边的偏差权值后,能够基于边的偏差权值对QEM算法得到的初始收缩代价进行修正,得到的最终的收缩代价。基于修正后的收缩代价对三维模型进行边坍塌处理,能够有效改善在三维模型简化过程中对尖锐处的简化效果。
可选地,图3是根据本公开一示例性实施例示出的一种顶点法向量计算方法的流程图,如图3所示,该步骤S101可以包括以下步骤:
在步骤S1011中,计算三维模型中的每个顶点的每个相邻面的法向量,对于每个顶点,包含该顶点的面为顶点的相邻面。
在步骤S1012中,对三维模型中的每个顶点的每个相邻面的法向量进行单位化,得到每个顶点的每个相邻面的单位法向量。
其中,每个相邻面的法向量进行单位化是通过法向量除以该法向量的模得到的。
在步骤S1013中,对于三维模型中的每个顶点,将该顶点的各个相邻面的单位法向量按照预设规则相加,得到顶点的顶点法向量。
可选地,该预设规则可以是逐个累加,并在每次将顶点法向量累加后,对累加结果进行单位化,具体的,该步骤S1013可以包括以下步骤:
对于任一顶点,首先,将顶点的目标单位法向量与顶点的第i个相邻面的单位法向量相加,得到单位法向量和。其中,i为正整数,i的起始值为2,当i=2时,即第一次相加,该目标单位法向量为顶点的第1个相邻面的单位法向量。
其次,对该单位法向量和进行单位化,得到中间单位法向量。如果在本次相加后,已经完成了该顶点的所有相邻面的单位法向量相加,则当前的中间单位法向量就是该顶点的顶点法向量,如果在本次相加后,还存在没有累加的相邻面的单位法向量,则执行下一步。
取i=i+1,以该中间单位法向量作为目标单位法向量,再次执行将顶点的目标单位法向量与顶点的第i个相邻面的单位法向量相加至对单位法向量和进行单位化,得到中间单位法向量的步骤,以此类推,直至完成顶点的所有相邻面的单位法向量的相加,得到该顶点的顶点法向量。
下面通过一个示例对上述步骤S1013的方法进行说明:
例如,对于一个顶点V,有四个相邻面a、b、c、d,则顶点V的顶点法向量的计算过程如下:
首先,在第一次相加时,目标单位法向量为顶点V的第一个相邻面的单位法向量,这里我们将相邻面a的单位法向量作为该目标单位法,与相邻面 b的单位法向量相加,得到新的向量x,然后将新的向量x进行单位化,得到单位法向量x’,由于该单位法向量x’不是最终结果,因此我们称之为中间单位法向量。
然后,将该中间单位法向量,也即单位法向量x’作为新一轮的目标单位法,将单位法向量x’与相邻面c的单位法向量相加,得到新的向量y,然后将新的向量y进行单位化,得到单位法向量y’,单位法向量y’作为本轮的中间单位法向量。
最后,将上一轮的中间单位法向量,也即单位法向量y’作为新一轮的目标单位法,将单位法向量y’与相邻面d的单位法向量相加,得到新的向量z,然后将新的向量z进行单位化,得到单位法向量z’,由于相邻面d 是顶点V的最后一个相邻面,因此单位法向量z’即为该顶点V的顶点法向量。
可以理解的是,以上步骤是将顶点的各个相邻面的单位法向量依次累加,对每次相加后的结果再次进行单位化后,与下一相邻面的单位法向量相加,能够保证法向量的方向不因向量长度不一致而发生偏移。
可选地,图4是根据本公开一示例性实施例示出的一种顶点偏差权值计算方法的流程图,如图4所示,该步骤S103可以包括以下步骤:
步骤S1031,对于顶点的每个邻点,获取该邻点到顶点法平面的距离与该邻点和该顶点的边映射长度值的比值,作为邻点对应的偏差权值。
其中,边映射长度值为邻点与顶点形成的边在顶点法平面的映射长度值。
步骤S1032,对该顶点的所有邻点对应的偏差权值进行求和得到的和值,作为该顶点的偏差权值。
对于一个顶点,假设该顶点的任一邻点到顶点法平面的距离为d,该邻点与该顶点形成的边,映射到法平面的映射长度值为dm,那么该邻点提供的偏差权值可以为再将该顶点的所有邻点提供的偏差权值进行求和处理,得到该顶点的偏差权值bv,可以表示为以下公式:
通过上述技术方案,在计算顶点的偏差权值时考虑了邻点与顶点的映射长度值,从而使得根据顶点的偏差权值确定的边的偏差权值能够反映该映射长度值的影响,从而在计算边的收缩代价时对其进行修正,能够有效去除长短边差异,提升算法在尖锐处的简化效果。
可选地,图5a是根据本公开一示例性实施例示出的一种边的偏差权值计算方法的流程图,如图5a所示,该步骤S104可以包括以下步骤:
在步骤S1041中,基于QEM算法确定三维模型中的每条边的初始收缩代价。
在步骤S1042中,根据三维模型中每条边上的两个顶点的偏差权值,确定三维模型中每条边的偏差权值。
在步骤S1043中,根据三维模型中每条边的偏差权值和初始收缩代价,确定每条边的收缩代价。
示例的,通过QEM算法将边坍塌后与原三维模型的代价定义为:坍塌后的点到原来相邻面的距离的平方和,代价cost:
图5b是根据本公开一示例性实施例示出的一种边坍塌的示意图,如图 5b所示,(v1,v2)为要收缩的边的两个顶点,v0是收缩后的顶点,p为平面的一般方程系数组成的向量,plans(v1)表示经过顶点v1的所有平面,为顶点v1的二次误差矩阵,为顶点v2的二次误差矩阵。顶点的二次误差矩阵用于表示该顶点对待简化三维模型的重要程度,而且该顶点的二次误差矩阵可以根据待简化三维模型中包括该顶点的各个平面的平面方程确定。
示例的,对于顶点的二次误差矩阵的确定过程本公开不做限制,例如,顶点的二次误差矩阵可以通过以下公式确定:
其中,Qv表示顶点v的二次误差矩阵,plans(v)表示经过顶点v的所有平面,表示在待简化的三维模型中的顶点v的第i个相邻面,该顶点v的第i个相邻面包括该顶点v;表示该第i个相邻面的基本误差矩阵 (fundamental error quadric);表示该第i个相邻面所属的平面;表示该第i 个相邻面所属的平面的平面方程;I表示该三维模型中顶点v的相邻面的个数。
通过上述技术方案,在计算边的收缩代价时考虑了顶点与其邻点的边映射长度值,因此可以有效去除长短边差异带来的影响,专注于提升算法在尖锐处的简化效果,有效改善现有算法在三维模型简化过程中对尖锐处的简化效果较差的问题。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种三维模型处理装置框图。如图6 所示,该三维模型处理装置600包括:
向量确定模块601,用于确定三维模型中的每个顶点法向量;
距离获取模块602,用于对于每个顶点,获取该顶点的每个邻点到该顶点的顶点法平面的距离,顶点法平面为经过该顶点且以顶点法向量为法向量的平面;
权值确定模块603,用于根据该顶点的每个邻点到该顶点的顶点法平面的距离,以及每个邻点与该顶点的边映射长度值,确定该顶点的偏差权值;
代价确定模块604,用于根据三维模型中每条边上的两个顶点的偏差权值,确定每条边的收缩代价;
处理简化模块605,用于根据每条边的收缩代价对三维模型进行边坍塌处理,以简化三维模型。
可选地,向量确定模块601,包括:
法向量计算子模块,用于计算三维模型中的每个顶点的每个相邻面的法向量,对于每个顶点,包含该顶点的面为顶点的相邻面;
单位化子模块,用于对三维模型中的每个顶点的每个相邻面的法向量进行单位化,得到每个顶点的每个相邻面的单位法向量;
运算子模块,用于对于三维模型中的每个顶点,将该顶点的各个相邻面的单位法向量按照预设规则相加,得到该顶点的顶点法向量。
可选地,单位化子模块,用于:
将该顶点的目标单位法向量与该顶点的第i个相邻面的单位法向量相加,得到单位法向量和;其中,i为正整数,i的起始值为,当i=2时,目标单位法向量为该顶点的第1个相邻面的单位法向量;
对单位法向量和进行单位化,得到中间单位法向量;
取i=i+1,以中间单位法向量作为目标单位法向量,再次执行将该顶点的目标单位法向量与该顶点的第i个相邻面的单位法向量相加至对单位法向量和进行单位化,得到中间单位法向量的步骤,直至完成该顶点的所有相邻面的单位法向量的相加,得到该顶点的顶点法向量。
可选地,权值确定模块603,还用于:
对于该顶点的每个邻点,获取该邻点到顶点法平面的距离,与该邻点和该顶点的边映射长度值的比值,作为该邻点对应的偏差权值;其中,边映射长度值为该邻点与该顶点形成的边在顶点法平面的映射长度值;
对该顶点的所有邻点对应的偏差权值进行求和得到的和值,作为该顶点的偏差权值。
可选地,代价确定模块604,还用于:
基于QEM算法确定三维模型中的每条边的初始收缩代价;
根据三维模型中每条边上的两个顶点的偏差权值,确定三维模型中每条边的偏差权值;
根据三维模型中每条边的偏差权值和初始收缩代价,确定每条边的收缩代价。
通过上述技术方案,在计算边的收缩代价时考虑了顶点与其邻点的边映射长度值,因此可以有效去除长短边差异带来的影响,专注于提升算法在尖锐处的简化效果,有效改善现有算法在三维模型简化过程中对尖锐处的简化效果较差的问题。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开提供的一种三维模型处理方法的步骤。
图7是根据一示例性实施例示出的一种电子设备700的框图。如图7所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700 还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705 中的一者或多者。
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的三维模型处理方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称 EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701 和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备 700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、 eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器 (DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的三维模型处理方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的三维模型处理方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的三维模型处理方法。
图8是根据一示例性实施例示出的一种电子设备800的框图。例如,电子设备800可以被提供为一服务器。参照图8,电子设备800包括处理器822,其数量可以为一个或多个,以及存储器832,用于存储可由处理器822执行的计算机程序。存储器832中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器822可以用于执行该计算机程序,以执行上述的三维模型处理方法。
另外,电子设备800还可以包括电源组件826和通信组件850,该电源组件826可以用于执行电子设备800的电源管理,该通信组件850可以用于实现电子设备800的通信,例如,有线或无线通信。此外,该电子设备800 还可以包括输入/输出(I/O)接口858。电子设备800可以操作基于存储在存储器832的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的三维模型处理方法的步骤。例如,该非临时性计算机可读存储介质可以为上述包括程序指令的存储器832,上述程序指令可由电子设备800的处理器822执行以完成上述的三维模型处理方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的三维模型处理方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种三维模型处理方法,其特征在于,包括:
确定三维模型中的每个顶点法向量;
对于所述每个顶点,获取所述顶点的每个邻点到所述顶点的顶点法平面的距离,所述顶点法平面为经过所述顶点且以所述顶点法向量为法向量的平面;
根据所述顶点的每个邻点到所述顶点的顶点法平面的距离,以及每个邻点与所述顶点的边映射长度值,确定所述顶点的偏差权值;
根据所述三维模型中每条边上的两个顶点的偏差权值,确定每条边的收缩代价;
根据每条边的收缩代价对所述三维模型进行边坍塌处理,以简化所述三维模型。
2.根据权利要求1所述的三维模型处理方法,其特征在于,所述确定三维模型中的每个顶点法向量,包括:
计算所述三维模型中的每个顶点的每个相邻面的法向量,对于每个顶点,包含所述顶点的面为所述顶点的相邻面;
对所述三维模型中的每个顶点的每个相邻面的法向量进行单位化,得到所述每个顶点的每个相邻面的单位法向量;
对于所述三维模型中的每个顶点,将所述顶点的各个相邻面的单位法向量按照预设规则相加,得到所述顶点的顶点法向量。
3.根据权利要求2所述的三维模型处理方法,其特征在于,所述对于所述三维模型中的每个顶点,将所述顶点的各个相邻面的单位法向量按照预设规则相加,得到所述顶点的顶点法向量,包括:
将所述顶点的目标单位法向量与所述顶点的第i个相邻面的单位法向量相加,得到单位法向量和;其中,i为正整数,i的起始值为2,当i=2时,所述目标单位法向量为所述顶点的第1个相邻面的单位法向量;
对所述单位法向量和进行单位化,得到中间单位法向量;
取i=i+1,以所述中间单位法向量作为所述目标单位法向量,再次执行将所述顶点的目标单位法向量与所述顶点的第i个相邻面的单位法向量相加至所述对所述单位法向量和进行单位化,得到中间单位法向量的步骤,直至完成所述顶点的所有相邻面的单位法向量的相加,得到所述顶点的顶点法向量。
4.根据权利要求1所述的三维模型处理方法,其特征在于,所述根据所述顶点的每个邻点到所述顶点的顶点法平面的距离,以及每个邻点与所述顶点的边映射长度值,确定所述顶点的偏差权值,包括:
对于所述顶点的每个邻点,获取所述邻点到所述顶点法平面的距离与所述邻点与所述顶点的边映射长度值的比值,作为所述邻点对应的偏差权值;其中,所述边映射长度值为所述邻点与所述顶点形成的边在所述顶点法平面的映射长度值;
对所述顶点的所有邻点对应的偏差权值进行求和得到的和值,作为所述顶点的偏差权值。
5.根据权利要求1所述的三维模型处理方法,其特征在于,所述根据所述三维模型中每条边上的两个顶点的偏差权值,确定每条边的收缩代价,包括:
基于QEM算法确定所述三维模型中的每条边的初始收缩代价;
根据所述三维模型中每条边上的两个顶点的偏差权值,确定所述三维模型中每条边的偏差权值;
根据所述三维模型中每条边的偏差权值和所述初始收缩代价,确定每条边的收缩代价。
6.一种三维模型处理装置,其特征在于,包括:
向量确定模块,用于确定三维模型中的每个顶点法向量;
距离获取模块,用于对于所述每个顶点,获取所述顶点的每个邻点到所述顶点的顶点法平面的距离,所述顶点法平面为经过所述顶点且以所述顶点法向量为法向量的平面;
权值确定模块,用于根据所述顶点的每个邻点到所述顶点的顶点法平面的距离,以及每个邻点与所述顶点的边映射长度值,确定所述顶点的偏差权值;
代价确定模块,用于根据所述三维模型中每条边上的两个顶点的偏差权值,确定每条边的收缩代价;
处理模块,用于根据每条边的收缩代价对所述三维模型进行边坍塌处理,以简化所述三维模型。
7.根据权利要求6所述的三维模型处理装置,其特征在于,所述向量确定模块,包括:
法向量计算子模块,用于计算所述三维模型中的每个顶点的每个相邻面的法向量,对于每个顶点,包含所述顶点的面为所述顶点的相邻面;
单位化子模块,用于对所述三维模型中的每个顶点的每个相邻面的法向量进行单位化,得到所述每个顶点的每个相邻面的单位法向量;
运算子模块,用于对于所述三维模型中的每个顶点,将所述顶点的各个相邻面的单位法向量按照预设规则相加,得到所述顶点的顶点法向量。
8.根据权利要求7所述的三维模型处理装置,其特征在于,所述运算子模块,用于:
将所述顶点的目标单位法向量与所述顶点的第i个相邻面的单位法向量相加,得到单位法向量和;其中,i为正整数,i的起始值为2,当i=2时,所述目标单位法向量为所述顶点的第1个相邻面的单位法向量;
对所述单位法向量和进行单位化,得到中间单位法向量;
取i=i+1,以所述中间单位法向量作为所述目标单位法向量,再次执行将所述顶点的目标单位法向量与所述顶点的第i个相邻面的单位法向量相加至所述对所述单位法向量和进行单位化,得到中间单位法向量的步骤,直至完成所述顶点的所有相邻面的单位法向量的相加,得到所述顶点的顶点法向量。
9.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-5中任一项所述方法的步骤。
10.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111619515.6A CN114429534A (zh) | 2021-12-27 | 2021-12-27 | 三维模型处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111619515.6A CN114429534A (zh) | 2021-12-27 | 2021-12-27 | 三维模型处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114429534A true CN114429534A (zh) | 2022-05-03 |
Family
ID=81311888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111619515.6A Pending CN114429534A (zh) | 2021-12-27 | 2021-12-27 | 三维模型处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114429534A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251906A (zh) * | 2023-09-01 | 2023-12-19 | 深圳图为技术有限公司 | 一种流程工厂的三维设备模型轻量化方法和系统 |
CN117473655A (zh) * | 2023-12-27 | 2024-01-30 | 中国人民解放军国防科技大学 | 基于边坍缩网格优化的飞行器仿真驱动设计方法和装置 |
-
2021
- 2021-12-27 CN CN202111619515.6A patent/CN114429534A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251906A (zh) * | 2023-09-01 | 2023-12-19 | 深圳图为技术有限公司 | 一种流程工厂的三维设备模型轻量化方法和系统 |
CN117473655A (zh) * | 2023-12-27 | 2024-01-30 | 中国人民解放军国防科技大学 | 基于边坍缩网格优化的飞行器仿真驱动设计方法和装置 |
CN117473655B (zh) * | 2023-12-27 | 2024-03-15 | 中国人民解放军国防科技大学 | 基于边坍缩网格优化的飞行器仿真驱动设计方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109493375B (zh) | 三维点云的数据匹配及合并方法、装置、可读介质 | |
CN114429534A (zh) | 三维模型处理方法、装置、电子设备及存储介质 | |
US10417821B2 (en) | Method of simplifying a geometry model | |
CN112669463B (zh) | 三维点云的曲面重建方法、计算机设备和计算机可读存储介质 | |
US20100131251A1 (en) | Shortest path search method and device | |
US20110103712A1 (en) | Structured grids and graph traversal for image processing | |
US10296664B2 (en) | Scalable and precise fitting of NURBS surfaces to large-size mesh representations | |
US20210358208A1 (en) | Method, device and computer readable storage medium for generating volume foliation | |
CN112187554A (zh) | 一种基于蒙特卡洛树搜索的运维系统故障定位方法和系统 | |
CN115439571A (zh) | 一种适用于线阵推扫式卫星影像核线影像生成方法及装置 | |
Reberol et al. | Quasi-structured quadrilateral meshing in Gmsh--a robust pipeline for complex CAD models | |
CN115270500A (zh) | 一种布尔求差运算方法、装置及电子设备 | |
CN115222806A (zh) | 多边形处理方法、装置、设备及计算机可读存储介质 | |
CN112825199A (zh) | 碰撞检测方法、装置、设备及存储介质 | |
CN111768353B (zh) | 一种三维模型的孔洞填补方法及装置 | |
CN110378948B (zh) | 3d模型重建方法、装置及电子设备 | |
CN115359211A (zh) | 模型加载方法、装置、存储介质及电子设备 | |
CN111898819B (zh) | 空间网格划分方法及装置 | |
CN114979592A (zh) | 图像曲面几何校正方法、装置、电子设备及存储介质 | |
CN114782611A (zh) | 图像处理方法、装置、存储介质和电子设备 | |
CN112802201B (zh) | 实体模型间并行最近距离获取方法和装置 | |
WO2011131248A1 (en) | Method and apparatus for losslessly compressing/decompressing data | |
CN112487674B (zh) | 晶格结构的模型生成方法和装置 | |
CN115619978B (zh) | 网格面构建方法、终端以及存储介质 | |
CN115830209B (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 |