Download - 3.4. Láthatóság - takarás
![Page 1: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/1.jpg)
1
3.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
![Page 2: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/2.jpg)
09-06-03 2
![Page 3: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/3.jpg)
3
A szerelőszalag műveletei
0. Geometriai modell
1. „Előkészítés”
2. Leképezés:
3. Képkivágás:
4. Láthatóság-takarás
5. Raszter-konverzió
6. Utókezelés
![Page 4: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/4.jpg)
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
![Page 5: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/5.jpg)
5
Láthatóság – takarás (3D)
Mi van takarásban, mi látszik?
![Page 6: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/6.jpg)
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
![Page 7: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/7.jpg)
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)
![Page 8: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/8.jpg)
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ő
![Page 9: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/9.jpg)
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
![Page 10: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/10.jpg)
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
![Page 11: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/11.jpg)
09-06-03
Módszerek: . . .
![Page 12: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/12.jpg)
12
1. A hátsó lapok ritkítá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
• ! A PT lap hátranéz !
• Pi -1 Pi Pi+1 külső normálisa:
n = Pi-1Pi Pi+1Pi (CCLW)
![Page 13: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/13.jpg)
13
A hátsó lapok ritkí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!
![Page 14: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/14.jpg)
14
2. A „festők 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.)
![Page 15: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/15.jpg)
09-06-03
3. A Z-puffer eljárás
Gyakran használják, hardverben is
Az NPKR téglábana 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ábanaz ott látható felület-elemet (és annak színét).
Az eredmény egy pufferban keletkezik 15
![Page 16: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/16.jpg)
16
![Page 17: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/17.jpg)
09-06-03
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
![Page 18: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/18.jpg)
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) // 2if 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
![Page 19: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/19.jpg)
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őenha 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 )
![Page 20: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/20.jpg)
09-06-03
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)
20
![Page 21: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/21.jpg)
21
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 szakasztaz L lap
eltakarhatja, földarabolhatjas 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
![Page 22: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/22.jpg)
22
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); 0 ≤ 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
![Page 23: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/23.jpg)
23
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)
![Page 24: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/24.jpg)
24
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.)
![Page 25: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/25.jpg)
09-06-03
![Page 26: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/26.jpg)
26
Lapok elrendezése mélységben
• A lapok rendezésezmin szerint
• Ha ZP[p] < zmin akkora 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
![Page 27: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/27.jpg)
27
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”
![Page 28: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/28.jpg)
28
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
![Page 29: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/29.jpg)
29
![Page 30: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/30.jpg)
30
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
![Page 31: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/31.jpg)
31
![Page 32: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/32.jpg)
32
BSP-fa
• Binary sub-partition
• A felület-halmazhozigazí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 sorrendminden nézetirányban
![Page 33: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/33.jpg)
33
![Page 34: 3.4. Láthatóság - takarás](https://reader034.vdocuments.mx/reader034/viewer/2022052603/56813792550346895d9f35a7/html5/thumbnails/34.jpg)
09-06-03 34