算法思想:
更新原有的顶点
如果原有顶点为边界点(用这个点查找只能查找到一个三角面片),new_v(顶点的新坐标)=3/4*org_v(这个点的原坐标)+1/4*(v1+v2);v1、v2分别是这个三角面片上另外两个顶点。
这个顶点有多个邻接面片时,new_v(顶点的新坐标)=(1−nβ)⋅org_v(这个点的原坐标)+β(v1+v2+v3+......),其中v1、v2、v3....是这个点的邻接顶点坐标
新增顶点(原则是根据每个边去新增顶点)
当边为边界边时(共享这个边的只有一个三角面片)新增顶点坐标new_v=1/2*(v1 + v2)。其中v1、v2是这条边的两个顶点
当边为内部边时(共享这个边的有两个三角面片),设内部边的两个端点为v0、v1,相对的两个顶点为v2、v3,则新增加的顶点位置为v = 3/8*(v0 + v1) + 1/8*(v2 + v3)。
面片结构图例

注意:每次参与计算的都是原模型上点的坐标,没有新的坐标参与运算