37
Modeling with curves

Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

Modeling with curves

Page 2: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 2

Motivation

Need representations of smooth realworld objects

Art / drawings using CG need smoothcurves

Animation: camera paths

Page 3: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 3

Naïve approach

Simply use lines & polygons to approximatecurves & surfaces curve: piecewise linear function lots of storage if accuracy desired hard to interactively manipulate the shape

Instead, we’ll use higher-order functions Note: difference between stored model and

rendered shape

Page 4: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 4

ApproachesExplicit Functions: y = f(x) [e.g. y = 2x2]

1. Only one value of y for each x2. Difficult to represent a slope of infinity

Implicit Equations: f(x,y) = 0 [e.g. x2 + y2 - r2 = 0]

1. Need constraints to model just one part of a curve

2. Joining curves together smoothly is difficult

Parametric Equations: x = f(t), y = f(t) [e.g. x = t2+3, y =3t2+2t+1]1. Slopes represented as parametric tangent vectors

2. Easy to join curve segments smoothly

Page 5: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 5

Parametric Curves

Linear: x = axt + bx

y = ayt + by

z = azt + bz

Quadratic: x = axt2 + bxt + cx

y = ayt2 + byt + cy

z = azt2 + bzt + cz

Cubic: x = axt3 + bxt2+ cxt + dx

y = ayt3 + byt2+ cyt + dy

z = azt3 + bzt2+ czt + dz

0 ≤ t ≤ 1

Page 6: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 6

Joining Curve SegmentsTogether

G0 geometric continuity: Two curve segments join together

G1 geometric continuity: The directions of the twosegments’ tangent vectors are equal at the join point

C1 continuity: Tangent vectors of the two segments areequal in magnitude and direction

(C1 G1 unless tangent vector = [0,0,0])

Cn continuity: Direction and magnitude through the nth

derivative are equal at the join point

Page 7: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 7

Joining Examples   

  

R0

R1

R2

TV2

TV3

Page 8: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 8

Notation

x = axt3 + bxt2+ cxt + dx

y = ayt3 + byt2+ cyt + dy Q(t) = T C

z = azt3 + bzt2+ czt + dz

T = t3

t2

t 1[ ]

!!!!!

"

#

$$$$$

%

&

=

zyx

zyx

zyx

zyx

ddd

ccc

bbb

aaa

C

Page 9: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 9

Alternate NotationQ(t) = T M G

T Matrix Basis Matrix Geometry Matrix

Idea: Different curves can be specified by changing the geometricinformation in the geometry matrix.

The basis matrix contains information about the general family of curvethat will be produced.

t3

t2

t 1[ ]!!!!

"

#

$$$$

%

&

44434241

34333231

24232221

14131211

mmmm

mmmm

mmmm

mmmm

!!!!

"

#

$$$$

%

&

4

3

2

1

G

G

G

G

Page 10: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 10

Example: Parametric Linex(t) = axt + bx x'(t) = axy(t) = ayt + by y'(t) = ayz(t) = azt + bz z'(t) = az

[ ] !"

#$%

&=

zyx

zyx

bbb

