lek 7 Flashcards

(14 cards)

1
Q

Metakrogle

A

Metaball je poseben način predstavitve 3D (ali 2D) objektov, kjer meja objekta ni določena eksplicitno z robovi ali ploskvami, ampak implicitno – z matematičnim poljem gostote (density field).

Okoli vsake metaball “krogle” se širi gostota, ki z razdaljo od centra pada. Vsaka taka krogla prispeva k skupnemu polju gostote.

Meja objekta nastane tam, kjer skupna gostota preseže določeno vrednost – prag vidnosti (visibility threshold).

Izoploskev (ali implicitna ploskev) je površina, kjer je gostota točno enaka temu pragu.

Če je gostota manjša, površina ni vidna; če je večja ali enaka, je del objekta.
Na sliki so koncentrični krogi, ki predstavljajo različne nivoje gostote okoli središča.

Oznaka “gostota = 0,05” pokaže primer izoploskve (implicitne ploskve), kjer skupna gostota v prostoru doseže vrednost 0,05.

To je torej “meja” metaballa, vidna v izrezu prostora.
Na sliki so koncentrični krogi, ki predstavljajo različne nivoje gostote okoli središča.

Oznaka “gostota = 0,05” pokaže primer izoploskve (implicitne ploskve), kjer skupna gostota v prostoru doseže vrednost 0,05.

To je torej “meja” metaballa, vidna v izrezu prostora.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Ključna moč metakrogel: zlivanje (fusion)

A

Glavna prednost metakrogel (metaballs) je, da se lahko gladko zlivajo med seboj. Ko se dve ali več metakrogel približata, se njuna polja gostote združijo in oblikujejo eno samo, gladko povezano ploskev.

Na slikah zgoraj vidimo:

Kako dve metakrogli z ločenima poljema gostote najprej ustvarita dve ločeni površini.

Ko se približujeta, izoploskvi “zraseta” skupaj in nastane ena oblika, ki ima gladek prehod.

Spodaj so prikazani zaporedni koraki zlivanja (od dveh kroglic do “peščene ure”).

To omogoča organsko, naravno modeliranje, ki je uporabno za simulacijo tekočin, tkiv, mehkih objektov in “organskih” likov.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Tipi zlivanja metakrogel

A

Tradicionalno zlivanje: Vsaka metakrogla prispeva pozitivno gostoto, in kjer se njihova polja gostote prekrivajo, dobimo gladko povezano površino (slika “1”).

Metakrogle z negativno gostoto:

Možno je tudi nastaviti “negativni vpliv” posamezne metakrogle.

Negativna gostota povzroči “luknjo” ali izrez, podobno kot boolova razlika v klasičnem 3D modeliranju (slika “2”).

To se uporablja za modeliranje votlin ali za oblikovanje posebnih efektov (npr. izrezovanje mehurčka iz večje mase).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Ekscentrična porazdelitev gostote in različni gradniki

A

Ekscentrična porazdelitev gostote:

Gostota okoli centra metakrogle ni nujno vedno krožna – lahko je eliptična ali celo nepravilna.

S tem lahko dobimo bolj raznolike, naravne oblike (npr. “raztegnjene” ali sploščene krogle).

Slike prikazujejo, kako se iz krožnih izoploskev lahko oblikujejo eliptične ali bolj zapletene oblike.

Metakrogelni gradniki (metaball primitives):

Osnovni gradniki niso le krogle – lahko so tudi elipsoidi, kocke, valji ali poljubne “mehke” oblike, dokler imajo definirano gostoto v prostoru.

Spodnje slike prikazujejo osnovne “primitives” (krogla, elipsoid, kvader), vse predstavljene kot implicitne ploskve s poljem gostote.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Modeliranje z metakroglami

A

Najprej definiraš središča in radije posameznih metakrogel, njihova polja gostote pa se med seboj seštevajo.

Z združevanjem, premikanjem in skaliranjem osnovnih gradnikov lahko ustvariš kompleksne, gladke, organske modele (npr. človeško telo, roko ali figuro).

