22
3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria 1 Dr. Várady Tamás BME, Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/VIIIAV01

3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

3D-s számítógépes geometria

5. B-spline görbék és felületek

3D-s számítógépes geometria 1

Dr. Várady TamásBME, Villamosmérnöki és Informatikai KarIrányítástechnika és Informatika Tanszék

http://cg.iit.bme.hu/portal/node/312https://www.vik.bme.hu/kepzes/targyak/VIIIAV01

Page 2: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

� B-spline görbékbázisfüggvények

poláris formulák

Tartalom

3D-s számítógépes geometria 2

tulajdonságok

egyszerű műveletek

� B-spline felületek

Page 3: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

Bézier görbék -összefoglaló

n-ed fokú Bézier görbe:

kontroll poligon:

)(=)(0=

tBtn

kk

n

k

cr ∑

nccc K,, 10

c0

c1

c3

c2

c0

c0

c1c1 c2

c0

c1c2

c3

c4

3Bézier görbék

Bernstein bázisfüggvények:

....

:,)1(4:,)1(6:,)1(4:,)1(:,))1((4

:,)1(3:,)1(3:,)1(:,))1((3

:,)1(2:,)1(:,))1((2

:),1(:),)1((1

1=)(,1=))1((

,)(1=)(

34

3

34

3

224

2

34

1

44

0

4

33

3

23

2

23

1

33

0

3

22

2

2

1

22

0

2

1

1

1

0

0=

tBttBttBttBtBttn

tBttBttBtBttn

tBttBtBttn

tBtBttn

tBtt

ttk

ntB

n

k

n

k

n

knkn

k

−−−−+−→=

−−−+−→=

−−+−→=

−+−→=

+−

−c0

c1

c3

c2

c5

c4

c6

c7

c4

Page 4: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

Bézier vs. B-spline

p0

p1

p3

p2

p5

p4

p0

p1

p2

p3

p4 p5

p6p7

u0

u1u2

u3 u4

u5

?B-spline görbe

43D Számítógépes Geometria

)()(7

0

uNun

ii

i∑=

= pr],[

],,,,[,3

7,0

*

51

*

0

pp

uuun

K

K=

u0 u1 u2 u3 u4 u50 1/5 2/5 3/5 4/5 1

)()( 55

0

uBui

ii∑

=

= pr],[

],1,0[,5

5,0pp

n

K

=

Page 5: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

Cél: szakaszokból álló (piecewise), simán kapcsolódó vektorpolinomoklétrehozása

B-spline bázisfüggvények1

0,1 Cn =

1,2 Cn =

0 1 2 3 4 5

3

6

1

=

=

=

S

K

n

7

2

=

=

K

n

5B-spline bázisfüggvények

fokszám: nparametrizálás − csomóvektor (knots) (K)

# bázisfüggvények = # kontroll pontok

# "valódi" domén intervallumok = # görbe-szegmensek (S)

],[;0)(1++

∈≥nii

n

iuuuuN

2,3 Cn =

.],,,[ 110 −Kuuu K

iP↔

0 1 2 3 4 5 6

0 1 2 3 4 5 6 7

4

7

=

=

S

K

3

8

3

=

=

=

S

K

n

Page 6: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

B-spline bázisfüggvények2

egyenletes (uniform) csomóvektor:

nem egyenletes (non-uniform) csomóvektor:

bázisfüggvények

],,,[ 110 −Kuuu K

]1,,1,0[ −KK

],[,1)(n

nuuuuN ∈=∑

6B-spline bázisfüggvények

folytonosság a csomókban:multiplicitás:

belső csomónál:

],[,1)( 10

nKni

n

i uuuuN −−=

∈=∑

],,,,,[11110 −−++ ===

Krjjjuuuuuu KKK

1−nC

)1( −−→ rSS

rnnCCr

−− →1,

Page 7: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

B-spline bázisfüggvények3interpoláció a végeken (lásd előző ábra):

tartóintervallum (support):

rekurzív formula:

2,,0,0

),[1)(

10 −= ∈

= +Ki

uuuuN

ii

iK

−−

],,,[ 1110 −−− ===== KnKjn uuuuuu KKKK

],[ 1++∈ nii uuu

7B-spline bázisfüggvények

periodikus bázisfüggvények:

)()()( 1

1

11

11uN

uu

uuuN

uu

uuuN

n

i

ini

nin

i

ini

in

i

+

+++

++−

+ −

−+

−=

Kuu =0

1u

1−Ku SLK ==

?Bázisfüggvények

Page 8: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

Tulajdonságok:• affin invariancia• konvex burok • Cn-1 folytonos a csomókban• folytonosság csökkenthető (csomó multiplicitás)• szigorúan lokálisan módosítás• egyenes reprodukció

B-spline görbék)(=)(

1

0=

uNun

ii

K

i

Pr ∑−

?B-spline görbe

P0

P1

P2

P

u=1

u=3

u=0

u=4

8B-spline görbék

• egyenes reprodukció• változást csökkentő tulajdonság

Harmadfokú B-spline görbe• végponti (pozició, tangens) interpoláció• harmadfokú görbedarabok• a súlyfüggvények a csomóvektortól függnek• minden csomóhármas meghatároz egy

kontrollpontot, az i-edik kontroll pont Grevilleabszcisszája:

ji

n

ji

un

+∑1=

1=ξ

Példa: n=3, K=6, S=3

;4=;3

11=;

3

8=;

3

4=;

3

1=;0=

)4,4,4()4,4,3()4,3,1()3,1,0()1,0,0()0,0,0(

111210ξξξξξξ

P3

[(0),0,0,0,1,3,4,4,4,(4)]

P4

P5u=3

Page 9: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

kontroll pontok

(i) Descartes koordináták (pozició):

(ii) polár koordináták (paraméterezés)

• lineáris:• másodfokú:

Poláris forma1

),(

)(

bai

ai

PP

PP

=

=

),,(,),(zyxiyxi

PPPPP == PP

P(0,0,0)

[(0),0,0,0,1,3,4,4,4,(4)]

u=1

u=3

u=0

u=4

P(0,0,1)

P(0,1,3)

P(1,3,4)P(3,4,4)

P(4,4,4)

P*

9Poláris forma

• másodfokú:

• harmadfokú:),,(

),(

cbai

bai

PP

PP

=

=

a poláris forma tulajdonságai:• görbepont:

• permutáció invariáns:

• egyenes két ponton át: n-1 koordináta egyezik

• affin kombináció:

• példa:

),,(),,(),,(

),,(

213132321,,

;)(

uuuuuuuuu

uuuu

PPP

Pr

K=

=

),,(),,(),,( 212121 wvuuwuuvuu βαβα +=+ PPP

[(0),0,0,0,1,3,4,4,4,(4)]

)8.0,3,1()4,3,1()3,1,0( 2.02).01(* PPPP =×+×−=

Page 10: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

n-ed fokú Bézier:

• a kontroll pontok poláriskoordinátái:

Poláris forma2 - Bézier görbék

],[,)( bauu ∈r

= PP

P(2,4,4)

P(2,2,4)

P(4,4,4)

P(4,4,7) P(4,7,7)

P(7,7,7)

10Poláris forma

• lineáris:

• másodfokú:

• harmadfokú:

egyébként,ha

,)( ),,,(21

buinkau

u

kk

uuuin

=−≤=

= KPP

),,(3),,(2),,(1),,(0

),(2),(1),(0

)(1)(0

,,,

,,

,

bbbbbabaaaaa

bbbaaa

ba

PPPPPPPP

PPPPPP

PPPP

====

===

==

P(2,2,2) [2,4], [4,7]

Page 11: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

Bézier − de Casteljau algoritmus

a poláris forma segítségével

� ismételt lineáris interpoláció�

Bézier görbe kiértékelése

,3,210 ,, cccc1

2

1

1

1

0 ,, ccc22 ,cc

111011001000

111000 ttt

10 tttt c

c1

c3

c2

c11

c10

c12

c20

c21

c30

11Poláris forma

2

1

2

0 ,cc3

0c10 tttt

ttt

P(000)

P(001)

P1(00t)

P2(0tt)

P(011)

P(111)

P1(0t1)

P1(t11)

P2(1tt)P3(ttt)

r(t)=P3(ttt)

c0

Page 12: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

Ujjgyakorlat*- B-spline görbék

P(0,0,0)

P( , , )P( , , ) P(4,4,4)

?

?

Harmadfokú interpoláló B-spline, egyenletes csomóvektor [0,4]

Feladat:

12B-spline algoritmusok

P(0,0,0)

[(0),0,0,0,1,2,3,4,4,4,(4)]

P( , , )

P( , , )

P( , , )?

Feladat:

1. poláris koordináták megadása

2. belső szegmens végpontok meghatározása

Page 13: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

Ujjgyakorlat - B-spline görbék

P

P(0,0,1)P(0,1,2) P(4,4,4)

P(0,0,0)

P(0,0,1)P(0,1,2)

P

P(4,4,4)

13B-spline algoritmusok

P(0,0,0)

[(0),0,0,0,1,2,3,4,4,4,(4)]

P(1,2,3)

P(2,3,4)

P(3,4,4)

P(0,0,0)

[(0),0,0,0,1,2,3,4,4,4,(4)]

P(1,2,3)

P(2,3,4)

P(3,4,4)

)1,1,1()2,1,1()1,1,0(

)2,1,1()3,2,1()2,1,0(

)1,1,0()2,1,0()1,0,0(

,

,

,

PPP

PPP

PPP

Page 14: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

B-spline − csomó beszúrás

� a görbe alakja nem változik

� +1 szabadságfok

B-spline - Algoritmusok1

P(0,0,0)

P(0,0,1)P(0,1,1.8)

P

P(0,1,3)

14B-spline algoritmusok

� osztás n szakaszon

� n=3 esetén:

� folytonosság: ∞

C

P(0,0,0)

[(0),0,0,0,1,3,4,4,4,(4)]

P(1,1.8,3)

P(4,4,4)

P(1.8,3,4)P(3,4,4)

P(1,3,4)

→ [(0),0,0,0,1,1.8,3,4,4,4,(4)]

knk

k

k

kkkkk

uu

uu

iiik

−=

+−=

+−=

+

+

α

αα

1,,1

,)1(1

*PPP

?Csomóbeszúrás?

Page 15: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

Ujjgyakorlat* - csomó beszúrás

Feladat:

P(0,0,1)P(0,1,4)

15B-spline algoritmusok

1. új csomó beszúrása u=3-nál 2. a kontroll poligon újraszerkesztése

P(0,0,0)

[(0),0,0,0,1,4,6,6,6,(6)]

P(1,4,6)

P(6,6,6)

P(4,6,6)

[(0),0,0,0,1,3,4,6,6,6,(6)]

Page 16: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

Ismétlés - polár koordináták

P0 [0,6]

P1P2

P3P0

[0,6,9]

P1

P2

P3

P4

16Polár koordináták

P(0,0,0)

[0,0,0,6,9,9,9]

P(0,0,6)

P(0,6,9)

P(6,9,9)

P(9,9,9)

P(0,6,3)

(5,5)

(11,8)(7,6)

P(0,0,0)

[0,0,0,6,6,6]

P(0,0,6)P(0,6,6)

P(6,6,6)

P(0,2,6)

P(0,0,2)

Bézier B-spline

Page 17: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

Ujjgyakorlat - csomó beszúrás

P(0,0,1)P(0,1,4) P(0,0,1)

P(0,1,3)

P(1,3,4)

17B-spline algoritmusok

P(0,0,0)

[(0),0,0,0,1,4,6,6,6,(6)]

P(1,4,6)

P(6,6,6)

P(4,6,6)

[(0),0,0,0,1,3,4,6,6,6,(6)]

P(0,0,0)

[(0),0,0,0,1,4,6,6,6,(6)]

P(3,4,6)

P(6,6,6)

P(4,6,6)

[(0),0,0,0,1,3,4,6,6,6,(6)]

Page 18: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

B-spline − de Boor algoritmus

• n-szer ismételt csomó-beszúrás

B-spline - Algoritmusok2

P(0,0,0)

P(0,0,1)P(0,1,2)

P

P(0,1,3)

P(1,2,2)

P

18B-spline algoritmusok

• n-szer ismételt csomó-beszúrás

görbe kettévágása → de Boor

),...,,()( uuuu Pr =

P(0,0,0) P(1,2,3)

P(4,4,4)

P(2,3,4)P(3,4,4)

P(1,3,4)

[(0),0,0,0,1,2,2,2,3,4,4,4,(4)] →

P(2,2,2)

P(2,2,3)

r(2)=P(2,2,2)

?de Boor

Page 19: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

kapcsolódó Bézier szegmensek

előállítása

• példa:

• cél:

B-spline - Algoritmusok3

]3,1[,)( ∈uuB

r

)3,3,(3)3,3,(1)3,1,(1)1,1,(1 ,,, PPPP

P(0,0,0)

P(0,0,1)P(0,1,1)

P(1,1,3)

P(0,1,3)

P(1,1,1)

19B-spline algoritmusok

• cél:

• lépések:

)3,3,(3)3,3,(1)3,1,(1)1,1,(1 ,,, PPPP

{ } { }{ } { }{ } { } K)1,1,(1)3,1,(1)1,1,(0

)1,1,(0)3,1,(0)1,0,(0

)3,3,(1)3,1,(1)4,3,(1)3,1,(0

,

,

,,

PPP

PPP

PPPP

[(0),0,0,0,1,3,4,4,4,(4)]

P(4,4,4)

P(3,3,4)P(3,4,4)P(1,3,4)

P(1,3,3)P(3,3,3)

Page 20: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

Bézier − B-spline: összehasonlításBézier görbék

• egyszerű formula• belül C∞ folytonos• csak “kvázi” lokális• nagy n-re − belül gyengébb tervezési kontroll lehetőség, relatíve nagy konvex burok• szegmensek illesztése nehéz

B-spline görbék

• bonyolultabb• a csomókban Cn-1 folytonosság• szigorúan lokális• erős belső tervezési kontroll lehetőség, szűkebb konvex burok• szegmensek automatikusan illeszkednek• zárt görbék• tartalmazza a Bézier reprezentációt

20Összehasonlítás

Page 21: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

B-spline felületektermészetes kétparaméteresfelületegyenlet (tensor product):

két határ-interpoláló csomóvektor:

)()(=),(1

0

1

0=

vNuNvum

j

n

iij

vL

j

uL

i

Ps ∑∑−

=

],,,[ 1110 −−− =====uKnuKjn uuuuuu KKKK

],,,[ ===== uuvvvv KKKK

c0

0P00

P10

PUV

P01

PU0

P0V

Q0

QV

21B-spline felületek

konstans paraméter vonal:

tulajdonságok:• affin invariancia• konvex burok • Cn-1 - Cm-1 folytonos a csomók mentén• szigorúan lokálisan módosítás

],,,[ 1110 −−− =====vKmvKjm uuvvvv KKKK

)()()()(=),( 0

1

0=

1

00

1

0=0 vNuuNvNvu

m

jj

vL

j

uL

i

n

iij

m

j

vL

j

QPs ∑∑∑−−

=

=

PU0

Page 22: 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3D-s számítógépes geometria 5. B-spline görbék és felületek 3D-s számítógépes geometria

A következő előadás tartalma

� Coons felületek� lineáris� harmadfokú

� n-oldalú patch-ekn-oldalú poligonális domének

22Következő előadás

� n-oldalú poligonális domének� súlyfüggvények� oldal- és sarok-interpolánsok� leképzések

� Sketches - demó� Bézier háromszögek dióhéjban