PN三角形算法-基于matlab圆周率的几种近似计算方法及实现
此细分表面更加光滑,细分表面是C1连续的。 1.4 Loop算法[4]是一种实现简单的逼近细分算法。细分过程包括生成边点和移动原有顶点2步,最终生成切平面连续的光滑表面。若vr表示Vr的顶点,vi r+1表示Vr+1的边点,n为vr的原子阶数,新边点以及移动后的顶点位置计算如下: 1 1 13 3 ( 1, 2, , ) 8 r r r i i v v v i n+ − + + = = ⋯ (4) 1 1( ) r r nn v v vv n n α α + += + (5)其中, (1 ( )) ( ) n a n α − = , 25 (3 2cos(2 / )) ( ) 8 64 n a n + π = − 。式(4)和式(5)分别对应于边细分掩膜和顶点细分掩膜,如图3(a)和图3(d)所示。图3顶点和边细分掩膜在一般情况下难以得到极限表面的闭式(closed form)公式,然而细分表面的属性例如顶点的极限位置以及切平面是可计算的。极限点(v∞)表示为初始顶点位置的仿射组合: 0 0 0 1 2 1 1 1 2 1 n n n f v v f f f ∞ + + + = + + + (6)其中,(f1, f2,⋯, fn+1)表示局部细分矩阵Sn的主本征向量。考虑极限点处的光滑性,其切向量可通过利用Sn的对应于重数为2的次最大本征值的2个本征向量计算得到: 0 0 0 1 1 1 2 2 0 0 0 2 2 1 3 2 1 n n n c v = + + + u u (7)其中, cos(2 / )ic i n= π来张成细分表面的切平面。 1.5分段光滑表面重构算法分段光滑表面重构(piecewise smooth surface recons- truction)算法[5]是在Loop算法的基础上,提出明显边(sharp edge)的概念以及对其进行特殊处理,产生了尖锐特征,包括折痕(crease)、角(corner)和镖(dart)。新的边点和移动后顶点的位置依据顶点和边细分掩膜进行计算,掩膜如图3所示。其中,粗线表示明显边。该算法由3个阶段组成:(1)判断表面的拓扑结构;(2)进行网格优化,提高精确性和简明性;(3)分段光滑优化,得到分段光滑表面。网格优化问题可看作能量函数最小化的问题。若K表示点线面的连通性,它决定网格的拓扑结构,V表示一系列顶点位置,用于定义网格的形状,阶段(2)的能量函数为( , ) ( ) ( , )dist rep springE K V E K V= + + (8)其中,Edist表示数据点到网格的平方距离;Erep与顶点数量呈比例,Espring用于控制网格的光滑程度。若L表示明显边集合,阶段(3)的能量函数定义为( , , ) ( , , )dist rep sharpE K L V c m c e= + + (9)其中,crepm表示顶点数目为m的罚项;csharpe表示明显边数目为e的罚项。 1.6 Sqrt3算法[6]不同于二价(dyadic)细分,对给定初始网格中的每一个三角形单元插入一个新的顶点,将每个三角形分成3个小三角形。在向三角形△(pi,pj,pk)插入新顶点q时1 ( ) 3 i j k q P P P= + + (10)若p表示一个原子阶为n的顶点,p0, p1,..., pn-1为相邻顶点,细分网格顶点为: 1 0 1 ( ) (1 ) n n n i i S P P P n α α − = = − + ∑ (11)其中, 4 2cos(2 ) 9n n α − π = 。三角形单元数量增加缓慢,而且不存在二价细分过程中的临时三角扇形,Sqrt3算法适用于自适应细分。当来自不同细分层次的三角形共享一个顶点时,其位置难以确定。Sqrt3算法通过执行多步光滑规则来得到任意细分层次的顶点位置。多步规则是式(11)的一般化形式,允许对细分矩阵S的任意次幂进行直接估计。通过对细分矩阵S进行特征分析可得1 0 1 ( ) (1 ( )) ( ) n m n n i i S p m p n β β − = = − + ∑ (12)其中, 2 3 3 3( ) 1 3 m n n n m α α α β α ⎛ ⎞− −⎜ ⎟ ⎝ ⎠= + 。若已知顶点的初始位置为p以及其在极限表面上的位置( ) ( )p S p∞ ∞= ,则式(12)可写为( ) ( ) (1 ( ))m n nS p m pγ γ ∞= + − (13)其中, 2( ) 3 m n nmγ α ⎛ ⎞ = −⎜ ⎟ ⎝ ⎠ ,从而得到任意细分层次的顶点位置。边界细分是每隔一步进行的,避免了尖锐三角形的产生。 1.7 PN三角形算法[7]利用一块3次Bezier补片(patch)来取代一个平面三角形,以及用2次法线变化来替代Gouraud明暗处理法,这种替换只需基于给定平面三角形的3个顶点及相应的三条法线。这种补片称为PN三角形,可被剖分为用户指定数量的平面三角形。PN三角形与平面三角形在3个顶点处进行位置和法线信息匹配,见图4。
240.54KB
文件大小:
评论区