Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides...

19
Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel

Transcript of Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides...

Page 1: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

Bezier and Spline Curves and Surfaces

CS4395: Computer Graphics 1

Mohan SridharanBased on slides created by Edward Angel

Page 2: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

Objectives

• Introduce the Bezier curves and surfaces.

• Derive the required matrices.

• Introduce the B-spline and compare it to the standard cubic Bezier.

CS4395: Computer Graphics 2

Page 3: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

Bezier’s Idea

• In graphics and CAD, we do not usually have derivative data.

• Bezier: use the same 4 data points as with the cubic interpolating curve to approximate the derivatives in the Hermite form.

CS4395: Computer Graphics 3

Page 4: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

Approximating Derivatives

CS4395: Computer Graphics 4

p0

p1p2

p3

p1 located at u=1/3 p2 located at u=2/3

3/1

pp)0('p 01

3/1

pp)1('p 23

slope p’(0) slope p’(1)

u

Page 5: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

Equations

CS4395: Computer Graphics 5

p(0) = p0 = c0

p(1) = p3 = c0+c1+c2+c3

p’(0) = 3(p1- p0) = c0

p’(1) = 3(p3- p2) = c1+2c2+3c3

Interpolating conditions are the same:

Approximating derivative conditions:

Solve four linear equations for c=MBp

Page 6: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

Bezier Matrix

CS4395: Computer Graphics 6

1331

0363

0033

0001

MB

p(u) = uTMBp = b(u)Tp

blending functions

Page 7: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

Blending Functions

CS4395: Computer Graphics 7

u

uu

uu

u

u

3

2

2

3

)1(2

)1(3

)1(

)(b

Note that all zeros are at 0 and 1 which forces the functions to be smooth over (0,1).

Page 8: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

Bernstein Polynomials

• The blending functions are a special case of the Bernstein polynomials:

• These polynomials give the blending polynomials for any degree Bezier form:– All zeros at 0 and 1.– For any degree they all sum to 1.– They are all between 0 and 1 inside (0,1) .

CS4395: Computer Graphics 8

)1()!(!

!)(kd uu

kdk

dub

kdk

Page 9: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

Convex Hull Property

• The properties of the Bernstein polynomials ensure that all Bezier curves lie in the convex hull of their control points.

• Hence, even though we do not interpolate all the data, we cannot be too far away.

CS4395: Computer Graphics 9

p0

p1 p2

p3

convex hull

Bezier curve

Page 10: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

Bezier Patches

CS4395: Computer Graphics 10

Using same data array P=[pij] as with interpolating form:

vupvbubvup TBB

Tijj

i ji MPM

)()(),(3

0

3

0

Patch lies inconvex hull

Page 11: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

Analysis

• Although Bezier form is much better than interpolating form, the derivatives are not continuous at join points.

• Can we do better?

• Go to higher order Bezier:– More work.– Derivative continuity still only approximate.– Supported by OpenGL.

• Apply different conditions:– Tricky without letting order increase!

CS4395: Computer Graphics 11

Page 12: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

B-Splines

• Basic splines: use the data at p=[pi-2 pi-1 pi pi-1]T to define curve only between pi-1 and pi

• Allows to apply more continuity conditions to each segment.

• For cubics, we can have continuity of function, first and second derivatives at join points.

• Cost is 3 times as much work for curves:– Add one new point each time rather than three.

• For surfaces, we do 9 times as much work!

CS4395: Computer Graphics 12

Page 13: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

Cubic B-spline

CS4395: Computer Graphics 13

1331

0363

0303

0141

MS

p(u) = uTMSp = b(u)Tp

Page 14: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

Blending Functions

CS4395: Computer Graphics 14

u

uuuuu

u

u

3

22

32

3

3331

364

)1(

6

1)(b

convex hull property

Page 15: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

B-Spline Patches

vupvbubvup TSS

Tijj

i ji MPM

)()(),(3

0

3

0

CS4395: Computer Graphics 15

defined over only 1/9 of region

Page 16: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

Splines and Basis

• If we examine cubic B-splines from the perspective of each control (data) point, each interior point contributes (through the blending functions) to four segments.

• We can rewrite p(u) in terms of the data points as:

defining the basis functions {Bi(u)}

CS4395: Computer Graphics 16

puBup ii )()(

Page 17: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

Basis Functions

CS4395: Computer Graphics 17

2

21

11

12

2

0

)1(

)()1(

)2(

0

)(

3

2

1

0

iu

iui

iuiiui

iui

iu

ub

ubub

ub

uBi

In terms of the blending polynomials:

Page 18: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

Generalizing Splines

• We can extend to splines of any degree.

• Data and conditions do not have to given at equally spaced values (the knots).– Non-uniform and uniform splines.– Can have repeated knots:

• Can force splines to interpolate points.

• Cox-deBoor recursion gives method of evaluation.

CS4395: Computer Graphics 18

Page 19: Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.

NURBS

• Non-Uniform Rational B-Spline curves and surfaces add a fourth variable w to x, y, z.– Interpret as weight to give importance to some data.– Can also interpret as moving to homogeneous

coordinates!

• Requires a perspective division– NURBS act correctly for perspective viewing.

• Quadrics are a special case of NURBS.

CS4395: Computer Graphics 19