CN1866299A - 基于视觉特征度量的三维模型简化方法 - Google Patents

基于视觉特征度量的三维模型简化方法 Download PDF

Info

Publication number
CN1866299A
CN1866299A CNA2006100894349A CN200610089434A CN1866299A CN 1866299 A CN1866299 A CN 1866299A CN A2006100894349 A CNA2006100894349 A CN A2006100894349A CN 200610089434 A CN200610089434 A CN 200610089434A CN 1866299 A CN1866299 A CN 1866299A
Authority
CN
China
Prior art keywords
summit
error
vertex
node
point
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
Application number
CNA2006100894349A
Other languages
English (en)
Other versions
CN100545872C (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.)
Beihang University
Beijing University of Aeronautics and Astronautics
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CNB2006100894349A priority Critical patent/CN100545872C/zh
Publication of CN1866299A publication Critical patent/CN1866299A/zh
Application granted granted Critical
Publication of CN100545872C publication Critical patent/CN100545872C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)

Abstract

基于视觉特征度量的三维模型简化方法,其特征在于包括下列步骤:(1)顶点类型分析,对载入的三维模型的顶点进行连接性分析,将顶点分为普通顶点、边界顶点、特殊顶点和孤立顶点四类;(2)基于视觉特征度量的误差计算,根据顶点类型计算顶点误差,并保存在相应的顶点中;(3)根据步骤(2)计算出的顶点误差,构建最小堆;(4)边折叠,通过选择最小误差点,即选择最小误差边进行边折叠,并且折叠后要改变邻接顶点的连接性,重新计算受影响顶点的误差;(5)更新最小堆;(6)重复步骤(4),直到达到简化力度的要求。本发明它在误差计算方法中引入了对视觉特征的度量,能够改变边折叠的次序,从优先保留模型中视觉系统敏感的几何特征,在保证算法效率的同时降低了简化结果与原模型在视觉上的误差。

Description

