NURBS는 Non-Uniform Rational B-Spline의 약자로, 곡선과 곡면에 대한 정확한 수학적 표현으로, 다음과 같이 표현된다.
$$ C(u) = \frac{\sum_{i=0}^{n} N_{i,p}(u) w_i P_i} {\sum_{i=0}^{n} N_{i,p}(u) w_i} $$
$P_i$ : control point
$w_i$ : weight (각 control point의 영향력을 조절하는 값)
$N_{i,p}(u)$ : B-spline basis function of degree $p$
NURBS 곡선과 곡면은 degree, control point, knot, evaluation rule에 의해 제어된다.
Degree는 B-spline basis function의 차수이다.
B-spline basis는 Cox-de Boor recursion으로 정의되며, degree 0의 경우 다음과 같다.
$$ N_{i,0}(u) = \begin{cases} 1 & \text{if } u_i \le u < u_{i+1} \\ 0 & \text{otherwise} \end{cases} $$
재귀식의 경우,
$$ N_{i,p}(u)=\frac{u-u_i}{u_{i+p}-u_i}N_{i,p-1}(u)+\frac{u_{i+p+1}-u}{u_{i+p+1}-u_{i+1}}N_{i+1,p-1}(u)
$$
이다. 결과하는 Basis Function의 형태는 따라서 다음과 같이 변한다.
| Degree | Basis Function |
|---|---|
| 1 | linear (일차) |
| 2 | quadratic (이차) |
| 3 | cubic (3차) |
| 4 | quintic (5차) |
결과적으로, degree가 높을 수록 더 복잡한 곡률 변화를 표현할 수 있다. (실무적으로는 제한함)
높은 degree spline 공간은 낮은 degree spline 공간을 포함한다. 이에 NURBS는 degree를 증가하면서 동일한 곡선을 유지할 수 있다 (Degree Elevation).
해당 과정은 서로 다른 degree를 가지는 면에 대해 연속성을 계산하기 위해 degree를 일치시키는 과정에서 사용된다.