自由变形技术Free-Form Deformation是编辑几何模型的重要手段,它于80年代由Sederberg等人提出,目前许多三维建模软件中都有这种变形算法。自由变形方法在变形过程中并不是直接操作几何模型,而是把几何模型嵌入到变形空间,然后通过操作变形空间来使得嵌入其中的几何模型发生变形,如图所示。
自由变形算法主要过程如下:
1. 创建一个平行六面体的变形空间框架,将待变形几何模型嵌入这个框架中,同时建立局部坐标系,计算几何模型的顶点在局部坐标系下的坐标:
其中,S、T、U可以认为是这个变形框架的3个边长向量,并且0 < s < 1、0 < t < 1、0 < u < 1。需要注意的是,在变形过程中,几何模型顶点的局部坐标(s, t, u)都是固定不变的。
2. 移动变形框架控制点,利用几何模型顶点的局部坐标(s, t, u)、控制点世界坐标和Bernstein多项式重新计算几何模型每个顶点的世界坐标:
其中P(i, j, k)为框架控制点的新坐标,l、m、n分别为在S、T、U坐标轴上划分的格子数目。
本文为原创,转载请注明出处:http://www.cnblogs.com/shushen。
参考文献:
[1] Sederberg, Thomas W., and Scott R. Parry. "Free-form deformation of solid geometric models." international conference on computer graphics and interactive techniques 20.4 (1986): 151-160.
[2] https://en.wikipedia.org/wiki/Bernstein_polynomial
附录
n阶Bernstein基础多项式的表达形式为:
例如:。
Bernstein基础多项式的一个重要性质是其所有项之和为1:
n阶Bernstein基础多项式可以组成一个多项式向量空间Πn,那么空间中任意一点可以表示成Bernstein基础多项式的线性组合:
其中βv为Bernstein系数或Bézier系数,其实上面的表达式就是Bézier曲线的表达式。