26
Reprezent Reprezent ácia telies a ácia telies a priestorových dát priestorových dát

Reprezent ácia telies a priestorových dát

  • Upload
    hoai

  • View
    47

  • Download
    12

Embed Size (px)

DESCRIPTION

Reprezent ácia telies a priestorových dát. Reprezentácia 3D objektov. Trojrozmerný objekt, s ktorým pracujeme, musíme mať v počítači nejakým spôsobom uložený, t.j. reprezentovaný. Môžeme to urobiť niekoľkými spôsobmi: - PowerPoint PPT Presentation

Citation preview

Page 1: Reprezent ácia telies a priestorových dát

ReprezentReprezentácia telies a ácia telies a priestorových dátpriestorových dát

Page 2: Reprezent ácia telies a priestorových dát

Reprezentácia 3D objektovReprezentácia 3D objektov Trojrozmerný objekt, s ktorým pracujeme, musíme mať v počítači nejakým spôsobom uložený, t.j. reprezentovaný. Môžeme to urobiť niekoľkými spôsobmi:

1. Analytická reprezentácia je matematické vyjadrenie daného objektu. Môže to byť funkčný predpis, parametrické alebo implicitné vyjadrenie. 2. Povrchová reprezentácia pracuje len s povrchom objektu, ktorý môže byť daný analyticky alebo aproximovaný pomocou bodov, úsečiek alebo polygónov. 3. Objemová reprezentácia uchováva celý objem telesa, teda informácie o všetkých bodoch priestoru, ktoré objekt zaberá. 4. Logická reprezentácia ukladá informácie o tom, akým spôsobom bol daný objekt vytvorený z nejakých jednoduchších útvarov (skladaním, prienikom, rozdielom, rotáciou atď.)

Page 3: Reprezent ácia telies a priestorových dát

Analytická reprezentáciaAnalytická reprezentácia 1. Funkčný predpis

2. Parametrické vyjadreniex=r.cos.siny=r.sin.sinz=r.cos

3. Implicitné vyjadreniex2+y2+z2-r2=0

z=sin(x+y2) F(x,y,z)=cos(x)cos(y)cos(z)

Page 4: Reprezent ácia telies a priestorových dát

Povrchová reprezentáciaPovrchová reprezentácia V tomto prípade je každé teleso reprezentované len svojím povrchom, čo je v mnohých prípadoch úplne postačujúce. Povrch telesa môže byť daný dvomi základnými spôsobmi:

analyticky t.j. presne pomocou nejakej aproximácie - môžeme napr. nahradiť zakrivené časti povrchu rovinnými plôškami v tvare mnohouholníka Analytické vyjadrenie je presnejšie a jednoduchšie na

uchovávanie, aproximácia je však rýchlejšia. V praxi sa preto často vyskytujú aj prípady, keď je povrch uchovávaný v analytickej forme, ale pri zobrazovaní sa prevedie na plôškovú reprezentáciu.

Page 5: Reprezent ácia telies a priestorových dát

Povrchová reprezentáciaPovrchová reprezentácia1. Reprezentácia pomocou vrcholov

V tomto prípade reprezentujeme povrch telesa len pomocou množiny bodov, ktoré sa na povrchu nachádzajú. Je to najjednoduchšia reprezentácia. Body okrem svojich súradníc môžu obsahovať aj nejakú dodatočnú informáciu, napr. farbu, normálu v danom bode a podobne.

Page 6: Reprezent ácia telies a priestorových dát

Povrchová reprezentáciaPovrchová reprezentácia1. Reprezentácia pomocou hrán

Povrch telesa je daný vrcholmi (t.j. bodmi, ktoré patria povrchu), a hranami (úsečkami), ktoré tieto vrcholy spájajú. Takáto reprezentácia sa nazýva aj drôtený model (wireframe) Vrcholy aj hrany môžu mať aj v tomto prípade nejakú ďalšiu informáciu okrem súradníc.

Page 7: Reprezent ácia telies a priestorových dát

Povrchová reprezentáciaPovrchová reprezentácia Jednoduchý drôtený model, ktorý neobsahuje žiadne dodatočné informácie, sa v počítači ukladá jednoducho:

Uložíme tabuľku všetkých vrcholov Vytvoríme tabuľku hrán tak, že v každom riadku budú ukazovatele na dva vrcholy z tabuľky vrcholov

Príklad: Drôtený model štvorstena:

Tabuľka vrcholov:0 0 050 0 025 25 025 13 30

Tabuľka hrán:1 22 33 11 42 43 4

(0,0,0) (50,0,0)

(25,25,0)

(25,13,30)

Page 8: Reprezent ácia telies a priestorových dát

Povrchová reprezentáciaPovrchová reprezentácia

Drôtený model je veľmi jednoduchá reprezentácia, a preto môže byť často nejednoznačný (rovnako ako bodová reprezentácia).

Page 9: Reprezent ácia telies a priestorových dát

PovrchovPovrchová reprezentáciaá reprezentácia3. Plôšková reprezentácia

Pri tejto reprezentácii je povrch objektu reprezentovaný plôškami, najčastejšie rovinnými plôškami v tvare mnohouholníka. Aj v tomto prípade môžu plôšky niesť aj dodatočné informácie potrebné pri zobrazovaní objektu (farba, normála, materiál...)

Page 10: Reprezent ácia telies a priestorových dát

Povrchová reprezentáciaPovrchová reprezentácia Jednoduchá plôšková reprezentácia funguje na nasledujúcom princípe:

Uložíme tabuľku vrcholov Vytvoríme tabuľku hrán Vytvoríme tabuľku plôšok tak, že v každom riadku budú ukazovatele na vrcholy, ktoré danú plôšku tvoria. Príklad: Plôšková reprezentácia štvorstena:

Tabuľka vrcholov:0 0 050 0 025 25 025 13 30

Tabuľka hrán:1 22 33 11 42 43 4

(0,0,0) (50,0,0)

(25,25,0)

(25,13,30)Tabuľka plôšok:1 2 32 3 43 1 41 2 4

Page 11: Reprezent ácia telies a priestorových dát

Povrchová reprezentáciaPovrchová reprezentáciaŠtrukturovaná povrchová reprezentácia

Ide o komplexnú plôškovú reprezentáciu, ktorú navrhol Bruce Baumgart, a ktorá umožňuje odvodiť aj rôzne topologické údaje o danom povrchu. Základom sú opäť tri štruktúry – tabuľka vrcholov, tabuľka hrán a tabuľka plôšok. Najzložitejšia je tabuľka hrán, ktorá pracuje so štruktúrou nazývanou okrídlená hrana (winged egde).

Okrídlená hrana uchováva o hrane tieto údaje: vrcholy hrany plôšky susediace s hranou sprava a zľava P1 a P2 hrany nasledujúce za danou hranou v plôškach P1 a P2 (H2, H3) hrany predchádzajúce danej hrane v plôškach P1 a P2 (H4, H5)

V1

V2

H1

H2

H5

H3

H4

P1

P2

Page 12: Reprezent ácia telies a priestorových dát

Povrchová reprezentáciaPovrchová reprezentácia

Okrem tabuľky okrídlených hrán potrebujeme na popis povrchu ešte ďalšie dve tabuľky:

tabuľku vrcholov so súradnicami všetkých vrcholov tabuľku plôšok, kde je pre každú plôšku uložená niektorá jej hrana

Zo štrukturovanej plôškovej reprezentácie možno priamočiaro odvodiť mnohé topologické vzťahy, napr.

vrcholy a hrany každej steny plôšky priľahlé k danej hrane plôšky susediace s danou plôškou plôšky stýkajúce sa v jednom vrchole hrany stýkajúce sa v jednom vrchole atď.

Page 13: Reprezent ácia telies a priestorových dát

Povrchová reprezentáciaPovrchová reprezentácia Príklad: Štrukturovaná plôšková reprezentácia štvorstena:

Tabuľka vrcholov:V1: 0 0 0V2: 50 0 0V3: 25 25 0V4: 25 13 30

Tabuľka plôšok:P1: h1

P2: h2

P3: h3

P4: h4

V1 V2

V3

V4

h1

h2h3

h4

h5

h6

P1

P2P3

P4

Tabuľka okrídlených hrán

vrcholy plôšky následník predch.

hrana Ľ P Ľ P Ľ P Ľ P

h1 V1 V2 P4 P1 h6 h2 h4 h3

h2 V2 V3 P2 P1 h4 h3 h5 h1

h3 V3 V1 P3 P1 h5 h1 h6 h2

h4 V2 V4 P4 P2 h1 h5 h6 h2

h5 V3 V4 P2 P3 h2 h6 h4 h3

h6 V1 V4 P3 P4 h3 h4 h5 h1

Page 14: Reprezent ácia telies a priestorových dát

Povrchová reprezentáciaPovrchová reprezentácia Pri uvedenom spôsobe štrukturovanej plôškovej reprezentácie môžeme mať problémy s orientáciou hrán – jedna hrana patrí dvom plôškam a rozdiel je len v smere, ktorým po danej hrane prechádzame, až ten jednoznačne určuje, ktorú plôšku hrana predstavuje. Tento problém sa môže riešiť napr. uložením orientácie v tabuľke plôšok alebo pomocou tzv. polohrán. Polohrana je orientovaná časť hrany (vo väčšine prípadov polovica), ktorá prislúcha len k jednej z dvojice plôšok, ktoré s hranou susedia. Doplnková polohrana potom určuje druhú plôšku.

V1

V2

H1

H2

H5

H3

H4

P1:hrana H1

smer V1V2

P2:hrana H1

smer V2V1 V1

V2

H1

H2

H5

H3

H4

P1

P2

Page 15: Reprezent ácia telies a priestorových dát

Objemová reprezentáciaObjemová reprezentácia Pri objemovej reprezentácii ide o popísanie celého 3D priestoru, v ktorom sa zobrazovaný objekt (scéna, dáta) nachádza. Základnou jednotkou trojrozmerného priestoru v počítačovej grafike je voxel (volume element), ktorý predstavuje jeden obrazový bod 3D obrazu. Objemová reprezentácia teda uchováva informácie o každom voxeli uvažovaného 3D priestoru. Obraz (alebo jeho časti) môžu byť opäť opísané rôznymi spôsobmi:

analyticky informáciami uloženými pre každý voxel informáciami uloženými pre skupiny voxelov

F(x,y,z)=cos(x)cos(y)cos(z)

Page 16: Reprezent ácia telies a priestorových dát

Objemová reprezentáciaObjemová reprezentáciaOktálový strom (octree)

Ak chceme opísať celý objem nejakého objektu, môžeme to urobiť tak, že uložíme informáciu pre každý voxel, ktorý daný objekt zaberá. To je však pamäťovo náročné a pomalé. V objektoch sa často nachádzajú homogénne časti väčšie ako jeden voxel. Ak to tak je, môžeme to využiť tak, že budeme uchovávať informácie o celých skupinách voxelov. Oktálový strom je štruktúra, ktorú dostaneme postupným rekurzívnym delením priestoru na osem častí.

Page 17: Reprezent ácia telies a priestorových dát

ObjemovObjemová reprezentáciaá reprezentácia Príklad: Reprezentácia jednoduchého telese pomocou octreeTeleso na obrázku reprezentujeme pomocou octree tak, že budeme sledovať zaplnenosť jednotlivých častí priestoru.

1 2

45 6

7 8

Page 18: Reprezent ácia telies a priestorových dát

ObjemovObjemová reprezentáciaá reprezentácia Príklad: Octree s farbouTen istý objekt skúsime reprezentovať tak, že bude obsahovať aj informáciu o farbe jednotlivých častí.

Page 19: Reprezent ácia telies a priestorových dát

Objemová reprezentáciaObjemová reprezentáciaUloženie octree v pamäti Octree môžeme uložiť ako lineárny zoznam, v ktorom budeme mať tri typy hodnôt:

F = plná časť (full) V = prázdna časť (void) M = zmiešaná časť (mixed)

Postupujeme z horných úrovní na nižšiea každé M nahradíme jeho bližšou špecifikáciou v zátvorkách:

1. krok: M 2. krok: (FFFFMVFF) 3. krok: (FFFF(VVFMVVVV)VFF) 4. krok: (FFFF(VVF(VVFVVVFV)VVVV)VFF)

Page 20: Reprezent ácia telies a priestorových dát