Slike prikazujejo primer, kjer so žičnate sfere (levo) postavljene kot ogrodje, rezultat pa je organska, povezana površina (desno).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Sistem metakrogel in hierarhična struktura

A

Ko je objekt sestavljen iz več metakrogel, jih lahko organiziramo v sistem.

Sistem metakrogel pomeni, da so metakrogle združene v hierarhično strukturo. To omogoča, da lahko zlivamo, premikamo ali transformiramo več metakrogel skupaj kot celoto, ali pa še vedno posamezno spreminjamo vsako komponento.

Na slikah je prikazana takšna hierarhija: osnovne enote (m1, m2, m3, m4) so povezane v skupino (Sys1 ali Sys2), kar omogoča kompleksno modeliranje in kasnejše animiranje.

Sistem metakrogel je uporaben za kompleksne objekte, kjer želiš premikati ali animirati več delov hkrati.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Matematična definicija metakrogle

A

Metakrogla je definirana implicitno – ne kot eksplicitna mreža točk in ploskev, ampak s funkcijo gostote v prostoru.

Najbolj osnovna implicitna oblika je enačba sfere v točki (a, b, c):
f(x, y, z) = r^2 / ((x - a)^2 + (y - b)^2 + (z - c)^2)

Tu je (a, b, c) središče, r je radij.

Funkcija f(x, y, z) opisuje, kakšna je gostota v vsaki točki prostora.

V praksi se pogosto uporabljajo tudi drugačne funkcije gostote – npr. eksponentne ali polinomske – ker so računsko hitrejše kot deljenje.

Primer funkcije:
f(r) = exp(-a * r^2), kjer je a konstanta.

Točke znotraj metakrogle so vse tiste, kjer je vrednost f(x, y, z) večja od izbranega praga (npr. 1). Če je manjša od praga, so zunaj metakrogle.

Prag (threshold) lahko prilagajamo in s tem spreminjamo “vidni rob” metakrogle.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Pretvorba v mnogokotniške modele

A

Metakrogle omogočajo gladko modeliranje organskih oblik, idealno za dele telesa, organe in mehke objekte.

Sistem metakrogel omogoča hierarhično urejanje in kompleksno animacijo/transformacijo več delov hkrati.

Matematično so metakrogle definirane z gostotno funkcijo v prostoru, tipično na podlagi enačbe sfere ali bolj računsko učinkovitih aproksimacij.

Vidna površina metakrogle je implicitna ploskev, kjer gostota doseže določen prag.

Za prikaz in nadaljnje 3D operacije se metakrogle pretvorijo v mnogokotniške mreže, bodisi začasno (za prikaz) ali nepovratno (za izvoz modela).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Upodobitev metakrogle

A

Zlivanje (fusion) metakrogel pomeni, da se gostotna polja več posameznih metakrogel prekrivajo in skupaj tvorijo enotno, gladko ploskev brez ostrih robov.

Na levi sliki vidimo dve ločeni polji gostote (koncentrični krogi), ki se prekrivata.

Na desni sliki je rezultat tega prekrivanja – organska, gladka površina, kjer sta se dve metakrogli združili v eno obliko (ta proces omogoča modeliranje mehkih, organskih struktur).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Upodobitev metakrogle — problem diskretne mreže

A

Pri upodabljanju metakrogel (ali drugih implicitnih površin) se pojavi enak izziv kot pri označevanju prostora: kako iz množice diskretnih (mrežnih) točk izračunati gladko ploskev, ki deli “znotraj” in “zunaj” modela?

Vsaki točki mreže (npr. p0, p1, p2, p3) lahko določimo, ali je noter ali zunaj modela, odvisno od tega, ali je gostota nad ali pod pragom.Na slikah sta prikazana dva primera kvadratne celice:

Leva celica:
Večina oglišč je zunaj, eno pa je noter (+). Gladko ploskev (mejo) moramo narisati skozi celico, da loči noter/zunaj.

