Upload
whitley
View
24
Download
0
Embed Size (px)
DESCRIPTION
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. A szerelőszalag műveletei. 0. Geometriai modell 1. „E lő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. - PowerPoint PPT Presentation
Citation preview
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
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 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.)
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 )
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
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)
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 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
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); 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
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.)
09-06-03
27
Lapok elrendezése mélységben
• A lapok rendezésezmin 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
30
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
32
33
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
34
09-06-03 35