关于cot算子和均匀算子的对比
【1】定义:
均匀算子: L i = 1 n ∑ 1 n v i − v i L_i =\frac{1}{n}\sum_1^nv_i-v_i Li=n1∑1nvi−vi。
其中,n是一邻域内点的个数, v i v_i vi。
cot算子: K i = 1 2 A i ∑ j ∈ N i ( c o t α i , j + c o t β i , j ) ( v j − v i ) K_i = \frac{1}{2A_i}\sum_{j\in{N_i}}(cot\alpha_{i,j}+cot\beta_{i,j})(v_j-v_i) Ki=2Ai1∑j∈Ni(cotαi,j+cotβi,j)(vj−vi)
其中, α , β \alpha,\beta α,β是 ( v i , v j ) (v_i,vj) (vi,vj)边对应的相邻的两个三角形所对着的角。
【2】关于两个算子的一些分析
1、均匀算子相当于构造了一个当前顶点位置-重心的向量场,而优化的目标是,从几何的角度看,可以说平滑的目标是为了使得该向量场尽可能的小,如果将其看成热方程,可以视作,使得其散度尽可能的小。
2、cot算子在构造每个顶点的权重时时候是考虑了每条边的长度的,这点可以从cot函数的特点看出来随着角度的增大cot的值会变小,我们知道在一个三角形中”大边对大角“,因此,小角度对应的点权重会很高,而大角所对的(在一个三角形里)相对较长的边的权重会比较低。一个需要特别考虑的场景是
当
α
+
β
>
180
\alpha+\beta>180
α+β>180时,此时的参数将会出现负数,此时非但不会起到平滑作用,甚至有可能会逆平滑。
因此,我们可以说,cot算子并不完全追求把顶点移动到一邻域的重心位置,它会在给那些相对更近的点更高的权重,而给相对较远的点较低的权重。
但,另一方面,它也在追求在考虑进角度和边长之后,使得局部尽可能的光滑,它的目标是使得平均曲率尽可能的小,而平均曲率达到尽可能小的曲面,被称为极小曲面。换言之,经过拉普拉斯平滑的曲面是一个极小曲面。
下面通过一个例子,来说明两个算子的区别
我们用两种方式来求顶点v的位置,假定 v 0 = ( − 1 , 0 ) , v 1 = ( 0 , − 1 ) , v 2 = ( 3 , 0 ) , v 3 = ( 0 , 1 ) , v 4 = ( − 1 , − 1 ) , v 5 = ( 3 , 1 ) v_0=(-1,0),v_1=(0,-1),v_2=(\sqrt3,0),v_3=(0,1),v_4=(-1,-1),v_5=(\sqrt3,1) v0=(−1,0),v1=(0,−1),v2=(3,0),v3=(0,1),v4=(−1,−1),v5=(3,1)。
针对均匀算子: v = 1 5 ∑ i = 0 5 v i = ( 2 ∗ 3 − 1 5 , 0 ) v=\frac{1}{5}\sum_{i=0}^5v_i=(2*\frac{\sqrt3-1}{5},0) v=51∑i=05vi=(2∗53−1,0)
而cot算子: v = ( 1.5 + 3 ) ∗ ( v 0 + 0.5 ∗ ( 1 + 3 ) ∗ ( v 1 + v 3 ) + 1 / 3 ∗ v 2 ) = ( 0 , 0 ) v=(1.5+\sqrt3)*(v_0+0.5*(1+\sqrt3)*(v_1+v_3)+1/\sqrt3*v_2)=(0,0) v=(1.5+3)∗(v0+0.5∗(1+3)∗(v1+v3)+1/3∗v2)=(0,0)
可以看到,通过均匀算子将顶点v从原点向x轴正向移动了0.293,而在cot算子的平滑中, v 4 , v 5 v_4,v_5 v4,v5的权重为0,不参与计算,顶点v的位置经过平滑后未被移动。(因为对于一个平面来说,它的平均曲率就是为0的,不需要移动。)
这里有一个需要关注的点,均匀算子顶点的移动受距离较远的点影响很大,顶点的位置的移动也很大。
【3】两个算子各自的特性:
1、网格质量:cot算子受拓扑影响大,对质量比较差的网格比较敏感,而均匀算子对这方面的要求则没有那么苛刻。
角度的计算和点的连接度有关,一个点度太高,则角度一定会小,同样点太少角度一定会大,算子的计算结果可能差异会比较大。
均匀算子则不受度的影响。
2、边长变化(顶点分布):
均匀算子:追求把顶点移动到一邻域的中心,在补洞时,边界位置它的边长是固定的,所以,边界位置的均匀算子在计算顶点位置时,会受到边长的影响,而越远离边界的位置,则越不受边长因素的影响,也就是说,当补洞顶点过少或者过多时,会造成从边界到中心边长的一个明显的变化趋势,中心位置的边长的更长(顶点分布更稀疏)或者更短(顶点分布更密集),而不会在整个补洞区域内均匀分布。
cot算子:顶点位置只要满足使得其平均曲率最小即可,对于位置的要求相较均匀算子更加宽松。所以,这种影响在cot算子下会更小。
3、曲率变化
在补洞的顶点过多时,它的曲率变化将会尽可能的往中间传递,曲率在边界和中心位置的分布会出现非常大的不均匀。边界会比较平滑,而中心会凹或者凸起。所以,补洞点的数量的选择最好不要比现有密度多很多。cot算子在类似情况下,敏感性会有所降低。