Rekonstrukce izoploch

Podobné dokumenty
Visualizace objemových dat

Visualizace objemových dat

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování

Datové struktury pro prostorové vyhledávání

Přímé zobrazování objemových dat DVR

Jana Dannhoferová Ústav informatiky, PEF MZLU

Metamorfóza obrázků Josef Pelikán CGG MFF UK Praha

Geometrické vyhledávání

Voronoiův diagram. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta

Hierarchický model Josef Pelikán CGG MFF UK Praha. 1 / 16

KMA/GPM Barycentrické souřadnice a

Watkinsův algoritmus řádkového rozkladu

Úvod do mobilní robotiky AIL028

Reprezentace 3D scény

Katedra informatiky, Univerzita Palackého v Olomouci. 27. listopadu 2013

Výpočet průsečíků paprsku se scénou

Modely prostorových těles

Digitální model reliéfu (terénu) a analýzy modelů terénu

Úvod do mobilní robotiky AIL028

MATURITNÍ TÉMATA Z MATEMATIKY

GIS Geografické informační systémy

Grafy. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.

Rekurzivní sledování paprsku

Výpočet průsečíků paprsku se scénou

9. přednáška z předmětu GIS1 Digitální model reliéfu a odvozené povrchy. Vyučující: Ing. Jan Pacina, Ph.D.

Mgr. Ladislav Zemánek Maturitní okruhy Matematika Obor reálných čísel

Teoretická informatika Tomáš Foltýnek Barvení grafů Platónská tělesa

9 Prostorová grafika a modelování těles

Algoritmizace prostorových úloh

KŘIVKY A PLOCHY. Obrázky (popř. slajdy) převzaty od

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d.

Urychlovací metody pro Ray-tracing

GIS Geografické informační systémy

Úvod do mobilní robotiky AIL028

Transformace obrazu Josef Pelikán KSVI MFF UK Praha

Zobrazování barev Josef Pelikán CGG MFF UK Praha.

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 6

Textury a šumové funkce

Matematická morfologie

Výpočet vržených stínů

Realita versus data GIS

15. listopadu Matematický ústav UK Matematicko-fyzikální fakulta. Hermitovská interpolace

Gymnázium Česká a Olympijských nadějí, České Budějovice, Česká 64, 37021

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 12

Malířův algoritmus Josef Pelikán CGG MFF UK Praha. 1 / 15

Úvod do GIS. Prostorová data II. část. Pouze podkladová prezentace k přednáškám, nejedná se o studijní materiál pro samostatné studium.

Datové struktury. Zuzana Majdišová

Dynamické programování

Počítačová grafika RHINOCEROS

Maturitní otázky z předmětu MATEMATIKA

Gymnázium Jiřího Ortena, Kutná Hora

k-dimenzionálním prostoru. problém: Zkonstruovat strom, který rozděluje prostor polorovinami

Státní závěrečná zkouška z oboru Matematika a její použití v přírodních vědách

Rastrová reprezentace

Rastrová reprezentace geoprvků model polí Porovnání rastrové a vektorové reprezentace geoprvků Digitální model terénu GIS 1 153GS01 / 153GIS1

Algoritmy výpočetní geometrie

Aproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2.

Algoritmy pro shlukování prostorových dat

Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1

Extrémy funkce dvou proměnných

Výpočetní geometrie Computational Geometry

MATEMATIKA Maturitní témata společná část MZ základní úroveň (vychází z Katalogu požadavků MŠMT)

Semestrální práce z předmětu KMA/MM. Voroneho diagramy

11 Vzdálenost podprostorů

Reprezentace 3D modelu

Vyplňování souvislé oblasti

Generování sítě konečných prvků

Maturitní témata profilová část

Gymnázium Jiřího Ortena, Kutná Hora. Průřezová témata Poznámky. Téma Školní výstupy Učivo (pojmy) volné rovnoběžné promítání průmětna

Jana Dannhoferová Ústav informatiky, PEF MZLU

