bspline notes

27
Bspline Notes Jordan Smith UC Berkeley CS184

Upload: camdyn

Post on 05-Jan-2016

46 views

Category:

Documents


0 download

DESCRIPTION

Bspline Notes. Jordan Smith UC Berkeley CS184. Outline. Bézier Basis Polynomials Linear Quadratic Cubic Uniform Bspline Basis Polynomials Linear Quadratic Cubic Uniform Bsplines from Convolution. Review of B é zier Curves DeCastlejau Algorithm. V 001. V 011. V 111. V 000. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Bspline Notes

Bspline Notes

Jordan Smith

UC Berkeley

CS184

Page 2: Bspline Notes

Outline

• Bézier Basis Polynomials– Linear– Quadratic– Cubic

• Uniform Bspline Basis Polynomials– Linear– Quadratic– Cubic

• Uniform Bsplines from Convolution

Page 3: Bspline Notes

Review of Bézier CurvesDeCastlejau Algorithm

V001

V111V000

V011

Insert at t = ¾

Page 4: Bspline Notes

Review of Bézier CurvesDeCastlejau Algorithm

001

000 111

011

Insert at t = ¾

Page 5: Bspline Notes

Review of Bézier CurvesDeCastlejau Algorithm

001

000 111

011

00¾

¾11

0¾1

Insert at t = ¾

Page 6: Bspline Notes

Review of Bézier CurvesDeCastlejau Algorithm

001

000 111

011

00¾

¾¾1

¾11

0¾10¾¾

Insert at t = ¾

Page 7: Bspline Notes

Review of Bézier CurvesDeCastlejau Algorithm

001

000 111

011

00¾

¾¾1

¾11

0¾10¾¾

¾¾¾

Insert at t = ¾

Page 8: Bspline Notes

Review of Bézier CurvesDeCastlejau Algorithm

001

000 111

011

00¾

¾¾1

¾11

0¾10¾¾

¾¾¾

Insert at t = ¾

Page 9: Bspline Notes

Review of Bézier CurvesDeCastlejau Algorithm

001

000 111

011

00¾

¾¾1

¾11

0¾10¾¾

¾¾¾

Insert at t = ¾

Page 10: Bspline Notes

Review of Bézier CurvesDeCastlejau Algorithm

001

000 111

011

00¾

¾¾1

¾11

0¾10¾¾

¾¾¾

Insert at t = ¾

Page 11: Bspline Notes

Bézier Curves Summary

• DeCastlejau algorithm– Evaluate Position(t) and Tangent(t)– Subdivides the curve into 2 subcurves with

independent control polygons

• Subdivision of Bézier curves and convex hull property allows for:– Adaptive rendering based on a flatness criterion– Adaptive collision detection using line segment

tests

Page 12: Bspline Notes

Linear Bézier Basis Poly’s

Bez1(t) = Vt

V0 V1

V0 Vt V1

= (1-t) V0 + t V1

1-t t

Knots:-1 0 1 2

Page 13: Bspline Notes

Quadratic Bézier Basis Poly’sV01

Vtt

V0t Vt1

V00 V01 V11

1-t t1-t t

1-t t

Bez2(t) = = (1-t)2 V00

+ 2(1-t)t V01

+ t2 V11

V00

V0t

V11

Vt1Vtt

Page 14: Bspline Notes

Knots:

Quadratic Bézier Basis Poly’s

Bez2(t) = (1-t)2 V00 + 2(1-t)t V01 + t2 V11

-1 0 1 2

Page 15: Bspline Notes

Cubic Bézier Basis Poly’s001

111

011

00t

tt1

t11

0t1

0tt ttt

Vttt

V0tt Vtt1

V00t V0t1 Vt11

V111V011V001V000

1-t t1-t t1-t t

1-t t1-t t

1-t t

Bez3(t) = = (1-t)3 V000

+ 3(1-t)2t V001

+ 3(1-t)t2 V011

+ t3 V111

000

Page 16: Bspline Notes

Knots:

Cubic Bézier Basis Poly’s

Bez3(t) = (1-t)3 V000 + 3(1-t)2t V001 + 3(1-t)t2 V011 + t3 V111

-1 0 1 2

Page 17: Bspline Notes

Blossoming of Bsplines234

123 456

345

0 1 765432Knots:

Page 18: Bspline Notes

Blossoming of Bsplines234

123 456

345

233.5 3.545

33.54

0 1 765432 3.5Knots:

Page 19: Bspline Notes

Blossoming of Bsplines234

123 456

345

233.5 3.545

33.5433.53.5 3.53.54

0 1 765432 3.5Knots:

Page 20: Bspline Notes

Blossoming of Bsplines234

123 456

345

233.5 3.545

33.5433.53.5 3.53.54

0 1 765432 3.5

3.53.53.5

Knots:

Page 21: Bspline Notes

Bspline Blossoming Summary• Blossoming of Bsplines is a generalization of the

DeCastlejau algorithm• Control point index triples on the same control

line share 2 indices with each other• Inserting a knot (t value)

– Adds a new control point and curve segment– Adjusts other control points to form a control polygon

• Inserting the same t value reduces the parametric continuity of the curve

• A control point triple with all 3 indices equal is a point on the Bspline curve

Page 22: Bspline Notes

Uniform Linear Bspline Basis Poly’s

B1(t) = Vt

V0 V1

V0 Vt V1

= (1-t) V0 + t V1

1-t t

Knots:-1 0 1 2

Page 23: Bspline Notes

Uniform Quadratic Bspline Basis Poly’s

B2(t) =

Vtt

V0t Vt1

V-10 V01 V12

2

11

t

2

1t

21

t

2

t

t1 t

V01

12

2

01

2

10-

2

V2

V2

221

V2

1

t

tt

t

Vt1V0t

V-10 V12

Vtt

Page 24: Bspline Notes

Uniform Quadratic Bspline Basis Poly’s

12

2

01

2

10-

2

2 V2

V2

221V

2

1)(B

ttttt

Knots:-2 -1 0 1 32

V-10 V01 V12

Page 25: Bspline Notes

Uniform Cubic Bspline Basis Poly’s

B3(t) =

123

3

012

32

101-

32

10-2-

3

V6

V6

3331

V6

364

V6

1

t

ttt

tt

t

V123V012V-101V-2-10

Vttt

V0tt Vtt1

V-10t V0t1 Vt12

3

21

t

3

2t

3

11

t

3

1t

31

t

3

t

2

11

t

2

1t

21

t

2

t

t1 t

-101

123

012

-10ttt1

t12

0t10tt

ttt

-2-10

Page 26: Bspline Notes

Uniform Cubic Bspline Basis Poly’s

123

3

012

32

101-

32

10-2-

3

3 V6

V6

3331V

6

364V

6

1)(B

tttttttt

Knots:-3 -2 -1 0 1 432

V-2-10 V-101 V012 V123

Page 27: Bspline Notes

Uniform Bsplines from Convolution

10 10 2 3 0 321 4

10 2

=

10

10

10 2 3

=

10 2

=

10

dssgstftgtf )()()()(