Desna celica:
Večina oglišč je noter, eno pa je zunaj (−). Ploskev (meja) je na drugi strani celice.

Ploskev (izoploskev) se vedno postavi tako, da loči noter (+) in zunaj (−) v vsaki celici.
Uporabljajo se algoritmi, kot sta marching squares (za 2D) ali marching cubes (za 3D), ki na podlagi znakov v ogliščih določijo, kako narisati ploskev skozi posamezno celico/mrežo.

Rezultat je gladka meja kljub temu, da izhajamo iz diskretnih vrednosti.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Kaj je algoritam korakajočih kvadratov?

A

Postopek:
Preverimo za vsak kvadrat (celico) stanje vseh štirih oglišč (ali je vrednost v oglišču nad ali pod pragom).

Določimo kombinacijo (obstaja 2^4 = 16 možnih kombinacij), kjer je vsako oglišče lahko noter ali zunaj.

Za vsako od 16 kombinacij je vnaprej določeno, kako skozi celico poteka kontura (izoploskev).

Te rešitve so standardizirane — za vsak možen primer vemo, kako povezati točke na robovih.

Poseben primer:

V primerih 6 in 9 dobimo dvoumnost: ni jasno, kako točno povezati konture, zato se pogosto izbere interpolacija ali poseben način za reševanje te topološke negotovosti.

Posebnost primerov 6 in 9
Primeri 6 in 9 nastopijo, kadar imata dve sosednji oglišči vrednost noter, drugi dve pa zunaj (in obratno), kar daje dvoumnost, kako povezati robove — lahko dobimo “most” ali “luknjo”. To zahteva dodatno odločitev ali interpolacijo, da se zagotovi pravilna topologija.

Dejansko so le 4 topološki tipi:
Vseh 16 kombinacij se reducira na 4 glavne primere:

Vsa oglišča zunaj (ali noter):

Kvadrat ni prečkan, ni konture (ali je cel kvadrat znotraj).

Ena oglišče zunaj (ali noter), ostala 3 noter (ali zunaj):

Kontura gre čez rob med izoliranim ogliščem in sosedi (en segment).

Dve sosednji oglišči zunaj, ostali dve noter:

Kontura tvori kot ali ovinek (pravokotna kontura).

Dve diagonalni oglišči zunaj, drugi dve noter:

Dobimo dve ločeni konturi, vsaka povezuje diagonalna robova (npr. kot “X” v kvadratu).

Desno so prikazane vizualizacije kontur, ki se pojavijo v vsakem primeru.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Zakaj ne korakajoči trikotniki?

A

Namesto korakajočih kvadratov (marching squares) lahko poskusimo prostor razdeliti na trikotnike, da bi našli konture (izoploskve).

Rešitev se zdi enostavna, saj znotraj vsakega trikotnika kontura enolično povezuje točke na robovih.

Zakaj se včasih to ne obnese idealno?
Čeprav rešitev znotraj posameznega trikotnika deluje dobro (kontura je vedno preprosta), v globalni mreži se začnejo pojavljati ponavljajoči se vzorci.

Razlog je v tem, da lahko razdelitev kvadratov na trikotnike ni enolična (izbira diagonale je arbitrarna).

Na spodnji sliki levo vidiš, da je kvadrat mogoče razdeliti na dva različna načina (dve diagonali).

Če imaš veliko kvadratov, lahko to povzroči neprijetne “šrafure” (ponavljajoče se vzorce) in artefakte, še posebej, če vrednosti niso povsem enakomerno razporejene (desna slika, kjer je prikazanih več celic s podatki in diagonalami).

Kaj to pomeni?
Čeprav je v vsakem trikotniku rešitev pravilna, celoten rezultat ni vedno topološko skladen (kontura se lahko pretrga, ima nenaravne “zobe” ali vzorce).

Problem tako še vedno ni rešеn – za pravilno rekonstrukcijo gladke konture še vedno potrebujemo bolj pametno povezovanje ali druge algoritme (marching squares ali marching cubes z dodatno interpolacijo).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Določanje izoploskev (marching cubes)