基于视觉特征度量的三维模型简化方法
技术领域
本发明涉及一种三维模型简化方法,特别是一种基于视觉特征度量的三维模型简化方法。
背景技术
三维模型简化是伴随着建模技术的发展而产生的一项技术。建模技术主要研究如何去表示一个三维几何模型。近年来,一方面随着三维扫描仪等设备的出现,三维网格模型的获取越来越简单,使得模型也越来越复杂,其规模已经超出了计算机的处理能力;另一方面,网络的发展使得三维模型的网络传输成为一个必然的趋势。因此为了加速虚拟场景的绘制以及以更快的响应时间将模型通过网络传输给用户,模型简化技术逐渐发展为一项独立的技术。
三维模型简化的宗旨是在尽可能保持原始模型特征的情况下,最大限度的减少模型中的细节信息,即减少模型中的几何信息和拓扑信息。使用一个近似模型来表示原始模型,近似模型基本保持了原始模型的可视特征,但顶点和面的数量少于原始模型中顶点和面的数量。通常的做法是把一些不重要的图元(顶点、边或三角形)从三角网格中删除,在这个过程中,为了更好的保持形体本来的形状,在每一个删除步骤中都需要选择一个图元,使得该图元的删除对模型的可视特征影响最小,即所带来的误差影响最小,所谓误差,是指简化模型和原始模型之间的差异,这种差异可以是距离、曲率等。因此问题的关键之处就在于每一步中如何选择这个最小误差。计算误差的方法称为误差度量准则。
目前常用的误差度量准则有以下几种:(1)点到面的距离:计算当前顶点与周围相连的顶点所组成的平均平面之间的距离,如果该距离小于用户指定的阈值,则该顶点可以被删除。(2)点到线的距离:计算当前顶点与其左右相邻的两个顶点组成的直线之间的距离,这种方法主要用于边界顶点的处理。(3)二次误差:计算当前点到所有与其相邻的三角面的距离的平方和,并且当两个点折叠为一个点的时候,该误差可以相加。(4)特征角度量:特征角定义为顶点处任意两个相邻三角形的法向量之间的夹角中的最大者,越小者则可以进行删除。(5)Hausdorff距离:Hausdorff距离是用来衡量一个点集到另一个点集之间最大距离的最小值。从点集A到点集B的Hausdorff距离可以定义为: h ( A , B ) = max a ∈ A { min b ∈ B { d ( a , b ) } } , 其中d(a,b)是a、b两点之间的欧拉距离。该式定义的Hausdorff距离具有方向性,即h(A,B)和h(B,A)是不相等的。另一种更一般的Hausdorff距离定义为:H(A,B)=max{h(A,B),h(B,A)},其中h(A,B)如上式定义。(6)能量函数:将一个点集的能量表示为距离能量、表示能量和弹性能量,是一种全局的误差测度准则。
基于以上的各种误差度量准则,目前已经有很多网格的简化方法,如:顶点删除的简化方法、重新划分网格的简化方法、三角形折叠的简化方法、小波分解的简化方法、顶点聚类的简化方法、包络网格的简化方法、边折叠的简化方法等等。一般说来,折叠算法比同类的删除算法效率要高,因为它不需要对删除后形成的空洞进行三角化,只需要使用一些原有的网格元素去代替删除掉的网格元素。另外,边折叠方法是一种适用于任意二维流形的三角网格模型的优化方法。这使得它已经成为非常重要的一类简化方法,并且,最近两年对网格简化方法的研究也多是基于边折叠展开的。
但是从目前来看,这类方法的一个缺点就是使模型各部分的简化力度趋于均匀。这使得人的视觉系统比较敏感的边界、轮廓以及曲率大的尖锐区域的网格没法得到优先保留,从而导致了视觉上的退化。特别是在分辨率较低的情况下模型一些重要视觉特征的损失会更为严重,使得简化模型与原模型的视觉误差过大,不能满足更广泛的应用需求。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种基于视觉特征度量的模型简化方法,它在误差计算方法中引入了对视觉特征的度量,能够改变边折叠的次序,从优先保留模型中视觉系统敏感的几何特征,在保证算法效率的同时降低了简化结果与原模型在视觉上的误差。
本发明的技术解决方案:基于视觉特征度量的三维模型简化方法,其特点在于包括下列步骤:
(1)顶点类型分析,对载入的三维模型的顶点进行连接性分析,将顶点分为普通顶点、边界顶点、特殊顶点和孤立顶点四类;
(2)基于视觉特征度量的误差计算,根据顶点类型计算顶点误差,并保存在相应的顶点中;
(3)根据步骤(2)计算出的顶点误差,构建最小堆;
(4)边折叠,通过选择最小误差点,即选择最小误差边进行边折叠,并且折叠后要改变邻接顶点的连接性,重新计算受影响顶点的误差;
(5)更新最小堆;
(6)重复步骤(4),直到达到简化力度的要求。
所述的顶点类型分析的方法如下:用点表和面表的形式来表示的模型网格,对于某一个顶点或三角面片来说其连接性是难以直观的判断的,因此首先需要进行顶点的连接性分析。顶点的连接性需要记录每一个顶点的邻接顶点信息、邻接面信息,根据邻接顶点和邻接面的信息进行顶点类型判断,顶点类型分为普通顶点、边界顶点、特殊顶点和孤立顶点四类(如图1所示)。
(1)普通顶点就是指三角形的内部顶点,并且这类顶点不包含特殊顶点,在拓扑关系上表现为其邻接顶点的数量和邻接三角形面片的数量是相同的,并且不是特殊顶点。
(2)边界顶点就是指三角形的边界上的点,对于封闭的图形来说,这类顶点几乎不存在。在拓扑关系上表现为其邻接三角形面片的数量比邻接顶点少一。
(3)特殊顶点是一类特殊的内部顶点,它与其中某一个邻接顶点具有超过两个相同的邻接顶点。它的删除可能会导致三角网格性质的变化。
(4)孤立顶点是一种无效的顶点,它不与任何顶点组成三角面片,在模型中不起任何作用,是在建模过程中引入的不必要顶点,可以直接删除。
所述的基于视觉特征度量的误差计算的方法如下:基于视觉特征度量的误差计算公式可表示为:Verror=BaseError+weightdetail×Vdetail+weightoutline×Voutline;
(1)BaseError称为基本误差成分,它根据顶点类型的不同,采用不同的方式进行计算,对于普通顶点,采用计算点到面距离的平均值,其中面是指在该点的所有邻接顶点中选三个组成一个面,计算该顶点到每个面的距,如图2所示,然后相加,并求其平均值。即 BaseError = 1 n Σ i = 1 n Dis i ; 其中 n = C M 3 (M为该点的邻接点数目),Disi为该点到第i个面的距离。对于边界顶点,采用点到两个邻接的边界顶点所组成的线的距离(如图3所示),其中V0点的误差计算根据点V0到直线V1V2的距离。
(2)Vdetail为顶点曲率变化程度的对误差的贡献值,曲率变化越大该值越大。其中Vdetail的计算公式如下:Vdetail=Max(Acos(Vnormal·Fnormali));Vnormal表示某一点的标准化后的法向量值,Fnormali表示与该点相相连接的第k个三角面片的标准化后的法向量值(如图4所示); Vnormal = 1 n Σ k = 1 n fnormal k (n为该点邻接的三角面片的数量)。因此某点的细致度就是其所邻接的所有三角面片的法向量与他们的均值(三角面片的法向量的平均值)所构成的夹角中最大的那一个夹角的弧度值。
(3)Voutline为模型轮廓特征对误差的贡献值,Vdetail的计算公式如下:Voutline=Acos(Vnormal·Viewdirection);Vnormal表示某一点的标准化后的法向量值,Viewdirection表示当前的视点观察方向,如图5所示。
(4)Weightdetail,Weightoutline均为误差项的系数,计算公式如下:
Figure A20061008943400091
其中percent为模型的简化力度(百分比),并且若模型简化后的三角面片数少于1000则Weightdetail=0;当 Voutline ∉ [ 80 180 Π , 1 2 Π ] 时,Voutline=0。
所述的根据顶点误差大小构建最小堆的方法如下:
堆是一个几乎完全的二叉树,它的每个顶点都满足堆的特性:如果v和p(v)分别是节点和它的父节点,那么存储在p(v)中的数据项的键值小于(或大于)存储在v中的数据项的键值。如果父节点中数据项的键值小于子节点中数据项的键值,那么则称这个堆为最小堆,如果父节点中数据项的键值大于子节点中数据项的键值,那么则称这个堆为最大堆。按照最小堆的定义,在最小堆中键值最小的点应该在根节点。将顶点误差作为键值构建的最小堆,其基本操作有三个:创建、Sift-up(向上移)、Sift-down(向下移)。
(1)创建
由于完全二叉树具有这样的性质:如果用连续的数组来表示二叉树中的节点,那么对于数组中任一位置i上的元素,其左子节点在位置2i上,其右子节点在(2i+1)中,其父节点在i/2。因此采用一个一维数组来表示堆数据结构。对于给定的顶点数组,从最后一个节点开始到根节点,逐个扫描所有的节点,根据需要每一次将以当前节点为根节点的子树转换成堆。
(2)Sift-up操作
堆的定义中规定了父节点中的键值和子节点之间键值的关系,因此当一个节点中的键值发生变化而破坏堆的这个性质的时候,需要对堆中的数据进行重新排列,使之重新达到上述性质。对于最小堆来说,当子节点的值小于父节点中的值的时候,那么这个节点需要和其父节点互换,即向上移动,称之为Sift-up操作。例如,对于图6中左边的堆,如果节点32的值变成了10,此时需要不断将节点10上移,直到移到根节点位置,重新保持最小堆性质。
在这一过程中,最坏情况是:堆中的最后一层元素中的一个变成最小的,此时需要将这个元素从最低层一直移动到最高层,此时需要移动的次数为logn,因此上述过程的最坏情况算法复杂度为O(logn)。
(3)Sift-down操作
同理,如果处于父节点中的键值大于任何一个子节点中的键值,此时需要将该节点向下(即向孩子节点方向)移动,最终保持最小堆性质,称之为Sift-down操作。该过程的最坏情况算法复杂度也为O(logn)。
所述的边折叠的方法如下:
通过上面的误差计算准则计算出每一个顶点的误差之后,可以选择一个最小的误差点进行删除,该点删除的同时需要删除所有与之相连的线和面,于是就形成了一个空洞,对于这个空洞需要重新进行三角剖分,如图7所示,当A图中顶点v0删除后,形成图B中的空洞,然后对其三角化形成图C。从图中不难看出,这一过程相当于将边v0v1进行折叠(即点v0合并到点v1),但是从计算复杂度上来说,边折叠的计算量比先删除然后三角化要少。
折叠边的选择采取距离最小的原则,即选择一条与最小点相连的并且长度最小的边,将该边进行折叠产生新的拓扑结构。
对于特殊顶点来说,并不是其所有的边都可以进行折叠,如图8所示的拓扑结构中,当边(V1,V2)进行折叠时,形成右图所示的拓扑结构,此时原来的三角形面A(V1,V3,V4)的顶点V1应该替换为V2,从而形成新的平面A′(V2,V3,V4),此平面和三角平面B(V3,V2,V4)相同,虽然从绘制的角度看,这两个三角形一个为正面(面A,顶点顺序为顺时针),一个为反面(面B,顶点顺序为逆时针),但从外观看,这破坏了三角网格模型的流行性质,形成了一个独立的三角形面片。
因此,规定边(V1,V2)不能进行折叠。一般来说,如果一条边能够折叠,那么这条边的两个顶点的邻接顶点至多只能有两个是相同的。具体解决方法为:判断这条边的两个顶点的邻接顶点中相同顶点的数目是否超过2。对于上图,边(V1,V2)不能折叠,其中顶点V1的邻接顶点为V2、V3、V4、V5、V6,顶点V2的邻接顶点为V3、V4、V1、V6,二者相同的邻接顶点为V3、V4、V6,超过2,所以不能进行折叠。
本发明与现有技术相比的优点在于:
(1)本发明在误差度量准则中引入了对人的视觉系统敏感的重要几何特征的度量,能够根通过调整这些重要顶点的误差值来改变边折叠的次序,优先保留细节特征和轮廓特征。在同等简化力度下能够突出模型的细节特征、边界以及轮廓特征。简化效果相对其他方法具有明显优势。
(2)本发明作为一种自动的网格简化算法,能够在没有用户交互的前提下,自动保留模型中人的视觉系统比较敏感的几何特征。同时本发明能够根据模型简化力度(百分比)的不同自动调整顶点误差各组成部分的权重,从而避免了在在模型分辨率较低的状态下因过于注重保留边界、轮廓、尖锐点等几何特征而导致简化结果误差过大的情况。
(3)本发明采用基于点到面距离平均值的方法来计算基本的误差项,计算量小,效率高。采用边折叠的模型简化方法对模型要求低,它适用于任意二维流形的三角网格模型。同时,边折叠的简化方法在计算复杂度计算量比先删除然后三角化要少;而且它属于局部算法,算法简单、稳定,易于实现,能够应用于较大的模型。
(4)本发明的计算复杂度相对较低。模型化简的关键是采用何种方式计算几何元素误差。对于局部算法来说,这种计算所消耗的时间相对于整个过程来说是非常小的,大部分时间消耗在查找最小误差元素上;而由于本发明采用了最小堆这种数据结构,从而将这一比较耗时的查找操作的时间复杂度降到了O(nlognh)。同时这也是整个三维模型简化算法的时间复杂度。
附图说明
图1为本发明的顶点类型分析示意图;
图2为本发明的普通顶点的基本误差计算示意图;
图3为本发明的边界顶点的基本误差计算示意图;
图4为本发明的误差计算公式中顶点曲率变化项的计算示意图;
图5为本发明的误差计算公式中轮廓特征度量项的计算示意图;
图6为本发明的堆的Sift-up操作示意图;
图7本发明中的某个顶点删除后所形成的空洞示意图;
图8为本发明中的特殊顶点折叠过程示意图;
图9Happy Buddha模型的简化结果图。
具体实施方式
下面结合实施例对本发明进一详细说明
本发明的三维模型原始数据采用斯坦福大学的PLY格式的三维模型Happy Buddha,原始模型含108,770个三角面片,其简化模型的步骤如下:
1.顶点类型分析,首先载入Happy Buddha三维模型,然后对该模型的顶点进行连接性分析,将顶点分为普通顶点、边界顶点、特殊顶点和孤立顶点四类。顶点类实现的数据结构见表1。
          表1顶点类关键数据
  enum   class CVertex
  VertexType{VT_NORMAL;VT_BORDER;VT_SPECIAL;VT_SINGLE;};   {VertexType m_eType;float m_fError;Vector<Cvertex*>m_vecNeiVert;Vector<Cface*>m_vecNeiFace;};
