+ All Categories
Home > Documents > 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

Date post: 18-Jan-2018
Category:
Upload: loraine-page
View: 227 times
Download: 1 times
Share this document with a friend
Description:
32/9/ :28 UML B-splines: Sharing of Control Points
26
1 06/13/22 00:00 UML Graphics II 91.547 B-Splines NURBS Session 3A
Transcript
Page 1: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

105/03/23 21:58

UML

Graphics II 91.547

B-SplinesNURBS

Session 3A

Page 2: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

205/03/23 21:58

UML

B-splines

Suppose you wanted C0, C1 and C2 continuity at curve boundaries.

pi

pi3

pi1 pi2

Ci

Use all four control points to determine boundary continuitiesand only require that the curve pass “close” to the points.

C p bi i kk

ku u( ) ( )

0

3

Page 3: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

305/03/23 21:58

UML

B-splines: Sharing of Control Points

pi

pi3

pi1 pi2

Ci

Ci1pi4

Page 4: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

405/03/23 21:58

UML

B-splines: Using continuity requirements tocompute geometry matrix/blending functions

pi

pi3

pi1 pi2

Ci

Ci1pi4

C p b C p bi i kk

k i i kk

k( ) ( ) ( ) ( )1 1 0 00

3

1 10

3

C0 continuity here requires:

Page 5: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

505/03/23 21:58

UML

B-splines: Using continuity requirements tocompute geometry matrix/blending functions

pi

pi3

pi1 pi2

Ci

Ci1pi4

bb bb bb b

b

0

1 0

2 1

3 2

3

1 01 01 01 0

0 0

( )( ) ( )( ) ( )( ) ( )

( )

Page 6: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

605/03/23 21:58

UML

B-splines: Using continuity requirements tocompute geometry matrix/blending functions

bb bb bb b

b

0

1 0

2 1

3 2

3

1 01 01 01 0

0 0

'( )'( ) '( )'( ) '( )'( ) '( )

'( )

bb bb bb b

b

0

1 0

2 1

3 2

3

1 01 01 01 0

0 0

"( )"( ) "( )"( ) "( )"( ) "( )

"( )

Similarly, the C1 and C2 continuity conditions give:

Page 7: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

705/03/23 21:58

UML

B-spline blending functions

b0b3

b1 b2

b u u ub u ub u u ub u

016

2 3

116

2 3

216

2 3

316

3

1 3 34 6 31 3 3 3

( )( )( )

23

0 1

M BS

16

1 4 1 03 0 3 0

3 6 3 01 3 3 1

Page 8: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

805/03/23 21:58

UML

B-splines:Local versus global parameter

Ci Ci1 Ci2Ci 1

pi pi1 pi2 pi3 pi4

Page 9: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

905/03/23 21:58

UML

B-splines:Recursively defined basis functions

]...[

)()(

otherwise0 if1

321

1

1,1

1

1,,

11,

k

iki

kiki

iki

kiiki

iii

tttt

ttuBut

ttuBtu

uB

tutuB

For any “knot vector”:

Order i

Page 10: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

1005/03/23 21:58

UML

First order basis functions:

Page 11: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

1105/03/23 21:58

UML

Second order basis functions:

Page 12: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

1205/03/23 21:58

UML

Knot Vectors

Only Requirement:

Image: David Rogers

Page 13: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

1305/03/23 21:58

UML

Definition of B Spline Curve

1

1

)()(n

iiik uBu pp

k Order of the spline

1n Number of control points

1 nk Number of knots in knot vector *

* Notation according to D.F. Rogers

Page 14: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

1405/03/23 21:58

UML

Knot Vectors:Open, Uniform

Result: spline passes through end control vertices

Image: David Rogers

Page 15: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

1505/03/23 21:58

UML

Building Up Basis Functions

Image: David Rogers

Page 16: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

1605/03/23 21:58

UML

Methods of Control

0 Change number and/or position of control vertices0 Change order k0 Change type of knot vector

- Open uniform- Open non uniform

0 Use multiple coincident control vertices0 Use multiple internal knot values

Image: David Rogers

Page 17: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

1705/03/23 21:58

UML

Control: Change Order

Image: David Rogers

Page 18: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

1805/03/23 21:58

UML

Control: Non Uniform Knot Vectors

Image: David Rogers

Page 19: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

1905/03/23 21:58

UML

Control: Knot Vector Type

Image: David Rogers

Page 20: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

2005/03/23 21:58

UML

Control:Multiple Coincident Vertices

Image: David Rogers

Page 21: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

2105/03/23 21:58

UML

Control: Duplicate Knot Values

Image: David Rogers

Page 22: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

2205/03/23 21:58

UML

Rational B-Splines (NURBS)

i

ii

ii

ii

i

i

i

hzhyhxh

zyx

1

Equivalency betweenHomogeneous representations:

1

1

1

1

)(

)()( n

iiik

n

iiiik

huB

xhuBuxDoing the perspective

division gives:

Interpreted as “weighting factor” for control verticesih

Page 23: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

2305/03/23 21:58

UML

NURBSEffect of weighting factor

Image: David Rogers

Page 24: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

2405/03/23 21:58

UML

Drawing NURBS in OpenGL

GLUnurbsObj *curveName;

curveName = gluNewNurbsRenderer();gluBeginCurve (curveName);gluNurbsCurve (curveName, nknots, *knotVector,

stride, *ctrlPts, degParam, GL_MAP1_VERTEX_3);gluEndCurve (curveName);

See OpenGL Programming Guide Ch. 12 for details ofusing the glu NURBS interface

Page 25: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

2505/03/23 21:58

UML

NURBS:Code Example

120 goto 120

Page 26: 12/9/2016 02:28 UML Graphics II 91.547 B-Splines NURBS Session 3A.

2605/03/23 21:58

UML

Extending from Curves to Surfaces

)()(),(1

1

1

1,

vBuBvuvv

u

u

v

vuuvu dk

n

k

n

kdkkk

pP

•Cartesian product of B-Spline basis functions

•Order can be different for u and v directions


Recommended