3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott... · 3D-s...
Transcript of 3D-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott... · 3D-s...
3D-s számítógépes geometria 1
3D-s számítógépes geometria
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
3. Háromszöghálók
II.
3D-s számítógépes geometria 2
Tartalom
háromszöghálók egyszerűsítése csúcspontok klaszterezéseinkrementális eljárásokprogresszív hálók
egyenletes mintavételezés és újrahálózásnormálvektorok és görbületek numerikus becslése felületek minőségének javítása
Háromszöghálók egyszerűsítése 3
Háromszöghálók egyszerűsítése1 (decimálás)
háromszögháló ⇒ kisebb háromszöghálókomplexitás csökkentése − hatékonyság növeléseadattárolás, adatátvitelhierarchikus reprezentációoptimalizálás (energiafüggvények)
minőség megőrzésetávolság toleranciaalaksajátosságokgrafikus paraméterek, textúra
négy algoritmus csúcspontok klaszterezése inkrementális eljárásokprogresszív hálók (visszaépíthető)mintavételezés és új háló létrehozása
Háromszöghálók egyszerűsítése 4
Háromszöghálók egyszerűsítése2
1. példa (Botsch
et al.):
577 512 háromszög→ 10 % →
1 % →
0.1 %
2. példa:
(Garland, Heckbert):
a háromszögek
követik a
textúra
struktúrát
−
18050 →
1000
Háromszöghálók egyszerűsítése 5
Háromszöghálók egyszerűsítése3
3. példa (Hoppe):
nézőpont függő
egyszerűsítés
−
100000 →
29400
Hátsó
lap
Nem része a nézeti tartománynak
Távoli lap
Klaszterezés 6
Csúcspontok klaszterezése1
approximációs tolerancia: εadaptív osztás: minden cella átmérője ≤ εreprezentáns mintapontok meghatározása az eredeti háromszögek degenerálódnak ⇒ törlés,
egyszerűsítésklaszterek közötti élek újraszámolása
P klaszter, reprezentáns: p, eredeti pontok: p0, p1, ...pn
Q klaszter, reprezentáns: q, eredeti pontok: q0, q1, ...qm
ha van (pi,qj) él ⇒ új (p,q) él beillesztése
aránylag gyors algoritmus (lineáris lépésszám)
topológiai változások − a minőség nem mindig megfelelő
Klaszterezés 7
Négyzetes
hiba
v=(x,y,z) pont síktól mért távolsága
D= (n,v-p)= |v-p
|cos
α=(n,v)+d
n=(nx,ny,nz) egységvektor; p - tetszőleges pont a síkban, d konstans
négyzetes hiba:
másodfokú felület:
hibák (felületek) összeadása komponensenként:
négyzetes hiba k síkra:
222 ),(2],[)),)((),(()),(( dddddD TTTT ++=++=+= vnvnnvvnnvvn
{ } { }2,],,[,,,),(2)( ddcQcQ TT nnnbAvbvAvv ==++=
{ }21212121 ,,)()( ccQQ +++=+ bbAAvv
{ }**** ,,)()( cQQk
k bAvv == ∑
π
:π
v
pnπ
D
Klaszterezés 8
Csúcspontok klaszterezése2
minden cellárafeltételezés: síkszerű háromszöghalmazoptimális reprezentáns csúcs:a legkisebb négyzetes eltérés a háromszögek síkjától:
a) eredeti b) átlag c) medián d) négyzetes
(Botsch
et al.)
0///,2)( **** =∂∂=∂∂=∂∂=++= zQyQxQmincQ T bvvAvv
cQ TT +−=−= −− bbAvbAv 1*1
41)~(,
21~
v~
9Quadtree
Ujjgyakorlat*
-
quadtree
Klaszterezés• ha egy cellában n>4, tovább osztunk• ha a cella kicsi és n≥2
→ reprezentáns pontot kell számolni
10Quadtree
Ujjgyakorlat -
quadtree
Klaszterezés• ha egy cellában n>4, tovább osztunk• ha a cella kicsi és n≥2 → reprezentáns pontot kell számolni
→
3 ilyen
kis
cella
van
Inkrementális decimáció 11
Inkrementális decimáció1Euler szabály
(poliéderek):v-e+f = 2csúcs (v), él (e), lap (f)
elemi műveletek:v ↔ v-1, e ↔ e-3, f ↔ f-2
(a) csúcstörlés −
beszúrása belső háromszögelés
módja szabad
(b1) élösszehúzás
−
ketté
vágásaz új csúcs választása
szabad, optimalizálható
(b2) fél-él összehúzás −
ketté
vágás
az új csúcs az eredeti ponthalmaz tagja
12Decimáció
Ujjgyakorlat*
-
decimáció
-
mindig a legrövidebb élet írtjuk ki-
az új csúcs a régi él közepére kerül-
két lépés
13Decimáció
Ujjgyakorlat -
decimáció
-
mindig a legrövidebb élet írtjuk ki-
az új csúcs a régi él közepére kerül-
két lépés
Inkrementális decimáció 14
Inkrementális decimáció2közelítési hibaösszeg becslése
minden lépésnél, mindegyik érintettháromszögre −
a hibák összegződnekhiba: skalár vagy vektor vagy négyzetes
négyzetes hibák eseténminden kiinduló pontra Qi=0, egyszerű összegzés minden új v csúcsra;az optimális v
meghatározható
(korábbi slide)cél: minimális „összenergia”, illetve„összköltség”
az algoritmus lépései1. minden pontra a négyzetes hiba meghatározása2. elsőbbségi sor (priority
queue): összehúzható
élek és ezek költsége3. legolcsóbb élösszehúzás
végrehajtása ⇒ az adatstruktúra lokális frissítése4. iteráció, amíg a terminálási
feltétel(ek) teljesülnek
v1
v2v
v1
v2v
Progresszív hálók 15
Progresszív hálók1
(Hoppe)
háromszöghálók hierarchiájanincs információvesztéscél: hatékony grafika, adattárolás, adatátvitel
él-összehúzás (edge collapse)adatsor: (vs, vt, vs’)
csúcs-széthúzás (vertex split)adatsor: (vs, vl, vr, vt’, vs’+
attribútumok)
Progresszív hálók 16
Progresszív hálók2
?
Progresszív hálók 17
Progresszív hálók3az összehúzandó él kiválasztása –
energia minimumra való törekvésE1: geometriai jellemzők (távolság,
normálvektor eltérés)E2: skalár jellemzők (pl. színek)E3: élek, határok
nézőpont specifikus finomításhátsó lapok, távoli lapok, kis méretű lapok
?
Progresszív hálók 18
Progresszív hálók
rövid szemináriumés prototípus implementáció
input:
meshoutput: animált progresszív háromszögháló
az animáció
megállítható
és továbbléptethetőaz egyszerűsítés módszerei:
(i) nézőpont szerint(ii) síklapuság szerint(iii) háromszögméret szerint
Önálló feladat
Mintavételezés és új háló 19
Mintavételezés és új háló
létrehozása
Dióhéjban:
új topológiai struktúraizotrópiára való törekvésmintavételezés szigorú – távolsági és minőségi – kritériumok alapján
Geometriai jellemzők 20
Geometriai
jellemzők becslése1a) normálvektor: nb) görbületek:
Gauss-görbület: G = κ1 κ 2,, Átlaggörbület: H = (κ 1 + κ 2) / 2Főgörbületek (κ 1, κ 2), főirányok (k1, k2)
Normálvektor becslése sík illesztés alapján
adott pont: p, körülötte: qi=(xi,yi,zi),
ismeretlen normálvektor : n=(nx,ny,nz),
legkisebb négyzetes távolság:
kényszer (euklideszi távolság):
Lagrange-féle multiplikátor:
(négy ismeretlenes egyenletrendszer)
minDi
ii
i =−= ∑∑ 22 ),( pqn1222 =++ zyx nnn
0////)),,((),,((),,,(
),,(,),,(
=∂∂=∂∂=∂∂=∂∂=−+=
==
λλλ
HzHyHxHminczyxGzyxFzyxH
czyxGminzyxF
q1
q2
p
q3
q4
q5
Geometriai jellemzők 21
Geometriai
jellemzők becslése2
Lokális paraboloid
illesztés
adott
pontokon
keresztül
legyen p az origó
a lokális koordináta rendszerben:qi
=(ui
,vi
,wi
), (i=1,..n, n ≥
5), wi
= (n, qi
-p)
a paraboloid egyenlete:
ismeretlenek:
azonosak a deriváltakkal:
legkisebb négyzetes (algebrai) távolság:
minwvufD iii
ii
i =−= ∑∑ 22 )),((
evducvbuvauvuf ++++= 22),(],,,,[ edcba=x
q1
q2
p
q3
q4
q5
],,,,[ 21
21
vuvvuvuu fffff=x
Geometriai jellemzők 22
Geometriai
jellemzők becslése3
Legkisebb négyzetes minimalizálás mátrix alakban:
ahol
minwvufD iii
ii
i =−= ∑∑ 22 )),((
bAAAxbAAxAbAx TTTT 12 )(,0.)( −=⇒=−⇒=− min
⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
−
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
.
.
.
.
.
.....
.....
.....
.....
.....
22iiiiiii w
edcba
vuvvuu
Geometriai jellemzők 23
Geometriai
jellemzők becslése4Háromszög alapú
normálvektor-becslés
i-edik
háromszög:
a) egységvektorok átlagolása:
b) területarányos súlyozás:
||,1
00i
ii
iin n
nnnnp == ∑
∑∑∑ =→===i
ii
iiii
ii AAAAA
Annnnn pp 2
1,|,|21,1
0
)()( pqpqn 1ii −×−= +i
q1
q2
p
q3
q4
q5
Geometriai jellemzők 24
Geometriai
jellemzők becslése5
Háromszög alapú
görbület-becslések
•
az i-edik
háromszögben:
Gauss-görbület
•
klasszikus differenciálgeometria(Gauss-Bonet
tétel):
•
szöghiány:
•
diszkrét becslés:
Átlaggörbület
∑=∠=∠=−= −+
ii
ii
AA )(),(),,(),(
pnneepqe 1ii1iiii βα
∑−=i
iαπδ 2)(p
)(pδ∫∫ =AGdA
)()(
31
||41
pp
e
AH i ii∑
=β
)()()(
31 p
ppA
G δ=
qi+1
qi-1
qi
p
qi+1
ni
qi-1 p
qi
ni-1 αi
βi
eiei+1
Geometriai jellemzők 25
Geometriai
jellemzők becslése6
Átlag (H) és Gauss (G) görbület1
Átlag (H) és Gauss (G) görbület2
26Simítás
Háromszöghálók simítása1•
Energia-minimalizálás
(fairing) −
minőségmérő
integrálok: a „tökéletlenséget”
büntetik•
A simaság fontos: pl. megjelenítésnél, anyagtulajdonságok, megmunkálás stb.
Membrán energia:•
a felület legyen kicsi Rugalmas lap energia (thin
plate):•
ne legyen nagy a görbület
Minimális görbület variáció: •
ne változzon gyorsan agörbület
0|||| 22
=Δ
+
=
∫∫∫
Ω
rrr dudv
min.dA
vu
s
0
||||2||2
222
22
21
=Δ
++
=+
∫∫∫
Ω
r
rrr dudv
min.dA
vvuvuu
sκκ
03
22
1
1
2
2
=Δ
=⎟⎟⎠
⎞⎜⎜⎝
⎛⎟⎟⎠
⎞⎜⎜⎝
⎛∂
∂+
∂
∂∫
r
kkmin.dA
s
κκ
(Kobbelt)
27Simítás
Háromszöghálók simítása2
Egyszerű
iteratív módszerek:
•
Laplace-féle simítás−
a pontokat a szomszédok konvex kombinációjának irányába mozgatja
−
esernyő
operátor, súlyozott átlag
−
λ
simítási mérték
•
Görbület-áramlás(mean
curvature
flow)
•
Görbület-áramlás optimalizálva
1,||,1)( *1 =−=−= −∑∑ ii
ii
i i
wwww
U ii qppqp
)( oldoldnew U ppp λ+=
)()( oldoldoldnew H pnppp λ+=
)()( newnewoldnew H pnppp λ+=
q1
q2pold
q3
q4
q5
pnew
28Simítás
Háromszöghálók simítása3Numerikus vagy diszkrét simítás (fairing)
•
minden iterációs lépésben módosul a háló
és csökken az energia:
•
(i) mi az energia ? (ii) hogyan módosítjuk a pontokat ?
1. simasági mérték −
parametrikus görbületbecslés2. simasági mérték −
diszkrét átlaggörbület
nnni
nnni
n EEpMEpM ≤=⇒= +++ 111 },{},{
)()( pnppp újúj Hλ+=
•
minimalizáló
egyenletrendszer,közelítő
megoldás → új átlaggörbület becslések
•
pont módosítás az új célgörbületekszerint:
•
gyorsítás: először durva felbontás, utána finomítás
•
peremfeltételek: az első
(és a második)háromszögsor változatlan marad
)()( pnppp Húj λ+=
29Simítás
Háromszögháló
simítás4
−
Demó
30Következő előadás
A következő
előadás tartalma
Görbék és felületek I:
vektor polinomok, interpolációBernstein polinomokBézier görbék és tulajdonságaikegyszerű műveletekgörbék csatlakoztatása Bézier felületek és tulajdonságaik