CAGD: Design of curves Splines & NURBS Alexander Lauser Ferienakademie Sarntal 2004.

Post on 19-Dec-2015

221 views 0 download

transcript

CAGD: Design of curves

Splines & NURBS

Alexander LauserFerienakademie Sarntal 2004

Agenda Motivation Polynomial Interpolation Bézier curves Splines

Smoothness B-Splines

Rational Bézier curves NURBS

Many technological applications

Why designing curves?

Interpolating measuring dataApproximating measuring data

Design of fonts Large sized fonts must be smooth

Calculation of the path for a robot

Design of products (e.g. CAD)

Criterias for curves Controllability

Changes must be predictable in effect Intuitive to use for the designer

Locality Local changes should stay local

Smoothness No sharp bends

Result: Polynomial of degree n Interpolates points by construction (i.e. the

curve goes through these points)

Polynomial interpolation Several conditions (say

n+1) For example: n+1 Points Apply to Solve system of linear

equations Either effective or if you like to,

even efficent

y an xn an 1 x

n 1 a1 x a0

Polynomial interpolation

Very bad locality Tend to oscillate Small changes may result in catastrophe

Bad controllability All you know is, that it interpolates the points

High effort to evaluate curve Imagine a curve with several million given

points

Disadvantages

Approximation Unlike interpolation the points are

not necessarily interpolated Points give a means for controlling

of where the curve goes Often used when creating the

design of new (i.e. non-existing) things No strict shape is given

Bézier curves

Bézier curve Now we are no longer interested in

interpolating all points The curve only approximates a set

of points Bézier curves are a simple, yet

good method Given: n+1 control points b0 , , bn

Bézier – definition Via Bernstein polynomials of degree n

Characteristics Nonnegative Sum to union

i 0

n

Bi

n t 1, t

Bin t n

i1 t n i t i , i 0, n , t 0,1

Bin t 0, i 0, n , t 0,1

Bernstein polynomials of degree 4

Bézier – mathematical Definition of Bézier curve:

x t :i 0

n

biBi

n t with t 0,1

Bernstein polynomials are like „cross-faders“ to the points

They are the weights in a weighted linear combination

Bézier – derivation Derivation of Bernstein polynomial

ddtBin t

ddtni

1 t n i ti

nii ti 1 1 t n i n i ti 1 t n i 1 product rule

n !i 1 ! n i !

ti 1 1 t n i n!i! n i 1 !

ti 1 t n i 1

nn 1 !

i 1 ! n i !t i 1 1 t n i n 1 !

i ! n i 1 !t i 1 t n i 1

n Bi 1n 1 t Bi

n 1 t

Bézier – derivation Derivation of Bézier

ddtx t

ddt i 0

n

biBi

n ti 0

n

bi

ddtBi

n t ni 0

n

biBi 1

n 1 t Bi

n 1 t

ni 1

n

biBi 1

n 1 t ni 0

n 1

biBi

n 1 t with B1

n 1 t 0 Bn

n 1 t 0

ni 0

n 1

bi 1Bi

n 1 t ni 0

n 1

biBi

n 1 t Indexshift

ni 0

n 1

bi 1

biBi

n 1 t Joined sums

Bézier – construction Repeated linear interpolation

P0

P1

P2

P3

t = 0,5

0,5

0,5

0,5 0,5

Good locality Local changes only have local impact Anyway changes are global

Bézier – characteristics Good controllability

Interpolates endpoints (s(0) = b0, s(1) = b1)

x 1 n bn bn 1

Last two points determine the tangent

vector at the end:

x 0 n b1 b0

First two points determine the tangent vector at the start:

Bézier – characteristics Lies within the convex closure of the

control points Useful for collision detection

Invariant under affine transformation You can rotate, translate and scale the

control polygon Complex shape of model implies a great

amount of control points This means the degree of the curve is high So the evaluation of such a curve is slow

