Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaRóbert Szalai Megváltozta több, mint 10 éve
1
4.4. Láthatóság - takarás A látványban takart részek elhagyása vagy a látható részek kiválasztása
2
2
3
A szerelőszalag műveletei
0. Geometriai modell 1. „Előkészítés” 2. Leképezés: Képkivágás: 4. Láthatóság-takarás 5. Raszter-konverzió 6. Utókezelés
4
2D: a kép rétegei Képelemek elrendezése rétegekben
a rétegek sorrendje – mélység, prioritás Fedés vagy átlátszóság Térképek: hegyek és alföldek, folyók, városok, stb Animációs filmek: változatlan háttér előtt változó alakok
5
Láthatóság – takarás (3D)
Mi van takarásban, mi látszik?
6
3D: Láthatóság-takarás
HLHSR: Hidden Line – Hidden Surface Árnyalt képek: minden képpontban a látható felületelem kiválasztása Vonalas (drótváz-) ábrák: takart vonalrészek eltávolítása Időben, és tárolóban drága: kölcsönös takarások
7
Tárgytér-módszerek: Tárgytér: valódi távolságok és szögek ( normál-vektor! ) SzKR (kamera) Nézetmező: csonkagúla Közel-sík – távol-sík: mélységvágás Oldalvágás (2D)
8
Képtér-módszerek: A projektív transzformáció után: a nézetmező: téglatest a vetítő sugarak párhuzamosak távolságok és szögek torzulása de marad: a függőleges síkok állása a Z szerinti sorrend (a közel-sík előtt) a „hátranézők” képe hátranéző
9
Láthatóság, takarás A vetítés irányából nézve látható / takart elemek
Drótváz: takart vonalak, vonal darabok eltávolítása Árnyalt kép: egy képpontban látható felület-elem A tárgytér csonka-gúlájában, vagy Az NPKR téglában Időben, és / vagy tárolóban drága: minden lap takarhat minden (más) lapot
10
Helyzetelemzés Több darabra széteshet, akár többször is
Három sokszög kölcsönösen takarhatja egymást Két konkáv sokszög kölcsönösen takarhatja egymást
11
Módszerek: . . .
12
1. A hátsó lapok eldobása (egyelés)
A nézőtől elforduló lapok kiszűrése; kb. 50% v = CQ vetítősugár és az nQ külső normális szöge: v nQ < 0 : a PQ lap előre néz u = CS vetítősugár és az nS külső normális szöge: u nS > 0: az SR lap hátra néz ! Figyelem: a PT lap hátranéz ! Pi -1 Pi Pi+1 külső normálisa: n = Pi-1Pi Pi+1Pi (CCLW)
13
A hátsó lapok eltávolítása (egyelés)
A projektív transzformáció elrontja a szögeket; de SZKR NPKR a függőleges síkokat így hagyja ! Az előre-, hátranéző lapok az NPKR téglában is ilyenek! Egy normálvektor hátranéz, ha nz pozitív!
14
2. A „festő algoritmusa” A képelemeket z szerint csökkenő sorrendbe rendezzük. Először a legtávolabbi képelemet festjük Majd előre haladva sorban A mélységben átfedő elemeket előbb föl kell darabolni (Részletek az irodalomban.)
15
3. A Z-puffer eljárás Gyakran használják, hardverben is Az NPKR téglában a vetületi kép: XY vetület, a vetítősugarak képe párhuzamos, távolság: növekvő Z Az XY keretben kijelöljük a képpontokat Keressük az XY sík minden P = (x, y) képpontjában az ott látható felület-elemet (és annak színét). Az eredmény egy pufferban keletkezik 15 15
17
A Z-puffer eljárás Paramétere: LL, a lapok listája az NPKR-ben, vágás után Minden képpontra: p = { x, y }, 0 ≤ x ≤ xmax, 0 ≤ y ≤ ymax Adatszerkezet: FP[ p ]: a p-ben látható sokszög (ptr) ZP[ p ]: ennek távolsága Kezdeti értékek: ZP[ p ] = zmax (a tégla hátlapja) FP[ p ] = a háttér (függöny) 17 17
18
A Z-puffer eljárás (f) foreach lap in LapLista do foreach p in lap-vetülete do begin // 1 z := lap-síkja (p-ben) // 2 if z < ZP[ p ] then begin // ez közelebb van! FP[ p ] := a lap-ra mutató; // az itt látható ZP[ p ] := z; // ilyen messze end {if}; end {foreach p és foreach lap}; {1}: a lap XY vetületében ? Előbb: az XY-dobozában? és ha igen: a lap-ban (a sokszögben) ? {2} z interpolációja az élek mentén y szerint adott y mellett x szerint (x = c) 18 18
19
A Z-puffer eljárás (f) - gyorsítások
Soká tart! – gyorsítások kellenek A lapok befoglaló XY-dobozán belüli képpontok A lapok rendezése zmin szerint növekvően ha a következő lap zmin -je > ZP[ p ] akkor nem kell folytatni !!! Mozgó testek, vagy mozgó kamera: újra rendezni De statikus háttérnek lehet külön ZP-je. Térfelosztás; Nyolcas-fa, kd-fa, BSP-fa Hardverben is. ( ≥ 4 MB tárolóval )
20
A Z-puffer eljárás (f) – „kifordítva?”-olv
minden p do // minden képpontra begin minden lap a Lapok Listáján do begin ZP[p] := a legközelebbi lap z-je end; // minden lap end // minden képpontra
21
4. Drótvázas kép, takart élek
Paraméter: lapok listája, élek listája Adatszerkezet: „szakaszok” listája: az élek több szakaszra eshetnek szét Eredmény: látható szakaszok listája (kezd: NIL) 21 21
22
Drótvázas kép, takart élek (olv)
foreach él E do begin // az élek-listáján E látható-szakaszok; // az E látható szakaszai foreach lap L do begin // a lapok-listáján foreach szakasz S in látható-szakaszok do az S szakaszt az L lap eltakarhatja, földarabolhatja s ha igen: S helyettesítése látható-szakasz-okra end // foreach szakaszok end; // foreach L lap láthatók := láthatók + látható-szakaszok; // lista beolvasztása end; // foreach E él
23
Drótvázas kép, takart élek (olv)
Az E él rákerül a szakaszok listára és itt darabolhatja a többi lap A takarás: XY vetületben. S és L doboza átfedi-e egymást Két szakasz metszéspontja: X = A + t · (B - A) X = C + s · (D - C); ≤ s, t ≤ 1 ? {3} z dönti el, hogy melyik van előbbre konvex lap egy szakaszból 0,1,2 látható darabot hagy És nézzük, hogy a többi lap mit csinál a szakaszokkal
24
5. Kétváltozós függvény képének láthatósága
Párhuzamos vetítés „Kartonok” Festés hátulról előre; (a festők algoritmusa)
25
Kétváltozós függvény képének láthatósága
Torz négyszögháló Átlókkal háromszögekre Két karton között: háromszög-sáv Festés sávonként; hátulról előre (Folytonos árnyalás; később.)
27
Lapok elrendezése mélységben
A lapok rendezése zmin szerint Ha ZP[p] < zmin akkor a többi lap már nem kell átlag 10 –szeres gyorsítás Előtér-háttér; ha csak az előtér változik
28
Térfelosztási módszerek
A lapok rendezése (zmin szerint) átlagosan 10 –szeres gyorsítás De a színtér változása elrontja a rendezést! (színtér: lapok és a kamera helyzete, állása) A lapok elrendezése adatszerkezetbe amely a színtér változásakor megmarad és bejárása a láthatóságot (vagy mást) gyorsítja Előtér-háttér, nyolcasfa, kd-fa, BSP-fa „Átjárók”
29
Nyolcas-fa (oct-tree)
A színtér egyenletes felosztása Felező síkok: x-y-z – x-y-z Minden „tégla” 8 ágra Az ágvégekben: csak egy lap (része) Az egyértelműt nem kell tovább felezni Vagy csak véges számú felosztás Bejárás egyeneseken: rendezett bejárás, szomszédos cellákon át
31
Kd-fa k-dimenziós felosztás (k-1 dim hiper)-síkokkal
A színtér elemeihez igazodva „Kiegyensúlyozottság” egyenletes eloszlás a bejárás érdekében
33
BSP-fa Binary sub-partition A felület-halmazhoz igazítva
Az osztósíkok: felületi síkok Nagy adatszerkezet; a fölépítés ideje ! Gyors bejárás: Láthatósági sorrend minden nézetirányban
35
35
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.