Logická reprezentáciaLogická reprezentácia Pri tejto reprezentácii popisujeme objekty tak, že ukladáme spôsob, akým ich možno dostať pomocou nejakých jednoduchších objektov a základných operácií. Tieto operácie môžu byť

logické – zjednotenie, prienik, rozdiel transformačné – posun, rotácia, škálovanie... šablónovacie – posúvanie 2D obrysov pozdĺž 3D kriviek, čím vznikajú rôzne rotačné telesá, priamkové plochy a pod.

Page 21: Reprezent ácia telies a priestorových dát

Logická reprezentáciaLogická reprezentácia

1. Konštruktívna geometria telies Pri konštruktívnej geometrii telies (Constructive Solid Geometry, CSG) uvažujeme niekoľko základných telies, z ktorých potom skladáme výsledný objekt. Na to používame transformácie a logické operácie.

Základné telesá (nazývané aj CSG primitívy) sú tieto objekty: kváder guľa valec (môže byť aj nekonečná valcová plocha bez podstáv) kužeľ (všeobecne to môže byť aj zrezaný kužeľ) polpriestor – nie je to teleso, ale pre konštrukciu telies je veľmi užitočný, umožňuje napr. orezávať alebo pomocou prienikov vytvárať rôzne telesá s rovinnými hranicami. toroid (anuloid) – je to prstenec s kruhovým prierezom, v geometrii nie veľmi bežný, ale v technickej praxi veľmi užitočný (potrubia, rúrky...)

Page 22: Reprezent ácia telies a priestorových dát

Logická reprezentáciaLogická reprezentácia Príklad: Zostrojenie jednoduchého telesa pomocou CSG primitívNa toto teleso potrebujeme 4 základné telesá:

Zostrojíme CSG strom:

posun

posun, rotácia

posun, rotácia

zjednoteniezjednotenie

zjednotenie

Page 23: Reprezent ácia telies a priestorových dát

Logická reprezentáciaLogická reprezentácia2. Šablónovanie (sweeping, extrusion) Ide o proces, keď 3D objekt získavame pohybom 2D objektu pozdĺž nejakej krivky. Rozlišujeme tri typy šablónovania:

translačné šablónovanie – hýbeme sa pozdĺž úsečky rotačné šablónovanie – hýbeme sa pozdĺž kružnice obecné šablónovanie – pohybujeme sa pozdĺž ľubovoľnej krivky

Page 24: Reprezent ácia telies a priestorových dát

Logická reprezentáciaLogická reprezentácia1. Translačné šablónovanie

V tomto prípade posúvame všetky body 2D objektu v smere vektora v=(vx,vy,vz). Posúvaním jedného bodu (x,y,z) dostaneme úsečku (polpriamku, priamku). Parametrické vyjadrenie tejto úsečky je:

x’=x+tvx

y’=y+tvy

z’=z+tvzv

Page 25: Reprezent ácia telies a priestorových dát

LogickLogická reprezentáciaá reprezentáciaPriamkové plochy Ak posúvame body 2D krivky v smere jedného vektora, ako sme si to práve ukázali, výsledkom bude priamková plocha, teda plocha, kde každým bodom prechádza priamka, ktorá celá leží v danej ploche. Priamkovú plochu však môžeme dostať aj tak, že každý bod posúvame v smere iného vektora.

v1

v2 Každá priamka je potom parametricky daná takto:

x’=x+tvx(x,y,z)y’=y+tvy(x,y,z)z’=z+tvz(x,y,z)

Page 26: Reprezent ácia telies a priestorových dát

Logická reprezentáciaLogická reprezentácia2. Rotačné šablónovanie Pri tomto type šablónovania otáčame 2D objekt okolo nejakej osi. Výsledkom bude útvar, ktorého každý rez kolmý na os otáčania bude tvoriť kružnica (prípadne sústredné kružnice alebo kružnicový prstenec, alebo ich časti). Prepokladajme, že rotujeme profil okolo osi z. Nech je parameter z intervalu <0,2>. Potom bod profilu (x,y,z) otáčame takto:x’=x.cos-y.siny’=x.sin+y.cosz’=zOtočenie okolo ľubovoľnej osi dostaneme zložením posunutia a rotácie okolo dvoch z troch súradnicových osí.