Splines

Modelling segmental

Splines Piecewise polynomial segments

Modelling the curve locally by a segment The segments are joined to get the global curve

Name derives from shipbuilding Splines are stripes of metal fixed at several

points.They have the same smoothness as cubic B-

Splines Global parameter u and for each segment si

a local parameter t

Splines – parametrisation Globally parametrised over a

sequence of nodes ui

Each segment si is locally parametrised over [ui, ui+1]

Splines – parametrisation Uniform splines

Uniformly distributed sequence over range of global parameter u

Nonuniform splines Sequence is not uniformly distributed

Segments si „live“ over [ui, ui+1] with local parameter

t = (u – ui) / (ui+1 – ui–1)

Splines – smoothness What does smoothness

mean? Graphically clear: No

sharp bends Mathematical abstraction: Order of

continuous derivability Only nodes and the corresponding

knot-points are relevant others points are infinitely often derivable

Splines – smoothness C0-continuity

The segments meet at the nodes C1-continuity

Curve must be continuously derivable after the global parameter u one time

The „speed“ in respect to global parameter must be the same in the joint both segments

C2-continuity Curve must be continuously derivable 2 times The „acceleration“ must be equal in the joint

Splines – smoothness

C0-continuous Spline

C1-continuous Spline

Splines – smoothness Geometric smoothness: G1-

continuity In every joint there exists a unique

tangent I.e. tangent vectors need not be equal

in magnitude, only direction Doesn‘t take global

parametrisation into account

Splines – smoothness An example for G1-continuous

curve that is not C1-continuous

u0 u1 u2

1 1

21

Splines – smoothness In general

Cx-continuity Gx-continuity But not: Gx-Continuity Cx-continuity

Special case: Stationary point All derivations are zero Then Cx-continuity Gx-continuity

doesn‘t hold

Splines – smoothness

Linear Interpolation Why not interpolate the

points linearily? It is very controllable It is very local since it

changes only 2 segments Right. BUT

It is not very smooth It is only C0-continuous

P1

P2

P3

P4

B-Splines Spline consisting of Bézier

curves Depending on the degree n of

the Bézier segments various orders of continuity possible In general up to Cn–1-

continuouity possible

B-Splines – C1-continuity C1-continuity at knot bi

Tangent vectors must be equal Bézier: Tangent vectors in bi

s0 - points from bi-1 to bi

s1 - points from bi to bi+1

This means bi-1, bi and bi+1 must be collinear

B-Spline: Collinearity of bi-1, bi and bi+1

bi+1bibi-1

s0s1

Bézier: Tangents

B-Splines – C1-continuity But this alone isn‘t sufficient

Furthermore bi-1, bi and bi+1 must satisfy a specific ratio

bi bi 1

bi 1 bi

u1 u0

u2 u1

=: 0

1

bi bi 1

bi 1 bi

11

(for uniform B-Splines)

Why this?

u0 u1 u2

B-Splines – C1-continuity Because we are interested in derivability

for the global parameter Collinearity says that the „speed“ has the

same direction, but not necessarily magnitude Mathematical derivation

ddus u

ddut u

ddts j t

1

j

ddts j t , with j u j 1 u j , t u

u u j

j

, u u j , u j 1

So we have to check1

0

ddts0 1

1

1

ddts1 0

1 bn bn 1 0 bn 1 bn , sinceddts0 1 n bn bn 1 and s1 0 n bn 1 bn

B-Splines – C1-continuity Given: Two Bézier curves How to test C1-continuity

Consider the joint points of the spline and its direct neighbours

When no joint it isn‘t even C0-continuous Are they collinear?

No, then the spline is not C1-continuous Ok, they are collinear

Then check the ratio of the distance from the knot point neighbours to the knot point. It must be same ratio as of the corresponding nodes

B-Splines – C2-continuity C2-continuity at knot bi