2.基于视觉特征度量的误差计算,根据1中的顶点分类,采用相应的方式计算各个顶点的误差,并保存在相应的顶点中。对模型顶点列表中的每一个顶点的误差其计算步骤如下:
(1)基本误差计算
A.普通顶点的基本误差计算,以图二中的顶点V0为例,首先根据顶点V0的所有邻接顶点V1、V2、V3、V4所组成的平面S123、S134、S124、S234计算顶点V0到这四个面的距离,然后求其平均值作为顶点V0的基本误差值。
B.边界顶点的基本误差计算,以图三中的顶点V0为例,V0点到其两个邻接的边界顶点所组成的直线V1V2的距离作为该点的基本误差。
C.特殊顶点的基本误差计算,以图一中的特殊顶点V为例,因为这类顶点不能删除,所以直接给它的基本误差项赋一无穷大的值,以保证该类顶点不会被删除。
D.孤立顶点的基本误差计算,以图一中孤立顶点V为例,因为这类顶点可以直接删除,所以直接给顶点V的基本误差赋一无穷小的值,以保证这类顶点能够被优先删除。
(2)顶点曲率变化程度的对误差的贡献值的计算Vdetail为顶点曲率变化程度的对误差的贡献值,曲率变化越大该值越大。其中Vdetail的计算公式如下:Vdetail=Max(Acos(Vnormal·Fnormali));如图四所示,Vnormal表示某一点的标准化后的法向量值,Fnormali表示与该点相相连接的第k个三角面片的标准化后的法向量值; Vnormal = 1 n &Sigma; k = 1 n fnormal k (n为该点邻接的三角面片的数量)。该误差项的系数计算公式为: 其中percent为模型的简化力度(百分比),并且规定若模型简化后的三角面片数少于1000则Weightdetail=0,以防止在模型分辨率较低的情况下由于过分保留模型尖锐特征而引起简化误差反而增大的情况。
(3)模型轮廓特征对误差的贡献值的计算Voutline为模型轮廓特征对误差的贡献值,Vdetail的计算公式如下:Voutline=Acos(Vnormal·Viewdirection);如图5所示,Vnormal表示某一点的标准化后的法向量值,Viewdirection表示当前的视点观察方向。该误差项的系数计算公式为:
Figure A20061008943400141
其中percent为模型的简化力度(百分比),并且规定当 Voutline &NotElement; [ 80 180 &Pi; , 1 2 &Pi; ] 时,Voutline=0,以防止在模型分辨率较低的情况下由于过分保留模型轮廓特征而引起简化误差反而增大的情况。
3、构建最小堆;在第2步已经计算完的所有顶点的误差基础上,构建顶点误差的最小堆。
由于完全二叉树具有这样的性质:如果用连续的数组来表示二叉树中的节点,那么对于数组中任一位置i上的元素,其左子节点在位置2i上,其右子节点在(2i+1)中,其父节点在i/2」。因此我们可以使用一个一维数组来表示堆数据结构。对于给定的顶点数组,从最后一个节点开始到根节点,逐个扫描所有的节点,根据需要每一次将以当前节点为根节点的子树转换成堆。
4、边折叠,其步骤为:
(1)在模型的顶点误差的最小堆建立之后,可以选择一个最小的误差点进行删除。
(2)对于折叠边的选择采取距离最小的原则,即选择一条与最小点相连的并且长度最小的边,将该边进行折叠产生新的拓扑结构。从图7中不难看出,这一过程相当于将边v0v1进行折叠(即点v0合并到点v1)。
对于特殊顶点来说,并不是其所有的边都可以进行折叠,如图8所示的拓扑结构中,当边(V1,V2)进行折叠时,形成右图所示的拓扑结构,此时原来的三角形面A(V1,V3,V4)的顶点V1应该替换为V2,从而形成新的平面A′(V2,V3,V4),此平面和三角平面B(V3,V2,V4)相同,虽然从绘制的角度看,这两个三角形一个为正面(面A,顶点顺序为顺时针),一个为反面(面B,顶点顺序为逆时针),但从外观看,这破坏了三角网格模型的流行性质,形成了一个独立的三角形面片。因此,规定边(V1,V2)不能进行折叠。一般来说,如果一条边能够折叠,那么这条边的两个顶点的邻接顶点至多只能有两个是相同的。具体解决方法为:判断这条边的两个顶点的邻接顶点中相同顶点的数目是否超过2。对于上图,边(V1,V2)不能折叠,其中顶点V1的邻接顶点为V2、V3、V4、V5、V6,顶点V2的邻接顶点为V3、V4、V1、V6,二者相同的邻接顶点为V3、V4、V6,超过2,所以不能进行折叠。
(3)折叠后要改变邻接顶点的连接性,该点删除的同时需要删除所有与之相连的线和面并重新计算受影响顶点的误差;
5、根据第4步更新后的顶误差更新最小堆。
更新最小堆可能会涉及堆的两个操作:Sift-up操作和Sift-down操作。对于,Sift-up操作,如图6中左边的堆,如果节点32的值变成了10,此时需要不断将节点10上移,直到移到根节点位置,重新保持最小堆性质。同理如果处于父节点中的键值大于任何一个子节点中的键值,此时需要将该节点向下(即向孩子节点方向)移动进行Sift-down操作,最终保持最小堆性质。
6、重复第4步,直到达到简化力度(简化百分比)的要求。
Happy Buddha模型的简化结果请参考图9,其中A为模型原图(1,087,716个面片);B为简化到原模型10%的结果(108,770个面片);C为简化到原模型5%的结果(54,384个面片);D为简化到原模型3%的结果(32,630个面片);E为简化到原模型1%的结果(10,876个面片)。