Triangulace. Význam triangulace. trojúhelník je základní grafický element aproximace ploch předzpracování pro jiné algoritmy. příklad triangulace

Vzorce počítačové grafiky

Jasové transformace. Karel Horák. Rozvrh přednášky:

Golayův kód 23,12,7 -kód G 23. rozšířený Golayův kód 24,12,8 -kód G 24. ternární Golayův kód 11,6,5 -kód G 11

Anti-aliasing a vzorkovací metody

Kristýna Bémová. 13. prosince 2007

Josef Pelikán, CGG MFF UK Praha

7 Konvexní množiny. min c T x. při splnění tzv. podmínek přípustnosti, tj. x = vyhovuje podmínkám: A x = b a x i 0 pro každé i n.

Deformace rastrových obrázků

1 Projekce a projektory

Bézierovy křivky Bohumír Bastl KMA/GPM Geometrické a počítačové modelování Bézierovy křivky GPM 1 / 26

INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA

Dvěma různými body prochází právě jedna přímka.

autorovu srdci... Petr Hliněný, FI MU Brno 1 FI: MA010: Průnikové grafy

Základy 3D modelování a animace v CGI systémech Cinema 4D C4D

Multirobotická kooperativní inspekce

Komplexní čísla, Kombinatorika, pravděpodobnost a statistika, Posloupnosti a řady

Stromové struktury v relační databázi

VE 2D A 3D. Radek Výrut. Abstrakt Tento článek obsahuje postupy pro výpočet Minkowského sumy dvou množin v rovině a pro výpočet Minkowského sumy

Gymnázium Jiřího Ortena, Kutná Hora

Photon-Mapping Josef Pelikán CGG MFF UK Praha.

Euklidovský prostor. Funkce dvou proměnných: základní pojmy, limita a spojitost.

Tělesa Geometrické těleso je prostorový omezený geometrický útvar. Jeho hranicí neboli povrchem je uzavřená plocha. Geometrická tělesa dělíme na

Matematika NÁRODNÍ SROVNÁVACÍ ZKOUŠKY DUBNA 2017

Matematika. 6. ročník. Číslo a proměnná. desetinná čísla (využití LEGO EV3) číselný výraz. zaokrouhlování desetinných čísel. (využití LEGO EV3)