Precondition: C1-continuity Nodes bn-2, bn-1, bn and bn, bn+1, bn+2

must describe a unique global quadratic Bézier curve So there must exist a (unique) point

d, so that bn-2, d, bn+2 describe this curve

B-Splines – C2-continuity The point d must fulfill two

conditionsat which t 0

0 1

bn 1 1 t bn 2 t d

bn 1 1 t d t bn 2

u0 u1 u2

B-Splines How to test for C2-continuity First of all test for C1-continuity

If it is not, it cannot be C2-continuous

u0 u1 u2

Check for uniqueness of point d Extrapolate d- from bn-2 and bn-1

Extrapolate d+ from bn+2 and bn+1 d- and d+ must be equal

In Practice specify a tolerance

Quadratic B-Splines Construction of a C1-continuous quadratic

B-Spline Different approach

Per definition we want a C1-continuous curve We do not want to test two segments for

C1-continuity anymore Given are n+1 control points d0 ,..., dn

spanning the control polygon of the B-Spline

Constructing Bézier control points for a C1-continuous quadratic B-Spline

Quadratic B-Splines Construction of Bézier polygon:

b2 i 1: d i , i 0, , n 3b0 : d 0 b2 n 2 : d n

b2 i:i

i 1 i

b2 i 1i 1

i 1 i

b2 i 1

d0

d1

d2

d3

d4

Construction of a uniform quadratic C1-continuous B-Spline with n=5b0 =

b1 =

b6 =b3 =

b5 =

b4

b2 0,5

0,5

Control polygonQuadratic Bézier segments

For uniform B-Splinesb2 i

12b2 i 1

12b2 i 1

Cubic B-Splines Construction of a C2-continuous cubic B-

Spline As for quadratic B-Splines we construct the

Bézier control points bi from the B-Spline polygon spanned by di

Given are n+1 control points d0 ,..., dn again spanning the control polygon of the B-Spline

Constructing Bézier control points for a C2-continuous cubic B-Spline

Cubic B-Splines

Formulas for uniform case (nonuniform version is too ugly ;)

Left end:b0 : d 0 , b1 : d1 , b2 :12d 1

12d 2

b3 i 2:23d i 1

13d i

b3 i 1:13d i 1

23d i

b3 i :12b3 i 1

12b3 i 1 (Remember C1 -condition)

d0

d1

d3d5

d2

d4

b0 =

b1 =

b9 =

= b8

B-Spline polygon

Construction of a uniform C2-continuous cubic B-Spline

b4

b5

b7

b2

b3

b6

Right end:b3 n 2 : d n , b3 n 2 1 : d n 1 , b3 n 2 2 :12d n 2

12d n 1

Cubic Bézier segments

Cubic B-Splines – storage A little off-topic aspect: How to store a

B-Spline For example it could be approximated

linearly and these linear segments could be saved

Obviously inefficient All Bézier control points could be saved

It‘s more efficient but not perfect So what to save?

Answer: Only the di need to be saved Curve can be reconstructed as shown before

Cubic B-Splines – storage The advantages are obvious

No loss of data. The curve can be exactly reconstructed

No problems with rounding errors Little storage space needed The storage is distinct when low-level

storage information is known Theoretical interchangability of file format

saving B-Splines Practice is evidently different

B-Splines – basis What does the „B“ in the name

stand for? It does not stand for „Bézier“ as you

may guess, but for „Basis“ Since there exists a basis representation

for the spline in contrary to natural splines

The basis functions are called the minimum support splines

B-Splines – basis Definition of B-Splines via basis splines

s u :i 0

N n 1

diNi

n u , where Ni

n u are the basis splines

Definition of the basis splines Global over the whole domain of u So that Cn-1-smoothness is assured The support is minimal

That is the range in which it doesn‘t vanish

N in ui 1

B-Spline Basis Ok but how does this look like?

The basis splines over the full domain of u