aaattQ 1)( [ ] !

"

#$%

&='

zyx

zyx

bbb

aaatQ 01)(

[ ] !"

#$%

&!"

#$%

&=

zyx

zyx

GGG

GGG

mm

mmttQ

222

111

2221

12111)(

[ ] !"

#$%

&!"

#$%

&='

zyx

zyx

GGG

GGG

mm

mmtQ

222

111

2221

121101)(

Page 11: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 11

Example (cont.)

Since two points, P1 & P2 define a straight line, then the geometrymatrix should be:

G1 = P1 G2 = P2.

What is the basis matrix?

We know that at t = 0, Q(0) = P1

Q'(0) = P2 - P1

at t = 1, Q(1) = P2

Q'(1) = P2 - P1

P1

P2

t = 1

t = 0

t > 1

t < 0

Page 12: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 12

Example (cont.)

Solve these 4 simultaneous equations to findthe basis matrix Mline:

Q(0) = [0, 1] Mline G = P1

Q'(0) = [1, 0] Mline G = P2 - P1

Q(1) = [1, 1] Mline G = P2

Q'(1) = [1, 0] Mline G = P2 - P1

Page 13: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 13

Example (cont.)m21x1 + m22x2 = x1 (m11 + m21)x1 + (m12 + m22)x2= x2

m21y1 + m22y2 = y1 (m11 + m21)y1 + (m12 + m22)y2 = y2

m21z1 + m22z2 = z1 (m11 + m21)z1 + (m12 + m22)z2= z2

m11x1 + m12x2 = x2 - x1 m11 = -1 m12 = 1

m11y1 + m12y2 = y2 - y1 m21 = 1 m22 = 0

m11z1 + m12z2 = z2 - z1

!"

#$%

&'=

01

11

lineM

Page 14: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 14

Blending functionsMultiplying the T and M matrices gives you a set of functions in t; these

are called blending functions.There is one blending function for each of the pieces of geometric

information in the G matrix.The value of a blending function at a certain value of t determines the

effect of the corresponding piece of geometric information at that pointalong the curve.

Line blending functions: [ ] [ ]ttt !="#

$%&

'!1

01

111

t

f(t)

0 1

1 P2 fn.P1 fn.

Page 15: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 15

Hermite Curves

Defined by two endpoints and tangents at theendpoints.

P1

P4R1 R4

Page 16: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 16

Hermite Curve Examples

  

Page 17: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 17

Hermite Curve Examples(cont.)

 

Page 18: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 18

Hermite Matrices

Q(t) = T MH GH

!!!!

"

#

$$$$

%

&

=

4

1

4

1

R

R

P

P

GH

T = t3

t2

t 1[ ]

!!!!

"

#

$$$$

%

&

'''

'

=

0001

0100

1233

1122

HM

Page 19: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 19

Hermite Blending Functions

Q(t) = T MH GH

Q(t) =

(2t 3 !3t2 +1)P1+

(!2t3+ 3t

2)P4+

(t3 ! 2t 2 + t)R1+

(t3 ! t2 )R4

Page 20: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 20

Bézier Curves   

Page 21: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 21

Bézier Matrices

Q(t) = T MB GB !!!!

"

#

$$$$

%

&

=

4

3

2

1

P

P

P

P

GB

T = t3

t2

t 1[ ]

!!!!

"

#

$$$$

%

&

'

'

''

=

0001

0033

0363

1331

BM

• P1 & P4: endpoints

• R1 = 3(P2-P1), R4 = 3(P4-P3)

• constant velocity curves ifcontrol points are equallyspaced

Page 22: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 22

Bézier Blending Functions

Q(t) =

(!t 3 + 3t2 !3t + 1)P1 +

(3t3! 6t

2+ 3t)P2 +

(!3t3 + 3t 2 )P3 +

t3P4

Page 23: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 23

General Bézier CurvesLet P1 through Pn+1 be points that define the curve.

Then:

where

Bi,n(t) = C(n,i) ti (1-t)n-i {Blending functions}

and

C(n,i) = n!/(i!(n-i)!) {Binomial coefficient}

QB(t) = P

i+1Bi ,n (t), t ![0,1]i=0

n

"

Page 24: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 24

General Bézier Curves (cont.)

For two points, n = 1:

QB(t) = (1-t)P1 + tP2

For three points, n = 2:

QB(t) = (1-t)2P1 + 2t(1-t)P2 + t2P3

For four points, n = 3:

QB(t) = (1-t)3P1 + 3t(1-t)2P2 + 3t2(1-t)P3 + t3P4

Page 25: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 25

Bézier Curve Characteristics1. The functions interpolate the first and last vertex points.

2. The tangent at P0 is proportional to P1 - P0, and the tangent at Pn toPn - Pn-1.

3. The blending functions are symmetric with respect to t and (1-t). Thismeans we can reverse the sequence of vertex points defining thecurve without changing the shape of the curve.

4. The curve, Q(t), lies within the convex hull defined by the controlpoints.

5. If the first and last vertices coincide, then we produce a closed curve.

6. If complicated curves are to be generated, they can be formed bypiecing together several Bézier sections.

7. By specifying multiple coincident points at a vertex, we pull the curvein closer and closer to that vertex.

Page 26: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 26

Rendering curves Iterative method based on parametric formula

evaluation t=0 plot x(t), y(t), z(t) increment t by a small amt. and repeat until t≥1

This is slow, depending on step size Can increase performance using difference methods

(as with line drawing)

Page 27: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

Modeling with surfaces

Page 28: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 28

Modeling surfaces

Extension of parametric cubic curvescalled “parametric bicubic surfaces”

Idea: infinite # of curves stackedtogether equations now have 2 parameters Q(s,t) P1(t) P4(t)

t

s

t=0.25

t=0.75

Page 29: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 29

Matrix representation

A single curve was expressedQ(t) = TMG

Now, the geometric information variesQ(s,t) = SMG

!!!!

"

#

$$$$

%

&

=

)(

)(

)(

)(

4

3

2

1

tG

tG

tG

tG

Geach Gi(t) is itselfa cubic curve

Page 30: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 30

Matrix representation (cont.)

Since each Gi is a cubic curve, it can bewritten:

Gi(t) = TMGi

!!!!

"

#

$$$$

%

&

=

4

3

2

1

i

i

i

i

i

g

g

g

g

G

Page 31: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 31

Matrix representation (cont.) Substituting, we obtain:

Q(s,t) = SM

= SMTM

!!!!

"

#

$$$$

%

&

4

3

2

1

TMG

TMG

TMG

TMG

!!!!

"

#

$$$$

%

&

4

3

2

1

G

G

G

G

This formulation does not work interms of matrix dimensions...

Page 32: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 32

Matrix representation (cont.)So, use the transpose rule:

Gi(t) = GiT MT TT

Q(s,t) = S M MT TT

= S M MT TT

!!!!!

"

#

$$$$$

%

&

T

T

T

T

G

G

G

G

4

3

2

1

!!!!

"

#

$$$$

%

&

44434241

34333231

24232221

14131211

gggg

gggg

gggg

gggg

Page 33: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 33

Matrix representation (cont.)

Finally, remember that the largegeometry matrix has 3 components (x,y, z) for each gij, so that we get threeparametric equations:

x(s,t) = S M Gx MT TT

y(s,t) = S M Gy MT TT

z(s,t) = S M Gz MT TT

Page 34: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 34

Hermite surfaces

extension of Hermite curves toparametric bicubic surfaces

four elements of the geometry matrixare now P1(t), P4(t), R1(t), R4(t)

can be thought of as interpolating thecurves Q(s,0) and Q(s,1) orQ(0,t) and Q(1,t)

Page 35: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 35

Hermite surface matrices

x(s,t) = S M GHx MT TT

y(s,t) = S M GHy MT TT

z(s,t) = S M GHz MT TT

!!!!

"

#

$$$$

%

&

=

44434241

34333231

24232221

14131211

gggg

gggg

gggg

gggg

GxH

P1x(t) = TMG

1x

G1x

=

g11

g12

g13

g14

!

"

# # # # #

$

%

& & & & &

Page 36: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 36

Rendering surfaces

Can also use iterativemethods in s and t

Grid representation: render curves of constant t

and constant s use perspective and hidden

lines to indicate surfaceshape

Page 37: Modeling with curvescs4204/lectures/curves_surfaces.pdf · Bézier Curve Characteristics 1. The functions interpolate the first and last vertex points. 2. The tangent at P 0 is proportional

(C) Doug Bowman, Virginia Tech, 2008 37

Rendering surfaces

Solid representation: subdivide surface

into “flat” sections render quadrilateral

for each section shape indicated by

shading (neednormal)