1

我已经阅读了 Pilot3d ( http://www.pilot3d.com/NurbSecrets.htm ) 的“NURBS 的肮脏小秘密”一文,并对位于表面的控制点很感兴趣。

它确实解释了每个控件都有一个各自的表面点,但它并没有解释它们是如何找到的以及如何移动表面控制点转换为原始控制点。如果我不得不猜测,当控制点的贡献达到最大值时,您会通过寻找表面上的点来找到表面控制点。不确定将更改转换回原始控制点

4

1 回答 1

1

我只是想一想就知道了这一点。

如果考虑一般 NURBS 方程:

纽布斯方程

假设 C(u_pi) 是表面上与控制点关联的点(您如何决定这在技术上是任意的,但似乎最接近控制点的表面点会产生最佳结果)并且您想移动它由一个向量 M。

所以现在你需要找到考虑到这个翻译的新 P_i。如果我们采用一般等式并减去除 P_i(我们感兴趣的控制点)之外的所有控制点的贡献,那么我们得到以下等式(假设所有权重均为 1):

N_i,n * P_i + M = N_i,n * (P_i+P_idelta)

然后我们可以很容易地看到:

M = N_i,n*P_idelta

因此,您可以通过移动曲面上的点而不是控制点来控制 NURBS 曲面的形状。这种方法的缺点是附近的表面点也会移动,但速度不快。您可以通过在多个控制点上散布增量来轻松控制效果的散布。

于 2017-01-02T16:06:43.267 回答