所以我最近阅读了很多关于nurbs的内容并且完全理解了nurbs曲线(甚至为它编写了一个小型库)。但我对表面有一些问题。我可以看到我需要两组控制点。我的问题是这两组中的点之间有什么区别? 任何人都可以简单解释一下,或者给我一些链接吗?
答案 0 :(得分:2)
我认为我最喜欢理解NURBS曲面的方法(如果你已经理解了NURBS曲线)就是电线上的珠子。
那么,让我们看一下Bezier曲面的更简单的例子(我假设您了解NURBS曲线,您了解贝塞尔曲线)。
三次贝塞尔曲线有4个控制点。想象一下Bezier曲线,它只是一条平滑的水平曲线。您可以在给定参数值(通常称为t)的情况下计算该曲线上的任何点。只需将t插入曲线的参数方程中,就会产生一个点。
现在假设您有4条水平贝塞尔曲线,每条曲线都在另一条曲线上方。如果将相同的参数值插入所有4条曲线,则得到4个点,每条曲线一个。那些是电线上的珠子。让我们调用水平曲线's的参数值。
取这4个“珠子”点并将它们视为垂直曲线的控制点。在另一个参数值(这个我们称之为't',像往常一样)评估该曲线,它会给你一个观点。这一点在表面上。具体来说,那就是P(s,t)点。
因此,给定4x4网格控制点,您可以在线上使用珠子来计算表面上的点。随着s的变化,珠子沿着导线扫出不同的曲线。所有这些曲线的集合就是表面。
你可以用Nurbs曲线做同样的事情..你只需要一个s的结矢量,t的另一个结矢量和一个控制点网格。
答案 1 :(得分:0)
对于NURBS曲面,您不需要两组控制点,您需要一个二维网格或控制点网格。该网格将具有n行和m列,并且网格中的每个点将具有x,y和z坐标以及w值,即该点的NURBS权重。