A

Osnovna ideja
V 3D prostoru prostor razdelimo na celice (kocke), kjer ima vsaka celica 8 oglišč.

Za vsako oglišče vemo, ali je vrednost nad pragom (“+”) ali pod pragom (“−”) – podobno kot v 2D, a zdaj v 3D.

Kombinacije
Vsako izmed 8 oglišč je lahko noter ali zunaj ⇒ 2⁸ = 256 možnih kombinacij.

Za vsako kombinacijo obstaja specifičen način, kako poteka izoploskev (meja) skozi celico – običajno je površina znotraj celice razdeljena na trikotnike, ki povezujejo robove med “noter” in “zunaj”.

Primer
Na zgornjih slikah vidiš, kako je za določeno kombinacijo “+” in “−” na ogliščih narisanih nekaj trikotnikov, ki tvorijo del površine (izoploskev).

Površina poteka vedno tam, kjer funkcija prečka prag med oglišči različnih znakov.
Redukcija kombinacij – simetrija
Ker bi bilo treba ročno določiti vseh 256 primerov, se uporablja simetrijo za zmanjšanje števila edinstvenih situacij:

a) Simetrija vrednosti
Če vse vrednosti zamenjamo (plus ↔ minus), je topologija rešitve ista, le “notranjost” in “zunanjost” se zamenjata.

Tako lahko en vzorec uporabimo dvakrat.

b) Rotacijska simetrija
Če celico zavrtimo za 90, 180 ali 270 stopinj, dobimo enako kombinacijo z drugo orientacijo, ki jo lahko obravnavamo enako.

Tako se število dejanskih edinstvenih primerov bistveno zmanjša.

Praktičen pomen
V praksi je treba implementirati ali shraniti le manjše število osnovnih primerov (nekje med 14 in 32), ostale pa generiramo s pomočjo simetrije in rotacij.

Tako je marching cubes hiter in učinkovit postopek za rekonstrukcijo izoploskev v 3D volumenskih podatkih (npr. MRI slike, računalniško modeliranje tekočin, metakrogle …).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Izoploskve (Korakajoče Kocke)

A

Kaj prikazujejo slike?
Vsaka kocka predstavlja eno celico v 3D mreži (npr. v volumetričnih podatkih).

Oranžne pike označujejo oglišča, ki so “znotraj” izoploskve (npr. kjer je gostota ali vrednost nad pragom).

Rjave ploskve (trikotniki ali poligoni) so deli izoploskve, ki potekajo skozi kocko.

Površina vedno povezuje tiste robove, kjer se vrednost spremeni iz “noter” v “zunaj”.

Kaj je postopek?
Za vsako celico v volumetrični mreži pogledaš vrednosti v njenih 8 ogliščih.

Odločiš, ali je oglišče noter ali zunaj (glede na prag).

Glede na kombinacijo (od 0 do 255) izbereš ustrezno konfiguracijo trikotnikov.

Trikotniki povezujejo sredine robov, kjer se vrednost spremeni iz noter v zunaj (ali obratno).

Če to narediš za vse celice, dobiš gladko površino, ki predstavlja izoploskev celotnega modela.

Kaj nam pokaže ta vizualizacija?
Prikazane so različne osnovne topološke konfiguracije, ki jih najdemo v posamezni kocki – nekatere imajo le en trikotnik, druge več trikotnikov.

Vsaka kombinacija (glede na to, katera oglišča so noter/zunaj) ima svojo značilno površino.

Zakaj je to pomembno?
Marching cubes je osnovni postopek za prikaz implicitnih površin v medicinskem slikanju (CT, MRI), računalniški grafiki (npr. metakrogle), simulacijah tekočin itd.

Algoritem omogoča pretvorbo volumetričnih (gostotnih) podatkov v mnogokotniške mreže, ki jih lahko prikazujemo in obdelujemo v 3D programih.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly