Catmull-Clark曲面细分算法。
Catmull-Clark算法流程:
该算法是迭代进行的,每个迭代步骤相同
迭代初始给定graph(V,E), 迭代之后的记为graph(V',E') ,再之后graph(V'',E'')....
迭代次数可根据需要自由决定。
我们只分析其中一个迭代环节的算法
也就是从graph(V,E) 计算到 graph(V',E')
首先对于 graph(V,E)中的每个f, 计算点 p(f)
(1)
之后对graph(V,E)中的每个边e,计算
然后,对graph(V,E)中的每个边e,计算:
其中p(f)在 (1)中已经计算过了。
之后,再计算:
至此,告一段落,我们得到了一组新的点 {p(f)}和{r(e)}
将这些点加入集合 V,的到新的集合 V', 
同时 ,对任意 f属于graph(V,E) ,将 
加入E , 并把 
从 E中全部删除,再把 
加入 E,得到E'
至此,我们得到了graph(V',E')
此时我们还需要做最后一步处理
对任意点v属于V'且属于V ,计算
其中 
是可调参数,通常令 
并在V'中把新的v_c更新为v的坐标
至此,我们得到了从图 graph(V,E)到graph(V',E')的转换, 
这既是Catmull-Clark算法的实现。