细分曲面

细分曲面(Subdivision surface),又翻译为子分曲面,在电脑图形学中用于从任意网格创建光滑曲面。细分曲面定义为一个无穷细化过程的极限。它们由Edwin CatmullJim Clark,还有Daniel Doo和Malcom Sabin在1978年同时引入。在1995年之前该方法没有什么进展,直到Ulrich Reif解决了细分曲面在特殊点附近的行为。

最基本的概念是细化。通过反复细化初始的多边形网格,可以产生一系列网格趋向于最终的细分曲面。每个新的子分步骤产生一个新的有更多多边形元素并且更光滑的网格。

立方体的Catmull-Clark子分的最初三步和细分曲面

子分方法

有几种细化方案:

  • Catmull-Clark是双三次B-样条的推广
  • Doo-Sabin是双二次均匀B-样条的推广
  • Loop 是二次三角形box样条的推广,由Charles Loop发明。(可以用于三角形网格)
  • 蝶型 因为该方案的形状得名
  • 中边(Midedge)
  • Kobbelt 是变分法子分方法,它试图克服均匀子分的缺点。

相对于NURBS模型的优点

在主要的建模软件中,细分曲面建模现在比非均匀有理B样条(NURBS)建模更为流行。因为它们有很多优点:

  • 适用于任意拓扑结构
  • 数值上稳定
  • 实现简易
  • 局部连续性控制
  • 局部细化

和B-样条的关系

B-样条曲线可以细化:他们的控制点序列可以细化而迭代进程收敛于实际曲线。这对于曲线来讲毫无用处,但是它推广到曲面就产生了细分曲面。

细化进程

插值过程在保持原有定点不动的情况下插入新的

细化过程在子分的每一步插入新的顶点并移动旧的定点。

特殊点

Catmull-Clark细化方案是双三次均匀B-样条的一个推广。曲面的等价于一个4x4控制点格点的每一部分代表一个双三次均匀B-样条片。曲面细化在控制点(相邻点个数)等于4的那些区域很容易进行。定义价不是4的定点的细分曲面曾经很困难;这样的点称为特殊点。类似的,在Doo-Sabin方案中的特殊点是价不是3的点。

多数方案在子分过程中不产生新的特殊点。

外部链接