3.4. Láthatóság - takarás
description
Transcript of 3.4. Láthatóság - takarás
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
09-06-03 2
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
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
09-06-03
Módszerek: . . .
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)
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!
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.)
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
16
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
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
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 )
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
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
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
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)
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.)
09-06-03
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
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”
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
29
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
31
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
33
09-06-03 34