Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

6. A 3D grafika alapjai 6.1. A 3D szerelőszalag fölépítése

Hasonló előadás


Az előadások a következő témára: "6. A 3D grafika alapjai 6.1. A 3D szerelőszalag fölépítése"— Előadás másolata:

1 6. A 3D grafika alapjai 6.1. A 3D szerelőszalag fölépítése
6.2. Térbeli alakzatok képe 6.3. Térbeli képelemek és modell-adatszerkezetek 6.4. Képelemek összeállítása, leképezés és vágás ( jórészt a 3. fejezet megfelelő részeit idézik föl.) 6.5. Láthatóság, takarás 6.6. A fénysugár-követési módszer 6.7. Árnyalás, a képpontok színe 6.8. Irodalom 6.9. Egyebek

2 Tárgytér-módszerek: Tárgytér: valódi távolságok és szögek (normál-vektor!) SzKR: szem-(kamera-)KR Nézetmező: csonkagúla Közelsík (és távolsík) Mélységvágás Oldalvágás (2D)

3 Képtér-módszerek: Projektív transzformáció után Nézetmező: téglatest
A vetítősugarak párhuzamosak Távolságok és szögek torzulása A Z-vel ||-ak összetartása De: A függőlegesség marad A Z sorrend változatlan (a nézetmezőben) A „hátranézők” képe hátranéző

4 6.5. 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 csonkagú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

5 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

6 1. A hátsó lapok ritkítása (egyelés)
A nézőponttól elforduló lapok kiszűrése, a tárgytérben kb. 50%-ot elhagy Egy laphoz vezető vetítősugár és a külső normális szöge n = PiPi-1 Pi+1Pi, (ha az órajárás szerint) v = CPi nv>0: a lap hátra néz nv<0: a lap előre néz (! A PT lap hátra!)

7 A hátsó lapok ritkítása (egyelés)
A projektív transzformáció elrontja a szögeket De a takart lapok az NPKR téglában valóban hátrafelé néznek Az újra számolt normálvektor hátrafelé néz; z összetevője nz pozitív!

8 2. Festés a távolság szerinti sorrendben
A képelemeket legkisebb z értékük szerint csökkenő sorrendbe rendezzük. A legtávolabbi képelemet festjük először, Majd előre haladva sorban A mélységben átfedő elemeket előbb föl kell darabolni

9 3. A Z-puffer eljárás Gyakran használják, hardverben is
Az NPKR téglában a vetületi kép: az 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 mindegyikben az ott látható felület-elemet és annak színét Az eredmény egy KPP-ben keletkezik

10 A Z-puffer eljárás (f) Paramétere: lapok listája az NPKR-ben, vágás után Adatszerkezet: ZP[0..xmax,0..ymax]; z értékek FP[0..xmax,0..ymax]; lapokra mutatók Kezdő értékek: ZP[i,j] = zmax, FP[i,j] = a háttér (függöny) –re mutató

11 A Z-puffer eljárás (f) foreach S in sokszögLista do foreach pixel [y,x] in S do begin {1} z := az S sokszög z értéke (y,x)-ben {2} if z < ZP[y,x] then begin FP[y,x] := az S-re mutató; {az itt látható} ZP[y,x] := z; {ilyen messze van} end {if}; end {foreach pixel}; {1} az S lap XY dobozában lévő képpontok, amelyek S-ben tényleg benne vannak {2} z interpolációja az élek mentén y-ban adott y mellett állandó lépésközzel x-ben

12 A Z-puffer eljárás (f) - gyorsítások
A lapok befoglaló XY-dobozán belüli képpontok A lapok rendezése min z szerint növekvően ha a következő lap min z-je > ZP[y,x] 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; BSP Hardverben is. (>= 4 MB tárolóval)

13 A Z-puffer eljárás (f) – „kifordítva”
foreach pixel [y,x] do foreach S in sokszögLista do begin { if min S(x,y) > ZP[x,y] then BREAK; } if pixel in S do begin z := az S sokszög z értéke (y,x)-ben {2} if z < ZP[y,x] then begin FP[y,x] := az S-re mutató; ZP[y,x] := z; end {if z}; end; {if pixel} end; {foreach S} {end foreach pixel}

14 4. Drótvázas kép, takart élek
Paraméter: lapok listája, élek listája Adatszerkezet: szakaszok listája az élek több darabra eshetnek szét Eredmény: látható szakaszok listája (kezd: NIL)

15 Drótvázas kép, takart élek (f)
foreach él E in élek do begin E -> szakaszok; {az E látható szakaszai maradnak itt} foreach lap L in lapok do begin foreach szakasz S in szakaszok do if S nem éle az L –nek then if L és S dobozában átfedés then begin {1} S metszéspontjai L határaival XY-ban {2} if metszés van then begin {3} mélység (z) ellenőrzése; S földarabolása és helyettesítése a szakaszok-ban; end; {metszés van} end; {L takarhatja S-et} end; {foreach lapok} láthatók := láthatók + szakaszok; {lista beolvasztása} end; {foreach élek}

16 Drótvázas kép, takart élek (f)
Az E él rákerül a szakaszok listára és itt darabolják a többi lapok {1} A takarást XY vetületben. S és L doboza átfedi-e egymást {2} Két szakasz metszéspontja: X=A+t*(B-A) és 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-et helyettesítjük a látható darabjaival És nézzük, hogy a többi lap mit csinál a szakaszokkal

17 5. Kétváltozós függvények képének láthatósága
Párhuzamos vetítés „Kartonok” Festés hátulról előre

18 Kétváltozós függvények képének láthatósága (f)
Torz négyszögháló Átlókkal háromszögek 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.)

19 6. BSP Folyt.köv.


Letölteni ppt "6. A 3D grafika alapjai 6.1. A 3D szerelőszalag fölépítése"

Hasonló előadás


Google Hirdetések