B-Splines – characteristics Invariant under affine transformations

You can scale, rotate and translate the curve

I.e. the control points and get the same result as doing so with all the points on the curve

Interpolation of end points Excellent locality

Change of one control points affects at most n+1 segments

B-Splines – characteristics Lies within convex closure

of the control points Stricter than for Bézier curve:

Lies within the the union of the convex closures of all segments

A C1-continuous quadratic B-Spline

d0

d1

d2

d6

d7

Convex closure

B-Splines – characteristics Modelling of straight lines possible Even if all local segments are planar,

modelling of true 3D curves is possible E.g. quadratic B-Splines are planar in each

segment but the global curve may be true 3D The degree of the global curve doesn‘t

depend on the number of points Efficient for modelling curves with many

points

Rational Bézier curves

An even more powerful approach

Rational Bézier curves One major disadvantage of Bézier curves are

that they are not invariant under projection This means when perspectively projecting a 3D

Bézier curve on the screen the result is no longer a Bézier curve

For CAGD applications 3D curves are often projected to be displayed on 2D screens

When projected, the original nonrational curve results in a rational curve

This leads us to rational Bézier curves They are invariant under projective

transformation

Rational Bézier curves Definition of a rational Bézier curve

x t : i 0

n

wibiBi

n t

i 0

n

wi B in t

As before the bi are the control points Additionaly every point bi has a weight

wi

Rational Bézier curves You can think of a rational Bézier

curve of the projection of a nonrational one from 4D space to the hyper-plane w=1

The control polyhedron of this is spanned by the 4D points (bi

. wi , wi) The bi are the projection of the bi

.wi to the hyperplane w=1

Rational Bézier curves Let‘s visualize this for a 2D rational

Bézier curve as a projected Bézier curve in 3D to plane z=1

z=1 plane

3D Bézier curve

2D rational Bézier curve

Rational Bézier curves The weights give a further degree of

liberty to the designer Changing the weight differs from moving

the control point

Moving a control point (left) differs heavily from changing its weight (right)

Rational Bézier curves Because they are invariant under

projection the projected curve can be modeled further E.g. a car designer may change the

projected car body Bézier curves are a subset of the

rational Bézier curves Special case: Equal weights

NURBS

Puzzeling with rational curves

NURBS Non Uniform Rational B-Splines B-Splines with rational Bézier curves

Since 3D rational Bézier curves can be thought of as nonrational in 4D, all results of normal B-Splines apply

Especially the continuity conditions are exactly identical, but with 4D control points

This implies that their construction is mathematical identical to that of B-Splines (but as well in 4D)

NURBS Note: NURBS can be defined as well as

B-Splines with Basis Splines

x t : i 0

N n 1

wibiNi

n t

i 0

N n 1

w i N in t

NURBS – characteristics All conic sections (a circle for

example) can be modelled exactly

Constructing a 2D-circle with NURBS

NURBS – characteristics It inherits all advantages of B-

Splines (excellent locality, ...) while extending the liberty of modelling

Therefore today NURBS are standard for modelling

The next logical step is to model not only curves but surfaces This will be discussed in the next

lecture

The End Questions? Thank you for paying attention

SourcesFarin, G.:

Kurven und Flächen im Computer Aided Geometric DesignH.-J. Bungartz, M. Griebel, C. Zenger:

Einführung in die ComputergraphikFoley, van Dam, Feiner, Hughes:

Computer Graphics: Principles and Practice - Second Edition in Chttp://olli.informatik.uni-oldenburg.de/Grafiti3/grafiti/flow10/page1.htmlhttp://www.cs.berkeley.edu/~sequin/CS284/IMGS/http://escience.anu.edu.au/lecture/cg/Spline/bSplineFunction.en.html

Programming is a race between the programmer and the universe: The

programmer trying to make the programm more and more foolproof and

the universe trying to make greater idiots

– so far the universe won.-- Unkown source