Claims (5)

1、基于视觉特征度量的三维模型简化方法,其特征在于包括下列步骤:
(1)顶点类型分析,对载入的三维模型的顶点进行连接性分析,将顶点分为普通顶点、边界顶点、特殊顶点和孤立顶点四类;
(2)基于视觉特征度量的误差计算,根据顶点类型计算顶点误差,并保存在相应的顶点中;
(3)根据步骤(2)计算出的顶点误差,构建最小堆;
(4)边折叠,通过选择最小误差点,即选择最小误差边进行边折叠,并且折叠后要改变邻接顶点的连接性,重新计算受影响顶点的误差;
(5)更新最小堆;
(6)重复步骤(4),直到达到简化力度的要求。
2、根据权利要求1所述的基于视觉特征度量的三维模型简化方法,其特征在于:所述的顶点类型分析的方法如下:采用点表和面表的形式来表示的模型网格,顶点的连接性分析记录每一个顶点的邻接顶点信息、邻接面信息,根据邻接顶点和邻接面的信息进行顶点类型判断:普通顶点指三角形的内部顶点,并且这类顶点不包含特殊顶点,在拓扑关系上表现为其邻接顶点的数量和邻接三角形面片的数量是相同的,并且不是特殊顶点;边界顶点指三角形的边界上的点,在拓扑关系上表现为其邻接三角形面片的数量比邻接顶点少一;特殊顶点是一类特殊的内部顶点,它与其中某一个邻接顶点具有超过两个相同的邻接顶点,它的删除可能会导致三角网格性质的变化;孤立顶点是一种无效的顶点,它不与任何顶点组成三角面片,在模型中不起任何作用,是在建模过程中引入的不必要顶点,可以直接删除。
3、根据权利要求1所述的基于视觉特征度量的三维模型简化方法,其特征在于:所述的基于视觉特征度量的误差计算的方法如下:基于视觉特征度量的误差计算公式可表示为:Verror=BaseError+weightdetail×Vdetail+weightoutline×Voutline;
(1)BaseError为基本误差成分,它根据顶点类型的不同,采用不同的方式进行计算,对于普通顶点,采用计算点到面距离的平均值,其中面指在该点的所有邻接顶点中选三个组成一个面,计算该顶点到每个面的距,然后相加,并求其平均值。即 BaseError = 1 n &Sigma; i = 1 n Dis i , 其中 n = C M 3 , M为该点的邻接点数目,Disi为该点到第i个面的距离;对于边界顶点,采用点到两个邻接的边界顶点所组成的线的距离,其中V0点的误差计算根据点V0到直线V1V2的距离;
(2)Vdetail为顶点曲率变化程度的对误差的贡献值,其中Vdetail的计算公式如下:Vdetail=Max(Acos(Vnormal·Fnormali)),Vnormal表示某一点的标准化后的法向量值,Fnormali表示与该点相相连接的第k个三角面片的标准化后的法向量值; Vnormal = 1 n &Sigma; k = 1 n fnormal k , n为该点邻接的三角面片的数量;
(3)Voutline为模型轮廓特征对误差的贡献值,Vdetail的计算公式如下:Voutline=Acos(Vnormal·Viewdirection);Vnormal表示某一点的标准化后的法向量值,Viewdirection表示当前的视点观察方向;
(4)Weightdetail,Weightoutline均为误差项的系数,计算公式如下:
Figure A2006100894340003C4
其中percent为模型的简化力度百分比。
4、根据权利要求1所述的基于视觉特征度量的三维模型简化方法,其特征在于:所述的根据顶点误差大小构建最小堆的方法如下:有创建、向上移Sift-up)、向下移Sift-down;
(1)创建
如果用连续的数组来表示二叉树中的节点,那么对于数组中任一位置i上的元素,其左子节点在位置2i上,其右子节点在(2i+1)中,其父节点在i/2,因此采用一个一维数组来表示堆数据结构;对于给定的顶点数组,从最后一个节点开始到根节点,逐个扫描所有的节点,根据需要每一次将以当前节点为根节点的子树转换成堆;
(2)Sift-up操作
当子节点的值小于父节点中的值的时,这个节点需要和其父节点互换,即向上移动,称之为Sift-up操作;
(3)Sift-down操作
当处于父节点中的键值大于任何一个子节点中的键值,需要将该节点向下,即向孩子节点方向移动,最终保持最小堆性质,称之为Sift-down操作。
5、根据权利要求1所述的基于视觉特征度量的三维模型简化方法,其特征在于:所述的边折叠的方法如下:
(1)在模型的顶点误差的最小堆建立之后,可以选择一个最小的误差点进行删除;
(2)对于折叠边的选择采取距离最小的原则,即选择一条与最小点相连的并且长度最小的边,将该边进行折叠产生新的拓扑结构;
(3)折叠后要改变邻接顶点的连接性,该点删除的同时需要删除所有与之相连的线和面并重新计算受影响顶点的误差。
CNB2006100894349A 2006-06-27 2006-06-27 基于视觉特征度量的三维模型简化方法 Expired - Fee Related CN100545872C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100894349A CN100545872C (zh) 2006-06-27 2006-06-27 基于视觉特征度量的三维模型简化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100894349A CN100545872C (zh) 2006-06-27 2006-06-27 基于视觉特征度量的三维模型简化方法

