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
ReprezentReprezentácia telies a ácia telies a priestorových dátpriestorový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ď.)
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)
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.
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.
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.
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)
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).
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...)
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
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
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ď.
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
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
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)
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í.
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
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í.
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)
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.
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...)
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
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
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
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)
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í.