I. Diferenciální rovnice. 3. Rovnici y = x+y+1. převeďte vhodnou transformací na rovnici homogenní (vzniklou

1/15. Kapitola 2: Reálné funkce více proměnných

STEREOMETRIE. Tělesa. Značení: body A, B, C,... přímky p, q, r,... roviny ρ, σ, τ,...

Vysoké učení technické v Brně, Fakulta strojního inženýrství MATEMATIKA 2

1. Vektorové algoritmy jejich výstupem je soubor geometrických prvků, např.

Transkript:

Rekonstrukce izoploch 1996-2015 Josef Pelikán, CGG MFF UK Praha http://cgg.mff.cuni.cz/~pepca/ pepca@cgg.mff.cuni.cz Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 1 / 43

Rekonstrukce izoploch výpočet a zobrazení jedné nebo více izoploch prahové hodnoty zadává uživatel aproximace izoplochy sítí rovinných plošek neprůhledné kostky ( cuberille ) Herman: 1979 napojování izočar ( contour connecting ) Keppel: 1975, Fuchs: 1977, Ekoule: 1991 pochodující kostky ( marching cubes ) Lorensen: 1987 Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 2 / 43

Definice izoplochy užší smysl pojmu: množina bodů, na kterých funkce f(x,y,z) nabývá dané hodnoty h 0 : Izo h 0 = { [ x, y, z] f x, y, z = h 0 } zobecněná izoplocha: stačí, když v každém okolí bodu B(x,y,z;e) jsou hodnoty větší i menší než práh h 0 : Izo h 0 = { [ x, y, z]=p 0 min B P ; f h 0 max B P ; f } vrstevnice na svislé skále Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 3 / 43

Neprůhledné kostky ( cuberille ) min V P h max V P ijk ijk krychle protínající izoplochu Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 4 / 43

Neprůhledné kostky zobrazení krychlí, které protínají zadanou izoplochu podle směru pohledu stačí kreslit pouze tři stěny krychle aproximace je příliš hrubá (plocha je hranatá) lepší vzhled - spojité stínování gradientní metodou (hranaté okraje však zůstávají) současné zobrazení několika izoploch technika poloprůhledných ploch (kanál alfa) Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 5 / 43

Napojování izočar izočáry v jednotlivých řezech triangulace mezi sousedními řezy Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 6 / 43

Napojování izočar výpočet izočar v jednotlivých řezech izočára se reprezentuje jako lomená čára jeden řez může obsahovat několik uzavřených smyček izočáry triangulace izoplochy mezi dvěma řezy trojúhelníky by neměly být příliš protáhlé topologicky obtížné situace: několikanásobné větvení (1:N, M:N), nejednoznačné přiřazení napojovaných izočar Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 7 / 43

Triangulace (Ekoule, Peyrin, Odet) vlastnosti: vstupní izočáry mohou mít libovolné tvary generuje dobře vypadající trojúhelníky (nepoužívá dlouhé hrany) uspokojivě řeší větvení 1:N i M:N rozdělení na několik geometricky/ topologicky odlišných případů: konvexní napojení 1:1 nekonvexní napojení 1:1 větvení 1:N a M:N Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 8 / 43

Konvexní napojení 1:1 pro izočáru s menším počtem vrcholů: každý vrchol se spojí s nejbližším bodem naproti efektivní algoritmus pracuje inkrementálně - hledá nejbližšího souseda v okolí naposledy přiřazeného vrcholu zbývající vrcholy z druhé izočáry se spojí s nejbližšími protějšky některé vrcholy se musí spojit se dvěma protějšími body (aby vznikla triangulace) Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 9 / 43

Konvexní napojení 1:1 1. fáze 2. fáze Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 10 / 43

Transformace nekonvex. izočar přenášení vrcholů z nekonvexních úseků na konvexní obal izočáry hypotéza: konvexní obaly dvou sousedních izočar si budou více podobné přenášením se zachovává pořadí i relativní vzdálenosti vrcholů triangulace se provádí na konvexních obalech hranami se potom spojí původní vrcholy izočar Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 11 / 43

Jednoduchý konkávní výběžek... P l P k P l+1 P konvexní obal k-1 Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 12 / 43

Složitější nekonvexní izočára lokální konvexní obal globální konvexní obal Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 13 / 43

Hierarchická transformace převádí obecný mnohoúhelník na konvexní zachovává počet vrcholů i jejich relativní vzdálenosti rekurentní formulace (hierarchický rozklad mnohoúhelníka): transformace lomené čáry P i... P j : na začátku se bere celý mnohoúhleník P 1... P N výpočet konvexního obalu (i,j) vrcholy ležící v konvexním obalu se nepřesunují Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 14 / 43

Hierarchická transformace pro každou posloupnost vrcholů P k... P l (k l) neležících v konvexním obalu (i,j) se provedou následující kroky: přenesení vrcholů lomené čáry P k-1... P l+1 do jejího konvexního obalu (k-1,l+1) rekurentní vyvolání popisovaného algoritmu přenesení vrcholů P k až P l na úsečku P k-1 P l+1 body P k-1 a P l+1 již leží v konvexním obalu (i,j) zachování relativních vzdáleností sousedů Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 15 / 43

Větvení 1:N a M:N 2:1 1:3 oddělovací řez (2:3) Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 16 / 43

Větvení 1:N spočítám pomocnou izočáru v polovině mezi oběma řezy konstrukce společné uzavřené izočáry pokrývající všechny spojované větve interpoluje se pomocí prvního kroku algoritmu napojování 1:1 N-krát aplikuji napojení 1:1 mezi každou větví a pomocnou izočárou + doplním příp. rovinnou triangulaci Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 17 / 43

Společná uzavřená izočára těžiště větví Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 18 / 43

Společná uzavřená izočára společná uzavřená izočára Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 19 / 43

Pomocná izočára pomocná izočára v poloviční výšce Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 20 / 43

Triangulace 1:1 rovinná triangulace 1:1 Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 21 / 43

Přiřazování větví soused. řezů automatická procedura rozhodující o tom, které větve dvou sousedních řezů se napojí jednotlivé komponenty 3D tělesa se mohou v řezech posunovat, měnit tvar nebo rozvětvovat předpokládáme dostatečně tenké řezy (vylučující variantu větvení M:N) spojení dvou řezů se zredukuje na několik napojení typu 1:1 a 1:N Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 22 / 43

Stupeň překrytí dvou izočar A i A ij A j A ij... přibližná plocha průniku Koeficient překrytí z [0,1]: S ij 1 2 A A ij i A A ij j Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 23 / 43

Automatické přiřazování větví vhodná napojovací úroveň c zadává bipartitní graf přiřazení větví S ij c hrana (i,j) při dostatečně hustém vzorkování nedochází k větvení M:N v grafu by to ukazovala existence trojice hran (i,j), (k,j) a (k,l) pro i k a j l přípustné kombinace odpovídají napojení 1:1 a větvení 1:N Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 24 / 43

Kreslení izočar v rovině Pelikán 1992 vstupem je reálná funkce na spojitém prostoru f(x,y) diskrétní data se mohou interpolovat/aproximovat cílem je nakreslit izočáru v rastrovém prostředí s pixelovou přesností 1. vyhledávání izočar 2. trasování izočar Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 25 / 43

Izočáry v rovině vyhledávání sonda čtyři body uprostřed stran čtverce (buňky, pixelu) (jiný přístup: čtyři rohy čtverce) vyhledávání izočar průchod mřížkou nebo stromem hledám buňky (pixely) s rozdílnou hodnotou sondy urychlování pro kreslení soustavy více izočar intervalový strom (quadtree nebo 9-tree ) Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 26 / 43

Izočáry v rovině trasování přechod z aktuálního pixelu izočáry do sousedního konečný počet možností (kombinatorika) již zpracované pixely se značkují ( spolupráce s vyhledávacím mechanismem )??? Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 27 / 43

Vektorové izočáry v rovině např. vstup pro napojovací alg. (Ekoule) izočára = lomená čára modifikovaný rastrový algoritmus generalizace výsledku na lomenou čáru každý k-tý pixel vrchol podle křivosti čáry (větší křivost hustší vrcholy) jemnost hledání a trasování izočar podle požadované přesnosti výsledku souřadnice vrcholů mohou být dopočítány přesněji (dělení čtverce: q-tree, 9-tree) Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 28 / 43

Pochodující kostky (Lorensen) jeden z nejpoužívanějších algoritmů + jednoduchá implementace (i HW) + generované trojúhelníky nemají dlouhé hrany velké množství trojúhelníků (i menších než 1 pixel) mohou se objevit drobné chyby v napojení generuje síť trojúhelníků v každé buňce topologie - podle konfigurace vrcholů buňky vrcholy sítě leží na hranách buňky snadno se implementuje gradientní stínování Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 29 / 43

Konfigurace vrcholů buňky Celkem 14 základních kombinací (ostatních 240 dostanu pomocí symetrií a otáčení) 1 2 Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 30 / 43

Konfigurace 3-6 3 4 5 6 Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 31 / 43

Konfigurace 7-10 7 8 9 10 Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 32 / 43

Konfigurace 11-14 11 12 13 14 Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 33 / 43

Základní algoritmus 4 sousední řezy se načtou do paměti pro každou buňku mezi dvěma prostředními řezy se spočítá síť: podle konfigurace hodnot ve vrcholech buňky se z tabulky přečte topologie sítě informace o vrcholech a hranách trojúhelníků vrcholy sítě se spočítají lineární interpolací podle hodnot ve vrcholech buňky Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 34 / 43

Základní algoritmus... normálové vektory ve vrcholech buňky se spočítají pomocí diferencí a lineárně se pak interpolují do vrcholů sítě síť trojúhelníků se stínováním se zapíše na výstup předpokládá se HW podpora viditelnosti a Gouraudova stínování Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 35 / 43

Implementace, vylepšení spočítané vrcholy sítě a normálové vektory se ukládají do cache paměti v sousedních buňkách se již nemusí počítat náhrada souvislé sítě trojúhelníků v buňce jediným mnohoúhelníkem (nerovinným) průmět buňky je často malý (řádově několik pixelů) větší efektivita při kreslení množinové operace, řezy rovinou paralelně se provádí výpočet několika izoploch Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 36 / 43

Množinové operace Tabulka pro průnik P S: S ds P dp ~P x P x S clip x ~P dp P ~S x x ořezání x S ds ~S Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 37 / 43

Dělení kostek (Cline 1988, patent) efektivnější varianta algoritmu (nekreslí polygony) každá hraniční buňka se před zpracováním promítne důležitá je velikost projekce v pixelech buňky s plochou menší než 1 pixel se kreslí jako povrchové body: [ x,y,z, barva, průhlednost ] Z-buffer (náhodné pořadí) poloprůhledné body se musí třídit podle hloubky (implicitní pořadí dané průchodem) větší buňky se rekurzivně dělí Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 38 / 43

Pochodující čtyřstěny Bourke, 1994 místo kvádrů se prostor rozdělí na čtyřstěny použitelné i v obecnějších topologiích buněk jednodušší kombinace uvnitř čtyřstěnu (jen 14 netriv.) v jednom čtyřstěnu: 1 až 2 trojúhelníky z pravidelné sítě vznikne větší množství čtyřstěnů 5, 6 nebo 24 čtyřstěnů 5 čtyřstěnů kvůli spojitosti se musí hlídat i sousední buňky a přepínat mezi 2 konfiguracemi.. Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 39 / 43

Urychlovací techniky metody založené na dekompozici prostoru hodnot span space, intervalové stromy span space jiný pohled na objemový soubor geometrický prostor G G R p prostor hodnot V V = R množina vzorků D extrakce izoplochy D = { [ g i, v i ] } [ g i, v i ] G V S v = { g i f g i = v } buňka c i a její vrcholy extrémy v buňce c i C... { v j } i c i C... a i = min j f v j b i = max j f v j Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 40 / 43

Intervalový strom každá buňka je reprezentována trojicí [ c i, a i, b i ] buňky se mohou hierarchicky sdružovat do skupin octree i skupiny obsahují min a max: [ a i, b i ] nebo se ukládají např. do KD-stromu dělí se ve 2D podle [ a i, b i ] b (max) jen polorovina: a i b i lokalizace izoplochy pro h 0 h 0 a (min) Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 41 / 43

Implicitní KD-strom (bez ukazatelů) kompletně vyvážený KD-strom uložený v 1D poli ukazatel na potomka je implicitně daný i 2i, 2i+1 (à la halda) h+i h+i/2, h+3i/2 (uzly setříděné zlevadoprava, cache-friendly ), musí být jednoznačně definováno zaokrouhlení Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 42 / 43

Literatura T. Elvins: A Survey of Algorithms for Volume Visualization, CG, August 1992, 194-201 A. Ekoule et al.: A Triangulation Algorithm from Arbitrary Shaped Multiple Planar Contours, ACM TOG, April 1992, 182-199 W. Lorensen, H. Cline: Marching Cubes: A High Resolution 3D Surface Construction Algorithm, CG, July 1987, 163-169 J. Pelikán: Raster Algorithms for Contours Extraction, WSCG '92 C. Hansen, C. Johnson: The Visualization Handbook, Elsevier 2005, pp. 39-82 Surface 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 43 / 43