Publications (2)

Publication Number Publication Date
CN1866299A true CN1866299A (zh) 2006-11-22
CN100545872C CN100545872C (zh) 2009-09-30

Family

ID=37425314

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100894349A Expired - Fee Related CN100545872C (zh) 2006-06-27 2006-06-27 基于视觉特征度量的三维模型简化方法

Country Status (1)

Country Link
CN (1) CN100545872C (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101377857B (zh) * 2008-07-30 2010-06-02 电子科技大学 一种基于八叉树空间划分和顶点删除的三维模型简化方法
CN103544733A (zh) * 2013-10-24 2014-01-29 北京航空航天大学 基于统计形状分析的三维人体头部三角网格模型建立方法
CN103632394A (zh) * 2013-12-02 2014-03-12 江苏科技大学 一种特征保持的模型简化方法
CN103793937A (zh) * 2013-12-10 2014-05-14 中山大学深圳研究院 一种基于密度聚类的三维几何模型的简化方法及其装置
CN106153030A (zh) * 2015-03-25 2016-11-23 高德软件有限公司 一种导航电子地图数据存储方法及装置
CN106447753A (zh) * 2016-08-29 2017-02-22 北京像素软件科技股份有限公司 一种物体模型的渲染简化的方法及系统
CN109448125A (zh) * 2018-09-26 2019-03-08 深圳市华讯方舟太赫兹科技有限公司 一种三角网格模型的处理方法、处理终端及存储介质
CN111739166A (zh) * 2020-05-25 2020-10-02 中国电力工程顾问集团西南电力设计院有限公司 一种应用于输电线路金具三维模型的简化方法
CN113593032A (zh) * 2021-05-24 2021-11-02 北京建筑大学 顾及角度误差的三维建筑模型边折叠简化算法
CN115115801A (zh) * 2021-03-22 2022-09-27 广联达科技股份有限公司 简化三角网格模型的方法、装置、设备及可读存储介质
CN117115392A (zh) * 2023-10-24 2023-11-24 中科云谷科技有限公司 模型图像压缩方法、装置、计算机设备及可读存储介质
CN117974939A (zh) * 2024-01-31 2024-05-03 北京数原数字化城市研究中心 一种网格模型简化方法、装置及相关设备

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101377857B (zh) * 2008-07-30 2010-06-02 电子科技大学 一种基于八叉树空间划分和顶点删除的三维模型简化方法
CN103544733A (zh) * 2013-10-24 2014-01-29 北京航空航天大学 基于统计形状分析的三维人体头部三角网格模型建立方法
CN103544733B (zh) * 2013-10-24 2017-01-04 北京航空航天大学 基于统计形状分析的三维人体头部三角网格模型建立方法
CN103632394A (zh) * 2013-12-02 2014-03-12 江苏科技大学 一种特征保持的模型简化方法
CN103632394B (zh) * 2013-12-02 2016-05-04 江苏科技大学 一种特征保持的模型简化方法
CN103793937A (zh) * 2013-12-10 2014-05-14 中山大学深圳研究院 一种基于密度聚类的三维几何模型的简化方法及其装置
CN106153030A (zh) * 2015-03-25 2016-11-23 高德软件有限公司 一种导航电子地图数据存储方法及装置
CN106447753B (zh) * 2016-08-29 2019-12-17 北京像素软件科技股份有限公司 一种物体模型的渲染简化的方法及系统
CN106447753A (zh) * 2016-08-29 2017-02-22 北京像素软件科技股份有限公司 一种物体模型的渲染简化的方法及系统
CN109448125A (zh) * 2018-09-26 2019-03-08 深圳市华讯方舟太赫兹科技有限公司 一种三角网格模型的处理方法、处理终端及存储介质
CN111739166A (zh) * 2020-05-25 2020-10-02 中国电力工程顾问集团西南电力设计院有限公司 一种应用于输电线路金具三维模型的简化方法
CN115115801A (zh) * 2021-03-22 2022-09-27 广联达科技股份有限公司 简化三角网格模型的方法、装置、设备及可读存储介质
CN113593032A (zh) * 2021-05-24 2021-11-02 北京建筑大学 顾及角度误差的三维建筑模型边折叠简化算法
CN117115392A (zh) * 2023-10-24 2023-11-24 中科云谷科技有限公司 模型图像压缩方法、装置、计算机设备及可读存储介质
CN117115392B (zh) * 2023-10-24 2024-01-16 中科云谷科技有限公司 模型图像压缩方法、装置、计算机设备及可读存储介质
CN117974939A (zh) * 2024-01-31 2024-05-03 北京数原数字化城市研究中心 一种网格模型简化方法、装置及相关设备

Also Published As

Publication number Publication date
CN100545872C (zh) 2009-09-30

Similar Documents

Publication Publication Date Title
CN1866299A (zh) 基于视觉特征度量的三维模型简化方法
US11275353B2 (en) Creating a voxel representation of a three dimensional (3-D) object
CN106898050B (zh) 一种基于环形邻域参照轮廓线的网格模型自适应分层方法
CN107610230B (zh) 一种3d打印数字模型剖切及接口设计方法及应用
CN108595858A (zh) 基于bim的轻量化深度处理工作方法
CN109903396A (zh) 一种基于曲面参数化的牙齿三维模型自动分割方法
CN105427317A (zh) 一种适用于多视角自动化配准多站地面激光点云数据的方法
CN1967596A (zh) 三维扫描系统中三维散乱点集的三角剖分构造方法
CN1885349A (zh) 三维扫描的点云孔洞填补方法
CN109740227A (zh) 基于特征识别的微型复杂零件建模方法
CN107330214A (zh) 基于离散化与启发式进化算法的空间布局优化方法
CN109493344A (zh) 一种大规模城市三维场景的语义分割方法
CN103268634B (zh) 一种外存模型基于顶点聚类的快速并行自适应简化方法
CN103970949B (zh) 一种快速成型中三角面片模型的逐边分层方法
CN102509339A (zh) 一种带纹理约束的三维模型顶点聚类简化方法
CN1858801A (zh) 三维扫描的点云孔洞填补方法
Zhang et al. Adaptive hexahedral mesh generation based on local domain curvature and thickness using a modified grid-based method
CN101276484A (zh) 基于调和映射的网格生成方法
CN105427374B (zh) 一种面向3d打印的模型分解与排列方法
CN113119451A (zh) 面向曲面熔覆多孔隙轻量化结构的3d打印路径规划方法
CN114239356A (zh) 一种基于有限元网格的共形点阵材料设计方法
CN101510226B (zh) 产品stl模型快速自适应细分方法
Zhong et al. As-continuous-as-possible extrusion-based fabrication of surface models
CN117274517A (zh) 基于三维模型的城市建筑物轻量化体框模型的生成方法
KR100340080B1 (ko) 정렬되지 않은 3차원 거리 데이터로부터 캐드모델 생성 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090930

Termination date: 20130627