Poˇ c´ıtaˇ cov´ a grafika
Poˇc´ıtaˇcov´a grafika Mark´eta Krmelov´a Katedra informatiky, Univerzita Palack´ eho v Olomouci
27. listopadu 2013
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Rekonstrukce 3D tˇeles Reprezentace trojrozmˇern´ych dat. Hled´an´ı povrchu tˇelesa v tˇechto datech. Pˇredstaven´ı nˇekolika algoritm˚ u.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Reprezentace a modelov´an´ı tˇeles tˇeleso = mnoˇzina bod˚ u v trojrozmˇern´em prostoru tˇeleso = sjednocen´ı dvou disjunktn´ıch mnoˇzin - vnitˇrn´ı body a hraniˇcn´ı body tˇeleso je spojit´y u ´tvar, tvoˇren´y jedn´ım celkem tato definice tˇelesa vyluˇcuje pˇr´ımky, kˇrivky v prostoru...
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Trj´uheln´ıky a s´ıtˇe troj´uheln´ık˚ u troj´ uheln´ık - je vˇzdy konvexn´ı, vˇsechny vrcholy leˇz´ı v rovinˇe, rychl´e algoritmy na jejich vyplˇ nov´an´ı, zobrazov´an´ı podporov´ano grafick´ym procesorem s´ıt’ troj´ uheln´ık˚ u (triangle mesh) = troj´ uheln´ıky, kter´e spolu sd´ılej´ı hrany popis s´ıtˇe 2 logick´e ˇc´asti: geometrick´a - souˇradnice vrchol˚ u topologick´a - u ´daje o tom, kter´e vrcholy tvoˇr´ı troj´ uheln´ık
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
u S´ıt’ troj´uheln´ık˚ rozdˇelen´ı na topologickou a geometrickou ˇc´ast - praktick´e pro operace se s´ıt´ı napˇr. pˇri geometrick´ych transformac´ıch se poze pˇrepoˇc´ıt´avaj´ı souˇradnice vrchol˚ u kriteria pro tvorbu troj´ uheln´ıkov´ych s´ıt´ı Pˇresn´e a u ´sporn´e vyj´adˇren´ı tvaru, kter´y s´ıt’ vyjadˇruje uspoˇr´ad´an´ı vhodn´e pro dalˇs´ı zpracov´an´ı
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
u S´ıt’ troj´uheln´ık˚ troj´ uheln´ıkov´a s´ıt’ nen´ı vhodn´a pro modelov´an´ı tvaru je tˇreba optimalizovat tak, aby pro co nejmenˇs´ı poˇcet troj´ uheln´ık˚ u byl vymodelov´an co nejpˇresnˇejˇs´ı tvar
Obr´azek : Vlevo pravideln´a troj´ uheln´ıkov´a s´ıt’, vpravo jemnˇejˇs´ı v m´ıstech s vˇetˇs´ı kˇrivost´ı Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
u S´ıt’ troj´uheln´ık˚ pro nˇekter´e u ´lohy je nevhodn´e rozdˇelen´ı do dvou struktur (geometrick´a a topologick´a) napˇr. zpracov´an´ı grafick´ym procesorem chceme, aby bylo co nejm´enˇe operac´ı s vrcholy - vhodn´y v´yber troj˚ uheln´ıkov´e s´ıtˇe pruh troj´ uheln´ık˚ u vˇej´ıˇr troj´ uheln´ık˚ u
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Hraniˇcn´ı reprezentace tˇeles popis hranice (boundary representation) - tj. popis hraniˇcn´ıch bod˚ u informace o vnitˇrn´ıch bodech tˇelesa se neuchov´avaj´ı (lze je odvodit z popisu hranice) tato reprezentace je pˇrirozen´a
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Konstruktivn´ı geometrie tˇeles tˇeleso reprezentov´ano stromovou strukturou (CSG) uchov´avaj´ıc´ı historii d´ılˇc´ıch konstrukˇcn´ıch krok˚ u CSG primitiva - jednoduch´e geometrick´e objekty (kv´adr, koule, v´alec, kuˇzel, toroid, jehlan,...) v´ysledn´y objekt je sloˇzen z CSG primitiv a a prostorov´ych transformac´ı
Obr´azek : Popis tˇelesa CSG stromem Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Objemov´a reprezentace tˇeles nem´ame k dispozici geometrick´y popis tˇelesa sada vzork˚ u v urˇcit´em m´ıstˇe povrchu, nebo objemu rozpr´ylen´a data - kromˇe hodnotˇe o jasu, m´a i souˇradnice pravideln´e mˇr´ıˇzky
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Mˇr´ıˇzky d˚ uleˇzit´y je tvar mˇr´ıˇzky
Obr´azek : Zleva - kart´ezsk´a, pravideln´a, pravo´ uhl´a, strukturovan´a, nestrukturovan´a, blokovˇe strukturovan´a, hybridn´ı Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Trojrozmˇern´e objekty a data v diskr´etn´ı mˇz´ıˇzce probl´em - velk´e mnoˇzstv´ı dat m´ısto spojit´e informace pouze diskr´etn´ı - sloˇzit´e nat´aˇcen´ı o u ´hly jin´e neˇz prav´e, zvˇetˇsov´an´ı a pod. v´yhody - snadn´a pr´ace s namˇeˇren´ymi daty, snadn´e zpracov´an´ı objemu dat jako celku (nez´avisl´e na poˇctu objekt˚ u ve sc´enˇe)
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Voxel voxel = analogie dvourozmˇern´eho pixelu nejmenˇs´ı element ve trojrozmˇern´em diskr´etn´ım prostoru kv´adr, nebo krychle v pravo´ uhl´e mˇr´ıˇzce
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Skal´arn´ı objemov´e algoritmy dˇel´ıme na: algoritmy zobrazuj´ıc´ı povrchy (surface rendering) pˇr´ım´e objemov´e algoritmy (volume rendering)
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Surface rendering (surface-fitting rendering) vytv´aˇr´ı geometrickou reprezentaci povrchu (nejˇcastˇeji s´ıt´ı troj´ uheln´ık˚ u) n´aslednˇe zobrazuj´ı v´yhody : sn´ıˇzen´ı mnoˇzstv´ı dat
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Volume rendering (direct volume rendering) zobrazen´ı dat bez pˇreveden´ı do povrchov´e reprezentace nen´ı potˇreba zn´at, zda prvek (voxel) patˇr´ı do zobrazovan´eho tˇelesa, nebo ne zobrazuj´ı jak vnitˇrek tˇelesa, tak rozhran´ı mezi materi´aly
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Algoritmy zobrazuj´ıc´ı povrchy propojov´an´ı kontur (opl´aˇstˇen´ı kontur) povrchov´e kostky (opaque cubes) pochoduj´ıc´ı kostky dˇelen´e kostky
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Algoritmy zobrazuj´ıc´ı objem Jednou z nejzn´amˇejˇs´ıch metod je tzv. Ray casting neboli metoda vrh´an´ı paprsku. Zobrazov´an´ı dat touto metodou lze d´ale ˇclenit na: metody pracuj´ıc´ı s daty bez hled´an´ı povrchu, metody hledaj´ıc´ı povrch, kter´e nezjiˇst’uj´ı norm´aly, metody hledaj´ıc´ı povrch a jeho norm´aly.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Algoritmy zobrazuj´ıc´ı objem Budeme br´at v u ´vahu data v trojrozmˇern´e mˇr´ıˇzce. P´ısmenem Ii si oznaˇc´ıme hodnotu intenzity i-t´eho vzorku pod´el paprsku. P´ısmenem J oznaˇc´ıme mnoˇzinu zapoˇc´ıtan´ych vzork˚ u (vzork˚ u zasaˇzen´ych paprskem, pˇr´ıpadnˇe vyhovuj´ı nˇejak´emu dalˇs´ımu krit´eriu) viz. 4
Obr´azek : Oznaˇcen´ı. Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Metody nehledaj´ıc´ı povrch Tyto metody t´ım, ˇze nehledaj´ı povrch a nevyˇzaduj´ı ˇz´adn´e pˇredzpracov´an´ı, jsou rychl´e a proto se hod´ı zejm´ena pro vytv´aˇren´ı n´ahledu. Patˇr´ı sem metody: Maximum intensity projection Summed intensity projection Average intensity projection
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Maximum intensity projection Tato metoda zobrazuje pouze nejjasnˇejˇs´ı struktury pod´el paprsku. Pro kaˇzd´y bod se vypoˇc´ıt´av´a hodnota I pomoc´ı vzorce: I = maxi∈J Ii .
Obr´azek : V´ystup z programu Volume - maximum intensity projection. Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Summed intensity projection Tato metoda poˇc´ıt´a∑ jas jako souˇcet jas˚ u pod´el paprsku pomoc´ı vzorce: I = i∈J Ii
Obr´azek : V´ystup z programu Volume - summed intensity projection.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Average intensity projection ∑
jas pr˚ umˇeruje dle vzorce: I =
i∈J Ii
|J|
Obr´azek : V´ystup z programu Volume - average intensity projection.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Metody s jednoduch´ym zobrazen´ım povrchu Tyto metody vyˇzaduj´ı znalost hraniˇcn´ı hustoty tˇelesa, kter´e chceme zobrazit. Prvn´ımu pixelu na dr´aze paprsku, kter´y patˇr´ı do tˇelesa, pˇriˇrad´ıme hodnotu jasu podle hloubky (vzd´alenosti od plochy proch´azej´ıc´ı okrajem sn´ımk˚ u). Takto zobrazen´y povrch ale nevypad´a pˇr´ıliˇs objemovˇe. Potlaˇcuje ˇsum vzorkov´an´ı a s n´ım i hrany a nespojitosti. Jeˇstˇe jednoduˇsˇs´ı metodou je zobrazit prvn´ı pixel na dr´aze paprsku s jeho hodnotou. Tato metoda nezobrazuje tvar, ale pouze barvu povrchu objektu.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Metody s jednoduch´ym zobrazen´ım povrchu
Obr´azek : V´ystup z programu Volume - zobrazn´ı povrchu bez v´ypoˇctu norm´al.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Obr´azek : V´ystup z programu Volume - zobrazn´ı povrchu bez v´ypoˇctu norm´al II.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Metody zobrazuj´ıc´ı povrch s norm´alou Tˇemito metodami z´ısk´ame kvalitnˇejˇs´ı zobrazen´ı objektu, d´ıky tomu, ˇze se snaˇz´ıme odhadnout orientaci povrchu v m´ıstˇe dopadu paprsku. Zm´ın´ıme tˇri nejzn´amˇejˇs´ı metody pro odhad norm´al. Patˇr´ı sem metody: Z-buffer gradient shadding Voxel gradient shading Gray-level gradient shading
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Z-buffer gradient shadding Norm´alu aproximuje vektorem, jehoˇz kolm´ym pr˚ umˇetem do plochy obrazovky je vektor gradientu v pamˇeti hloubky. Sloˇzky norm´aly vypoˇc´ıt´ame: n0 = Z (px + 1, py ) − Z (px − 1, py ), n1 = Z (px , py + 1) − Z (px , py − 1), n2 = 1, kde [px , py ] jsou souˇradnice pixelu, pro kter´y poˇc´ıt´ame norm´alu. Na konci je potˇreba takto vypoˇc´ıtan´y vektor normovat. Tato metoda zachycuje tvar tˇelesa, ale na zaoblen´ych povrˇs´ıch jsou vidˇet vrstevnice.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Z-buffer gradient shadding
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Voxel gradient shading odhaduje oproti pˇredeˇsl´e metodˇe norm´alu podle gradientu v bin´arn´ım objemu vzork˚ u. Sloˇzky gradientu nab´yvaj´ı hodnot {−1, 0, 1} a sloˇzky v´ysledn´e norm´aly nab´yvaj´ı jednu z 27 hodnot. Sloˇzky gradientu spoˇc´ıt´ame dle n´asleduj´ıc´ıch vzorc˚ u: n0 = b(px + 1, py , pz ) − b(px − 1, py , pz ), n1 = b(px , py + 1, pz ) − b(px , py − 1, pz ), n2 = b(px , py , pz + 1) − b(px , py , pz − 1), kde [px , py , pz ] jsou souˇradnice pixelu a hodnota b(px , py , pz ) nab´yvaj´ıc´ı 1 nebo 0 pˇredstavuje funkci pˇr´ısluˇsnosti pixelu k povrchu. Stejnˇe jako v pˇredeˇsl´e metodˇe se i zde objevuj´ı vrstevnice.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Voxel gradient shading
eta Krmelov´ a Volume Poˇ c´ıtaˇ cov´ a grafika gradient shading. Obr´azek : V´ystup Mark´ z programu Voxel
Poˇ c´ıtaˇ cov´ a grafika
Gray-level gradient shading pˇredpokl´ad´a, ˇze na povrchu doch´az´ı k nejvˇetˇs´ı zmˇenˇe hodnot vzork˚ u, tj. opˇet poˇc´ıt´ame s t´ım, ˇze norm´ala bude ve smˇeru gradientu, ale budeme zde narozd´ıl od pˇredchoz´ı metody poˇc´ıtat s p˚ uvodn´ımi hodnotami. Sloˇzky norm´aly tedy vypoˇc´ıt´ame: n0 = f (px + 1, py , pz ) − f (px − 1, py , pz ), n1 = f (px , py + 1, pz ) − f (px , py − 1, pz ), n2 = f (px , py , pz + 1) − f (px , py , pz − 1).
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Gray-level gradient shading
eta Krmelov´ a Poˇ c´ıtaˇ ov´ a grafika Obr´azek : V´ystup z Mark´ programu Volume - cGray-level gradient shading.
Poˇ c´ıtaˇ cov´ a grafika
Surface rendering (surface-fitting rendering) hled´ame povrch reprezentuj´ıc´ı konstantn´ı hodnotu vzork˚ u vytv´aˇr´ı geometrickou reprezentaci povrchu (nejˇcastˇeji s´ıt´ı troj´ uheln´ık˚ u) n´aslednˇe zobrazuj´ı v´yhody : sn´ıˇzen´ı mnoˇzstv´ı dat
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Rekonstrukce povrchu opl´aˇstˇen´ım kontur hled´an´ı hranic tˇelesa v jednotliv´ych vzorc´ıch (kontura) pˇriˇrazen´ı kontur opl´aˇstˇen´ı
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Obr´azek : Vstupn´ı objekt.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Obr´azek : Sada ˇrez˚ u.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
a)
b)
c)
d)
e)
Obr´azek : Uk´azka odhadu skuteˇcn´eho povrchu pokud nem´ame dalˇs´ı informaci o tvaru tˇelesa mezi ˇrezy.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Kontura kontura = orientovan´y jednoduch´y uzavˇren´y polygon ci = p 1 , p 2 , . . . , p n kontury se v r´amci ˇrezu neprot´ınaj´ı 2 druhy kontur - vnˇejˇs´ı kontura, d´ıra hled´an´ı kontur napˇr´ıklad metodou Marching Squares
Obr´azek : Kontura a kontura s d´ırou. Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Rekonstrukce povrchu opl´aˇstˇen´ım kontur m´ame kontury a hled´ame odhad p˚ uvodn´ıho tvaru povrchu ve formˇe troj´ uheln´ıkov´e s´ıtˇe chyb´ı n´am data mezi jednotliv´ymi vzorky - hrub´y odhad kl´ıˇcov´y probl´em - vz´ajemn´e pˇriˇrazen´ı kontur je potˇreba dalˇs´ı znalost o struktuˇre vzorkovan´eho objektu (jin´y postup u kulovit´ych u ´tvar˚ u a pˇri rekonstrukci objektu stromov´e struktury)
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Heuristiky pro pˇriˇrazen´ı kontur Plocha pˇrekryt´ı kontur = velikost kolm´e projekce sousedn´ıch kontur
Obr´azek : Krit´erium pˇrekryt´ı kontur.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Heuristiky pro pˇriˇrazen´ı kontur Zobecnˇen´e v´alce = kontury maj´ı tvar kruhu nebo elipsy stˇredy lez´ı pˇribliˇznˇe na jedn´e pˇr´ımce
Obr´azek : Zobecnˇen´e v´alce.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Heuristiky pro pˇriˇrazen´ı kontur Strom minim´aln´ıho pokryt´ı v grafu kontur - sestavuje se graf, jednotliv´e kontury jsou uzly a hrany tvoˇr´ı propojen´ı kontur. Hrany se ohodnocuj´ı podle vzd´alenosti. Hled´ame zde strom minim´aln´ıho pokryt´ı.
Obr´azek : Spr´avn´e a chybn´e propojen´ı kontur.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Propojen´ı kontur propojen´ı jednotliv´ych kontur s´ıt´ı troj´ uheln´ık˚ u probl´em vˇetven´ı a spojov´an´ı kontur r˚ uzn´e metody si r˚ uznˇe porad´ı s vˇetven´ım heuristiky, kter´e nezkoumaj´ı cel´y obvod kontury, ale pouze definuj´ı krit´eria, kter´a mus´ı splˇ novat novˇe pˇridan´y troj´ uheln´ık lok´aln´ı a glob´aln´ı metriky
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Propojen´ı kontur Minim´aln´ı povrch - objem troj´ uheln´ıku - nehod´ı se pokud jsou kontury posunuty
Obr´azek : Chybn´e spojen´ı kontur.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Propojen´ı kontur Smˇer pˇriˇrazen´ı - preferuje spojnice, kter´e se moc neliˇs´ı od spojnice tˇeˇziˇst’ Maxim´aln´ı objem - objem kl´ınu, kter´y tvoˇr´ı troj´ uheln´ıkov´a z´aplata a spojnice tˇeˇziˇst’ kontur
Obr´azek : Maxim´aln´ı objem.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Z´avˇer vhodn´e pro aproximaci dat s vˇetˇs´ıme rozestupy mezi vzorky mnoho r˚ uzn´ych pˇr´ıstup˚ u k propojen´ı kontur, je potˇreba zn´at dodateˇcn´e informace
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Pochoduj´ıc´ı kostky (Marching Cubes) publikov´ana 1987 W. Lorensenen and H. Clinem v knize Computer Grapgics Vstup: objemov´a data v pravideln´e mˇr´ıˇzce a konstanta prahu V´ystup - mnoˇzstv´ı troj˚ uheln´ık˚ u aproximuj´ıc´ı povrch data ch´ape jako krychle a ty postupnˇe proch´az´ı a poˇc´ıt´a jednotliv´e troj´ uheln´ıky pro danou krychli velk´e mnoˇzstv´ı troj´ uheln´ık˚ u - pro kaˇzdou krychli mohou vzniknout aˇz 4 troj´ uheln´ıky nezohledˇ nuje glob´aln´ı pohled
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Marching Squeres Pracuje stejnˇe jako Marching Cubes, ale v 2D hled´a hranici dat dvourozmˇernou mˇr´ıˇzku s indexy i a j Mˇr´ıˇzka je o rozmˇeru m × n (hodnoty i = 0, ..., m − 1 a j = 0, ..., n − 1) fij = f (x0 + ih, y0 + jh) hodnoty funkce v jednotliv´ych bodech mˇr´ıˇzky f0 hodnota, pro kterou hled´ame kˇrivku.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Algoritmus Marching Squeres Kaˇzd´emu bodu mˇr´ıˇzky pˇriˇrad´ıme hodnotu fij = f (x0 + ih, y0 + jh) Pro kaˇzd´y ˇctverec: vypoˇc´ıt´ame index ˇctverce Interpolujeme vrcholy na aktivn´ıch hran´ach Pro kaˇzdou hranu: vykresl´ıme hranu
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Algoritmus Marching Squeres Zjist´ıme zda je vrchol uvnitˇr tˇelesa, nebo vnˇe Pokud pro sousedn´ı vrcholy plat´ı, ˇze jeden je vnˇe a jeden uvnitˇr - kˇrivka proch´az´ı mˇezi nimi
D´ıky n´ım m˚ uˇzeme kaˇzd´emu ˇctverci jednoznaˇcnˇe pˇriˇradit index
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Algoritmus Marching Squeres Index ˇctverce - index = 20 A + 21 B + 22 C + 23 D A, B, C , D jsou hodnoty 0 nebo 1, podle toho, zda body A, B, C , D jsou vnitˇrn´ımi nebo vnˇejˇs´ımi body index nab´yv´a hodnot 0 . . . 15
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Algoritmus Marching Squeres M´ame index ˇctverce, do pomocn´e tabulky se pod´ıv´ame, na kter´ych hran´ach leˇz´ı vrcholy u ´seˇcek (aproximuj´ıc´ı hranici) interpolujeme tyto vrcholy (moˇzn´e pouˇz´ıt stˇred hrany, ale lepˇs´ı line´arn´ı interpolace)
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Algoritmus Marching Squeres D=2
x3
4
A=3
C=6 y2
1
B=3
f0 = 4 index = 20 A + 21 B + 22 C + 23 D, dostaneme index = 0 + 0 + 4 + 0 = 4 krajn´ı body u ´seˇcky leˇz´ı na hran´ach 2 a 3 a hodnota ve v´ychoz´ım bodˇe a b v koncov´em I (u) = mu + n, I (a) = 0, I (b) = h h je d´elka hrany ˇctverce Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Algoritmus Marching Squeres 0 −a I (u) = fb−a . V naˇsem pˇr´ıpadˇe tedy:
x=
f0 − f (D) 4−2 h h= h= , f (C ) − f (D) 6−2 2
y=
4−3 h f0 − f (B) h= h= . f (C ) − f (B) 6−3 3
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Algoritmus Marching Squeres - Z´avˇer vznikaj´ı nejednoznaˇcnosti
nen´ı moˇzn´e rozhodnout zda pouˇz´ıt sp´ıˇse u ´seˇcky v prvn´ım ˇr´adku, nebo ve druh´em. V r´amci algoritmu jde o vˇec konvence - pokud prvn´ı a druh´y ˇr´adek nekombinujeme bude v´ysledn´a kˇrivka vˇsude plynule navazovat prvn´ıho ˇr´adek - kˇrivka tvoˇr´ı nesouvisl´e struktury, druh´y ˇr´adek souvislejˇs´ı celky.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Algoritmus Marching cubes Kaˇzd´emu bodu mˇr´ıˇzky pˇriˇrad´ıme hodnotu fijk = f (x0 + ih, y0 + jh, z0 + kh) Pro kaˇzdou krychli: vypoˇc´ıt´ame index krychle Interpolujeme vrcholy na aktivn´ıch hran´ach Pro kaˇzd´y troj´ uheln´ık: vykresl´ıme troj´ uheln´ık
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Algoritmus 4
4
5
7
5 6
7
6
9
8 10 11
0
1
0
3 3
1 2
2
Obr´azek : Oznaˇcen´ı hran a vrchol˚ u krychle
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Algoritmus
Obr´azek : Vˇsechny moˇzn´e kombinace um´ıstˇen´ı troj´ uheln´ık˚ u v krychli
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Nejednoznaˇcnosti algoritmu vede ke d´ır´am jak je vidˇet na obr.
Vyˇreˇsen´ım t´eto nejednoznaˇcnosti se vyhneme d´ır´am, ale nezaruˇc´ı n´am to spr´avnou topologii viz.
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Pochoduj´ıc´ı ˇctyˇrstˇeny - Marching Tetrahedra Tato metoda byla poprv´e uvedena B.A. Paynem a A.W. Togou v knize Surface Mapping Brain Function on 3D Models pokusem o odstranˇen´ı nejednoznaˇcnost´ı v metodˇe Marching Cubes krychle se rozdˇel´ı na 5 ˇctyˇrstˇen˚ u a troj´ uheln´ıky se um´ıst’uj´ı do nich
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Pochoduj´ıc´ı ˇctyˇrstˇeny - Marching Tetrahedra Probl´em dˇer byl v tomto algoritmu zcela vyˇreˇsen, ale na u ´kor n´arustu poˇctu troj´ uheln´ık˚ u a nutnosti stˇr´ıd´an´ı zp˚ usobu dˇelen´ı krychle (To je nutn´e pro zachov´an´ı spojitosti povrchu).
Zlepˇsen´ı n´avaznosti lze vylepˇsit dˇelen´ım na 6 ˇci 24 ˇctyˇrstˇen˚ u tento algoritmus nen´ı v praxi pˇr´ıliˇs pouˇz´ıv´an
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Marching cubes 33 zaruˇcuje topologii a ˇreˇs´ı nejednoznaˇcnosti t´ım, ˇze: m´a rozˇs´ıˇrenou look-up tabulku prov´ad´ı dodateˇcn´e zkoum´an´ı krychle
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Rozˇs´ıˇren´a look-up tabulka
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Algoritmus Marching cubes 33 look-up tabulka tabulka pˇr´ıpad˚ u oznaˇcen´ı stˇen (faces)
Obr´azek : oznaˇcen´ı stˇen (faces)
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Tabulka pˇr´ıpad˚ u
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
ˇ sen´ı nejednoznaˇcnost´ı Reˇ ˇ sen´ı face nejednoznaˇcnost´ı Reˇ dva protilehl´e vrcholy A a C jedn´e stˇeny jsou pozitivn´ı (leˇz´ı v tˇelese) a dalˇs´ı dva B a D jsou negativn´ı Testujeme, zda jsou vrcholy A a C propojeny uvnitˇr stˇeny, nebo ne sign(facelabel ∗ F (A) ∗ (F (A) ∗ F (C ) − F (B) ∗ F (D)))
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
ˇ sen´ı nejednoznaˇcnost´ı Reˇ ˇ sen´ı vnitˇrn´ıch nejednoznaˇcnost´ı Reˇ dva diagon´alnˇe protilehl´e vrcholy krychle mohou b´yt propojen´e skrz krychli pokud je zde ˇretˇezec pozitivn´ıch vrchol˚ u spojuj´ıc´ı tyto vrcholy pˇrez hrany, nebo v pˇr´ıpadˇe pˇrez face (nen´ı vnitˇrn´ı nejednoznaˇcnost) pokud existuje rovina P, kde jsou oba protilehl´e vrcholy (At a Ct ) pozitivn´ı ⇒ ˇreˇs´ıme jako face nejednoznaˇcnost
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Z´avˇer ˇreˇs´ı nejednoznaˇcnosti metody Marching Cubes
generuje v´ıce troj´ uheln´ık˚ u m˚ uˇze vzniknout aˇz 12 troj´ uheln´ık˚ u, coˇz je 3x v´ıce neˇz je tomu v jednoduch´e metodˇe Marching Cubes
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Dividing Cubes - Dˇelen´e kostky v roce 1988 v publikaci Two Algorithms for the Three-Dimensional Reconstruction of Tomograms H.E. Cline, W.E Lorensen, S.Ludke, C.R. Crawford a B.C. Teeter ˇreˇs´ı pˇrev´aˇznˇe probl´em pomal´eho vykreslov´an´ı tˇelesa, kter´y vznik´a pˇri rasterizaci obrovsk´eho mnoˇzstv´ı mal´ych ploˇsek vykresl´ı pouze povrchov´e body s norm´alou nev´yhodou t´eto metody je ztr´ata informace o tom, ke kter´e ploˇse bod n´aleˇz´ı nemoˇznost pˇribl´ıˇzen´ı tˇelesa
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Dividing Cubes - Algoritmus Naˇcteme objemov´a data a prahovou konstantu, pro kterou hled´ame povrch. Do pamˇeti naˇcteme ˇctyˇri soused´ıc´ı ˇrezy. Vytvoˇr´ıme krychli, kterou definujeme 8 body dvou soused´ıc´ıch ˇrez˚ u. Ve vˇsech osmi vrcholech vypoˇc´ıt´ame vektor gradientu jednotliv´e sloˇzky vypoˇc´ıt´ame jako rozd´ıl mezi pˇredchoz´ım a n´asleduj´ıc´ım sousedem ve smˇeru kaˇzd´e osy. Ohodnot´ıme kaˇzdou krychli. Krychle je: Vnitˇrn´ı - pokud intenzita vˇsech vrchol˚ u je menˇs´ı neˇz prahov´a konstanta Vnˇejˇs´ı - pokud intenzita vˇsech vrchol˚ u je vˇetˇs´ı neˇz prahov´a konstanta jinak prot´ınaj´ı povrch hledan´eho obrazu Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika
Poˇ c´ıtaˇ cov´ a grafika
Dividing Cubes - Algoritmus Rozdˇel´ıme vˇsechny krychle na a × b × c subkrychl´ı, kter´e jsou velk´e jako zobrazovan´e body. Denzitu kaˇzd´eho vrcholu vypoˇc´ıt´ame line´arn´ı interpolac´ı. Proch´az´ıme jednotliv´e subkrychle a hled´ame ty, kter´e leˇz´ı na hranici tˇelesa (nˇekter´e vrcholy leˇz´ı uvnitˇr a nˇekter´e vnˇe). Interpolujeme vektor gradientu tˇechto krychl´ı. Vypoˇc´ıt´ame intenzitu svˇetla kaˇzd´eho povrchov´eho bodu, projekc´ı norm´alov´eho vektoru pod´el smˇeru pohledu .
Mark´ eta Krmelov´ a
Poˇ c´ıtaˇ cov´ a grafika