Technical specifications Non-uniform rational B-spline




1 technical specifications

1.1 control points
1.2 knot vector
1.3 comparison of knots , control points
1.4 order
1.5 construction of basis functions
1.6 general form of nurbs curve
1.7 general form of nurbs surface





technical specifications

a nurbs curve defined order, set of weighted control points, , knot vector. nurbs curves , surfaces generalizations of both b-splines , bézier curves , surfaces, primary difference being weighting of control points, makes nurbs curves rational. (non-rational, aka simple, b-splines special case/subset of rational b-splines, each control point regular non-homogenous coordinate [no w ] rather homogeneous coordinate. equivalent having weight 1 @ each control point; rational b-splines use w of each control point weight.) using two-dimensional grid of control points, nurbs surfaces including planar patches , sections of spheres can created. these parametrized 2 variables (typically called s , t or u , v). can extended arbitrary dimensions create nurbs mapping




r

n




r

n




{\displaystyle r^{n}\to r^{n}}

.


nurbs curves , surfaces useful number of reasons:-



the set of nurbs given order invariant under affine transformations: operations rotations , translations can applied nurbs curves , surfaces applying them control points.
they offer 1 common mathematical form both standard analytical shapes (e.g., conics) , free-form shapes.
they provide flexibility design large variety of shapes.
they reduce memory consumption when storing shapes (compared simpler methods).
they can evaluated reasonably numerically stable , accurate algorithms.

in next sections, nurbs discussed in 1 dimension (curves). should noted of can generalized 2 or more dimensions.


control points

three-dimensional nurbs surfaces can have complex, organic shapes. control points influence directions surface takes. outermost square below delineates x/y extents of surface.


the control points determine shape of curve. typically, each point of curve computed taking weighted sum of number of control points. weight of each point varies according governing parameter. curve of degree d, weight of control point nonzero in d+1 intervals of parameter space. within intervals, weight changes according polynomial function (basis functions) of degree d. @ boundaries of intervals, basis functions go smoothly zero, smoothness being determined degree of polynomial.


as example, basis function of degree 1 triangle function. rises 0 one, falls 0 again. while rises, basis function of previous control point falls. in way, curve interpolates between 2 points, , resulting curve polygon, continuous, not differentiable @ interval boundaries, or knots. higher degree polynomials have correspondingly more continuous derivatives. note within interval polynomial nature of basis functions , linearity of construction make curve smooth, @ knots discontinuity can arise.


in many applications fact single control point influences intervals active highly desirable property, known local support. in modeling, allows changing of 1 part of surface while keeping other parts unchanged.


adding more control points allows better approximation given curve, although class of curves can represented finite number of control points. nurbs curves feature scalar weight each control point. allows more control on shape of curve without unduly raising number of control points. in particular, adds conic sections circles , ellipses set of curves can represented exactly. term rational in nurbs refers these weights.


the control points can have dimensionality. one-dimensional points define scalar function of parameter. these typically used in image processing programs tune brightness , color curves. three-dimensional control points used abundantly in 3d modeling, used in everyday meaning of word point , location in 3d space. multi-dimensional points might used control sets of time-driven values, e.g. different positional , rotational settings of robot arm. nurbs surfaces application of this. each control point full vector of control points, defining curve. these curves share degree , number of control points, , span 1 dimension of parameter space. interpolating these control vectors on other dimension of parameter space, continuous set of curves obtained, defining surface.


knot vector

the knot vector sequence of parameter values determines , how control points affect nurbs curve. number of knots equal number of control points plus curve degree plus 1 (i.e. number of control points plus curve order). knot vector divides parametric space in intervals mentioned before, referred knot spans. each time parameter value enters new knot span, new control point becomes active, while old control point discarded. follows values in knot vector should in nondecreasing order, (0, 0, 1, 2, 3, 3) valid while (0, 0, 2, 1, 3, 3) not.


consecutive knots can have same value. defines knot span of 0 length, implies 2 control points activated @ same time (and of course 2 control points become deactivated). has impact on continuity of resulting curve or higher derivatives; instance, allows creation of corners in otherwise smooth nurbs curve. number of coinciding knots referred knot multiplicity. knots multiplicity 2 or 3 known double or triple knots. multiplicity of knot limited degree of curve; since higher multiplicity split curve disjoint parts , leave control points unused. first-degree nurbs, each knot paired control point.


the knot vector starts knot has multiplicity equal order. makes sense, since activates control points have influence on first knot span. similarly, knot vector ends knot of multiplicity. curves such knot vectors start , end in control point.


the values of knots control mapping between input parameter , corresponding nurbs value. example, if nurbs describes path through space on time, knots control time function proceeds past control points. purposes of representing shapes, however, ratios of difference between knot values matter; in case, knot vectors (0, 0, 1, 2, 3, 3) , (0, 0, 2, 4, 6, 6) produce same curve. positions of knot values influences mapping of parameter space curve space. rendering nurbs curve done stepping fixed stride through parameter range. changing knot span lengths, more sample points can used in regions curvature high. use in situations parameter value has physical significance, instance if parameter time , curve describes motion of robot arm. knot span lengths translate velocity , acceleration, essential right prevent damage robot arm or environment. flexibility in mapping phrase non uniform in nurbs refers to.


necessary internal calculations, knots not helpful users of modeling software. therefore, many modeling applications not make knots editable or visible. s possible establish reasonable knot vectors looking @ variation in control points. more recent versions of nurbs software (e.g., autodesk maya , rhinoceros 3d) allow interactive editing of knot positions, less intuitive editing of control points.


comparison of knots , control points


a common misconception each knot paired control point. true degree 1 nurbs (polylines). in general, knots break domain knot spans, each control point corresponds 1 basis function spans range of (degree+1) knot spans. example, suppose have degree-3 nurbs 7 control points , knots 0,0,0,1,2,5,8,8,8. first 4 control points grouped first 6 knots. second through fifth control points grouped knots 0,0,1,2,5,8. third through sixth control points grouped knots 0,1,2,5,8,8. last 4 control points grouped last 6 knots.


some modelers use older algorithms nurbs evaluation require 2 knot values total of (degree+n+1) knots.


order

the order of nurbs curve defines number of nearby control points influence given point on curve. curve represented mathematically polynomial of degree 1 less order of curve. hence, second-order curves (which represented linear polynomials) called linear curves, third-order curves called quadratic curves, , fourth-order curves called cubic curves. number of control points must greater or equal order of curve.


in practice, cubic curves ones commonly used. fifth- , sixth-order curves useful, obtaining continuous higher order derivatives, curves of higher orders practically never used because lead internal numerical problems , tend require disproportionately large calculation times.


construction of basis functions

the b-spline basis functions used in construction of nurbs curves denoted




n

i
,
n


(
u
)


{\displaystyle n_{i,n}(u)}

, in



i


{\displaystyle i}

corresponds



i


{\displaystyle i}

control point, ,



n


{\displaystyle n}

corresponds degree of basis function. parameter dependence left out, can write




n

i
,
n




{\displaystyle n_{i,n}}

. definition of these basis functions recursive in



n


{\displaystyle n}

. degree-0 functions




n

i
,
0




{\displaystyle n_{i,0}}

piecewise constant functions. 1 on corresponding knot span , 0 everywhere else. effectively,




n

i
,
n




{\displaystyle n_{i,n}}

linear interpolation of




n

i
,
n

1




{\displaystyle n_{i,n-1}}

,




n

i
+
1
,
n

1




{\displaystyle n_{i+1,n-1}}

. latter 2 functions non-zero



n


{\displaystyle n}

knot spans, overlapping



n

1


{\displaystyle n-1}

knot spans. function




n

i
,
n




{\displaystyle n_{i,n}}

computed as



from top bottom: linear basis functions




n

1
,
1




{\displaystyle n_{1,1}}

(blue) ,




n

2
,
1




{\displaystyle n_{2,1}}

(green) (top), weight functions



f


{\displaystyle f}

,



g


{\displaystyle g}

(middle) , resulting quadratic basis function (bottom). knots 0, 1, 2, , 2.5








n

i
,
n


=

f

i
,
n



n

i
,
n

1


+

g

i
+
1
,
n



n

i
+
1
,
n

1




{\displaystyle n_{i,n}=f_{i,n}n_{i,n-1}+g_{i+1,n}n_{i+1,n-1}}








f

i




{\displaystyle f_{i}}

rises linearly 0 1 on interval




n

i
,
n

1




{\displaystyle n_{i,n-1}}

non-zero, while




g

i
+
1




{\displaystyle g_{i+1}}

falls 1 0 on interval




n

i
+
1
,
n

1




{\displaystyle n_{i+1,n-1}}

non-zero. mentioned before,




n

i
,
1




{\displaystyle n_{i,1}}

triangular function, nonzero on 2 knot spans rising 0 1 on first, , falling 0 on second knot span. higher order basis functions non-zero on corresponding more knot spans , have correspondingly higher degree. if



u


{\displaystyle u}

parameter, ,




k

i




{\displaystyle k_{i}}





i


{\displaystyle i}

knot, can write functions



f


{\displaystyle f}

,



g


{\displaystyle g}

as








f

i
,
n


(
u
)
=



u


k

i





k

i
+
n




k

i







{\displaystyle f_{i,n}(u)={{u-k_{i}} \over {k_{i+n}-k_{i}}}}



and








g

i
,
n


(
u
)
=




k

i
+
n



u



k

i
+
n




k

i







{\displaystyle g_{i,n}(u)={{k_{i+n}-u} \over {k_{i+n}-k_{i}}}}



the functions



f


{\displaystyle f}

,



g


{\displaystyle g}

positive when corresponding lower order basis functions non-zero. induction on n follows basis functions non-negative values of



n


{\displaystyle n}

,



u


{\displaystyle u}

. makes computation of basis functions numerically stable.


again induction, can proved sum of basis functions particular value of parameter unity. known partition of unity property of basis functions.








the figures show linear , quadratic basis functions knots {..., 0, 1, 2, 3, 4, 4.1, 5.1, 6.1, 7.1, ...}


one knot span considerably shorter others. on knot span, peak in quadratic basis function more distinct, reaching one. conversely, adjoining basis functions fall 0 more quickly. in geometrical interpretation, means curve approaches corresponding control point closely. in case of double knot, length of knot span becomes 0 , peak reaches 1 exactly. basis function no longer differentiable @ point. curve have sharp corner if neighbour control points not collinear.


general form of nurbs curve

using definitions of basis functions




n

i
,
n




{\displaystyle n_{i,n}}

previous paragraph, nurbs curve takes following form:







c
(
u
)
=



i
=
1


k






n

i
,
n



w

i







j
=
1


k



n

j
,
n



w

j








p



i


=






i
=
1


k




n

i
,
n



w

i





p



i








i
=
1


k




n

i
,
n



w

i








{\displaystyle c(u)=\sum _{i=1}^{k}{\frac {n_{i,n}w_{i}}{\sum _{j=1}^{k}n_{j,n}w_{j}}}{\mathbf {p}}_{i}={\frac {\sum _{i=1}^{k}{n_{i,n}w_{i}{\mathbf {p}}_{i}}}{\sum _{i=1}^{k}{n_{i,n}w_{i}}}}}



in this,



k


{\displaystyle k}

number of control points






p



i




{\displaystyle {\mathbf {p}}_{i}}

,




w

i




{\displaystyle w_{i}}

corresponding weights. denominator normalizing factor evaluates 1 if weights one. can seen partition of unity property of basis functions. customary write as







c
(
u
)
=



i
=
1


k



r

i
,
n


(
u
)



p



i




{\displaystyle c(u)=\sum _{i=1}^{k}r_{i,n}(u){\mathbf {p}}_{i}}



in functions








r

i
,
n


(
u
)
=




n

i
,
n


(
u
)

w

i







j
=
1


k



n

j
,
n


(
u
)

w

j







{\displaystyle r_{i,n}(u)={n_{i,n}(u)w_{i} \over \sum _{j=1}^{k}n_{j,n}(u)w_{j}}}



are known rational basis functions.


general form of nurbs surface

a nurbs surface obtained tensor product of 2 nurbs curves, using 2 independent parameters



u


{\displaystyle u}

,



v


{\displaystyle v}

(with indices



i


{\displaystyle i}

,



j


{\displaystyle j}

respectively):







s
(
u
,
v
)
=



i
=
1


k





j
=
1


l



r

i
,
j


(
u
,
v
)



p



i
,
j




{\displaystyle s(u,v)=\sum _{i=1}^{k}\sum _{j=1}^{l}r_{i,j}(u,v){\mathbf {p}}_{i,j}}



with








r

i
,
j


(
u
,
v
)
=




n

i
,
n


(
u
)

n

j
,
m


(
v
)

w

i
,
j







p
=
1


k





q
=
1


l



n

p
,
n


(
u
)

n

q
,
m


(
v
)

w

p
,
q







{\displaystyle r_{i,j}(u,v)={\frac {n_{i,n}(u)n_{j,m}(v)w_{i,j}}{\sum _{p=1}^{k}\sum _{q=1}^{l}n_{p,n}(u)n_{q,m}(v)w_{p,q}}}}



as rational basis functions.








Comments

Popular posts from this blog

Thenkalai and Vadakalai sub-traditions Sri Vaishnavism

Discography Pallas (band)

History Flexible-fuel vehicles in the United States