Doo-Sabin细分算法是二次均匀B样条曲面二分技术的推广。不同于Loop细分算法,Doo一Sabin细分算法是一种基于四边形控制网格的细分算法。
算法描述
对于每一个控制网格的面f,设其顶点为V_k^old(k=1,...n),则新的顶点用下列公式计算
对于初始控制网格(如图1)的每个面用上述公式生成新顶点(如图2(a)),然后用下述连接规则完成一次细分
- 对于初始控制网格中的每个面,新的面可以通过连接该面的所有新顶点得到(图2(b)。
- 对于初始控制网格中的每条边,连接该边左右面相应的新顶点生成新的面(图2(c))。
- 对于初始控制网格中的每个顶点,连接相交于该顶点的所有面相应的新顶点生成新的面(图2(d))。
算法效果
图3的初始控制网格细分一、二、三次的效果分别如图3(b)、(c)和(d)所示。