3D - geometra modellezés, alakzatrekonstrukcó, nyomtatás b Háromszöghálók - algortmusok http://cgtbmehu/portal/node/3 https://wwwvkbmehu/kepzes/targyak/viiiav54 Dr Várady Tamás, Dr Salv Péter BME, Vllamosmérnök és Informatka Kar Irányítástechnka és Informatka Tanszék
Tartalom háromszöghálók egyszerűsítése csúcspontok klaszterezése nkrementáls eljárások progresszív hálók egyenletes mntavételezés és újrahálózás normálvektorok és görbületek numerkus becslése felületek mnőségének javítása 3D-s számítógépes geometra
Háromszöghálók egyszerűsítése (decmálás) háromszögháló ksebb háromszögháló komplextás csökkentése hatékonyság növelése adattárolás, adatátvtel herarchkus reprezentácó optmalzálás (energafüggvények) mnőség megőrzése távolság toleranca alaksajátosságok (shape features) grafkus paraméterek, textúra négy algortmus csúcspontok klaszterezése nkrementáls eljárások progresszív hálók (vsszaépíthető) mntavételezés és új háló létrehozása Háromszöghálók egyszerűsítése 3
Háromszöghálók egyszerűsítése példa (Botsch et al): 577 5 háromszög 0 % % 0 % példa: (Garland, Heckbert): a háromszögek követk a textúra struktúrát 8050 000 Háromszöghálók egyszerűsítése 4
Háromszöghálók egyszerűsítése3 Hátsó lap Távol lap Nem része a nézet tartománynak 3 példa (Hoppe): nézőpont függő egyszerűsítés 00000 9400 Háromszöghálók egyszerűsítése 5
Csúcspontok klaszterezése approxmácós toleranca: ε adaptív osztás: mnden cella átmérője ε D: quadtree, 3D: oct-tree, kd-tree - bnárs osztás reprezentáns mntapontok meghatározása az eredet háromszögek degenerálódnak törlés, egyszerűsítés klaszterek között élek újraszámolása P klaszter, reprezentáns: p, eredet pontok: p 0, p, p n Q klaszter, reprezentáns: q, eredet pontok: q 0, q, q m ha van (p,q j ) él új (p,q) él bellesztése aránylag gyors algortmus (lneárs lépésszám) topológa változások a mnőség nem mndg megfelelő Klaszterezés 6
Négyzetes hba adott egy π sík; smeretlen v(x,y,z) pont π -től mért távolsága: D(v) v-p cosα(n,v-p)(n,v)+d π v D p n ahol n(n x,n y,n z ) egységvektor; p - tetszőleges pont a síkban, d konstans négyzetes hba: D T T ( v) (( n, v) + d) v[ n, n] v + d( n, v) + d másodfokú felület: egy pont, két felülettől mért négyzetes hbája - összeadás komponensenként: egy pont négyzetes hbája k síkra: T { A, b, c} {[ n, n], dn, } T Q( v ) vav + ( b, v) + c, Q d { A + A, b + c } Q ( + c Q v) + Q ( v) b, { A *, b * * } * v ) Q ( ), k v k ( c Klaszterezés 7
Csúcspontok klaszterezése a) eredet b) átlag c) medán d) négyzetes (Botsch et al) mnden cellára feltételezés: adott síkszerű háromszöghalmaz (n darab sík) kszámítandó az optmáls reprezentáns csúcs: v~ a legksebb négyzetes eltérés a háromszögek síkjától: Q * T * * * ( v) vav + bv + c mn, Q / x Q / y Q / z ~ T * T v A b, Q ( ~ v) ba b + c 4 0 Klaszterezés 8
Ujjgyakorlat* - quadtree Klaszterezés ha egy cellában n>4, tovább osztunk ha a cella kcs (/8) és n új reprezentáns pontot kell számoln Végül hány cellát () és hány új reprezentáns pontot kapunk ()? Quadtree 9
Ujjgyakorlat - quadtree Klaszterezés ha egy cellában n>4, tovább osztunk ha a cella kcs (/8) és n új reprezentáns pontot kell számoln Cellák száma: 9, reprezentáns pontok száma: 3 Quadtree 0
Inkrementáls decmácó Euler szabály (poléderek): v-e+f csúcs (v), él (e), lap (f) elem műveletek: v v-, e e-3, f f- (a) csúcstörlés beszúrás a belső háromszögelés módja szabad (b) élösszehúzás ketté vágás az új csúcs választása szabad, optmalzálható (b) fél-él összehúzás ketté vágás az új csúcs az eredet ponthalmaz tagja Inkrementáls decmácó
Ujjgyakorlat* - decmácó - mndg a legrövdebb élet írtjuk k - az új csúcs a rég él közepére kerül - két lépés Decmácó
Ujjgyakorlat - decmácó - mndg a legrövdebb élet írtjuk k - az új csúcs a rég él közepére kerül - két lépés Decmácó 3
Inkrementáls decmácó közelítés hbaösszeg becslése mnden lépésnél, mndegyk érntett háromszögre a hbák összegződnek hba: skalár vagy vektor vagy négyzetes négyzetes hbák esetén mnden knduló pontra Q 0, egyszerű összegzés mnden új v csúcsra; az optmáls v meghatározható (korább slde) cél: mnmáls összenerga, lletve összköltség v 0 v 0 v v v v v v v* v* az algortmus lépése mnden pontra a négyzetes hba meghatározása elsőbbség sor (prorty queue): összehúzható élek és ezek költsége 3 legolcsóbb élösszehúzás végrehajtása az adatstruktúra lokáls frssítése 4 terácó, amíg a termnálás feltétel(ek) teljesülnek Inkrementáls decmácó 4
Progresszív hálók (Hoppe) háromszöghálók herarchája nncs nformácóvesztés cél: hatékony grafka, adattárolás, adatátvtel él-összehúzás (edge collapse) adatsor: (v s, v t, v s ) csúcs-széthúzás (vertex splt) adatsor: (v s, v l, v r, v t, v s + attrbútumok) Progresszív hálók 5
Progresszív hálók? Progresszív hálók 6
Progresszív hálók 3 az összehúzandó él kválasztása energa mnmumra való törekvés E : geometra jellemzők (távolság, normálvektor eltérés) E : skalár jellemzők (pl színek) E 3 : élek, határok nézőpont specfkus fnomítás hátsó lapok, távol lapok, ks méretű lapok? Progresszív hálók 7
Önálló projekt Progresszív hálók rövd szemnárum és prototípus mplementácó nput: mesh output: anmált progresszív háromszögháló az anmácó megállítható, valamnt tovább és vssza léptethető az egyszerűsítés módszere: () nézőpont szernt () síklapuság szernt () háromszögméret szernt Progresszív hálók 8
Mntavételezés és új háló létrehozása Dóhéjban: új topológa struktúra zotrópára való törekvés mntavételezés szgorú távolság és mnőség krtérumok alapján Mntavételezés és új háló 9
Önálló projekt Izotropkus háromszögháló előállítása általános háromszögháló alapján Szemnárum előadás és prototípus mplementácó D algortmusok 0
Geometra jellemzők becslése Háromszög alapú normálvektor-becslés -edk háromszög: ( q p) ( q n + A n a) egységvektorok átlagolása:, n 0 p) n n q 4 q 3 p q n p n n 0 q 5 q b) területarányos súlyozás: A A ; An 0 n p A A n Geometra jellemzők
Geometra jellemzők becslése Háromszögalapú görbület-becslések az -edk háromszögben: e ( q p), α ( e, e ), β ( n, n ) + A ( p) A Gauss-görbület q - n - β q n p α e e + q + klasszkus dfferencálgeometra (Gauss-Bonet tétel): GdA δ (p) A szöghány: dszkrét becslés: (körlapocska) δ (p) π G( p) δ ( p) 3 A( p) α q - p Átlaggörbület (hengerdarabok) H ( p) Cyl _ Area e 4 β 3 A( p) A( p) 3 q q +
Geometra jellemzők becslése3 Átlag (H) és Gauss (G) görbület Átlag (H) és Gauss (G) görbület Geometra jellemzők 3
Háromszöghálók smítása Lokáls, teratív módszerek: q 3 () Laplace-féle smítás a pontokat a szomszédok konvex kombnácójának rányába mozgatja esernyő operátor, súlyozott átlag q 4 p old p new q p U ( p) w ( q ), (a): w / n, j (b): w j0 q j p, w j j j j w k j0 w k 0 q 5 q λ smítás mérték p new p old + λu p () Görbület-áramlás (mean curvature flow) ( old ) pnew pold + λ H ( pold ) n( pold ) Smítás 4
Háromszöghálók smítása Globáls módszerek - numerkus vagy dszkrét smítás (farng) mnden terácós lépésben módosul a háló és csökken az energa; valamenny pont módosul: energamnmalzáló egyenletrendszrer: M n { p n }, E n M { p }, E n+ n+ n+ E n () m az energa? () hogyan módosítjuk a pontokat? smaság mértékek parametrkus görbületbecslés dszkrét átlaggörbület (Desbrun et al) Smítás 5
Háromszögháló smítás 3 Demó Smítás 6
Opconáls anyag háromszögjellemzők számítása és globáls farng felületllesztés alapján 3D Számítógépes Geometra 7
Geometra jellemzők becslése a a) normálvektor: n b) görbületek: Gauss-görbület: G κ κ,, Átlaggörbület: H (κ + κ ) / Főgörbületek (κ, κ ), főrányok (k, k ) q 4 q 3 p q Normálvektor becslése sík-llesztés alapján adott pont: p, körülötte: q (x,y,z ), q 5 q smeretlen normálvektor : n(n x,n y,n z ), legksebb négyzetes távolság: kényszer (eukldesz távolság): Lagrange-féle multplkátor: (négy smeretlenes egyenletrendszer) n D ( n, q p) x + n y + nz / y mn F( x, y, z) mn, G( x, y, z) c H ( x, y, z, λ) ( F( x, y, z) + λ( G( x, y, z) c) H / x H H / z H / λ 0 mn Geometra jellemzők 8
Geometra jellemzők becslése a Lokáls parabolod-llesztés q 4 q 3 q adott pontokon keresztül q 5 p q legyen p az orgó a lokáls koordnáta rendszerben: q (u,v,w ), (,n, n 5), w (n, q -p) a parabolod egyenlete: f ( u, v) au + buv + cv + du + ev smeretlenek: x [ a, b, c, d, e] azonosak a derváltakkal (u0, v0)-ban: x [ f, f, uu uv f vv, f u, f v ] legksebb négyzetes (algebra) távolság: D ( f ( u, v ) w ) mn Geometra jellemzők 9
Geometra jellemzők 30 Geometra jellemzők becslése 3a Legksebb négyzetes mnmalzálás mátrx alakban: ahol mn w v u f D ) ), ( ( b A A A x b A Ax A b Ax T T T T ) ( 0, ) ( mn ) ( w e d c b a v u v u v u b Ax Opconáls
Háromszöghálók smítása Energa-mnmalzálás (farng) mnőségmérő ntegrálok: a tökéletlenséget büntetk A smaság fontos: pl megjelenítésnél, anyagtulajdonságok, megmunkálás stb (Kobbelt) Membrán energa: - a felület legyen kcs Rugalmas lap energa (thn plate): - ne legyen nagy a görbület Mnmáls görbület varácó: - ne változzon gyorsan a görbület s da mn r u + rv Ω dudv s κ + κ da mn r uu + ruv + r Ω vv dudv s κ k + κ k da mn Smítás 3
Háromszöghálók smítása 4 eljárás: smaság mérték parametrkus görbület, dszkretzálva E f + f + f uu uv vv E ( α p ) + ( β p ) ( γ p ) ) ω + j j j j j j j j j (ω az -edk pont körül háromszögek területének összege; α,β,γ a derváltakból adódó együtthatók, p j a p pont szomszéda) Cél: új optmáls ponthalmaz meghatározása E ( S) E( p,, ), 0 w p k p n E másodfokú, lneárs egyenletrendszer, rtka mátrx, k első- és másodfokú szomszédok közelítő megoldás - Gauss-Sedel terácó, csak a dagonáls elemekre E( S) p p új k k w k w k p k Smítás 3
Háromszöghálók smítása 5 eljárás: smaság mérték dszkrét átlaggörbület H ( p ) n( p ) (cotγ j + cotδj ) ( qj p ) 4A j mnmalzáló egyenletrendszer, az új görbületekre kell megoldan: j (cot γ + cotδ )( H ( p ) H ( q )) 0 j közelítő megoldás új átlaggörbület becslések, pont módosítás az új célgörbületek szernt: new old new p p + λ H ( p ) n( p j new ) j q, j γ j q j p δ j q, j Gyorsítás: először durva felbontás, utána fnomítás Peremfeltételek: az első (és a másodk) háromszögsor változatlan marad 33