Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaGéza Dobos Megváltozta több, mint 10 éve
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
6.1.Bevezetés: a 3D grafikus szerelőszalag fölépítése
AP, GM, GRASZ (pl. OpenGL) Szerelőszalag: alapműveletek sorozata - Képelemek összeállítása: - Leképezés a VKR-ből a KKR-be,. - Vágás: a kívül eső képrészek elhagyása. - Láthatóság-takarás. - Árnyalás és textúra. - Utókezelés: különböző módszerek az elkészült kép minőségének javítására. KR: VKR, SKR, TKR, SZKR, NPKR, KKR Gyorsítás: dobozolás, térfelosztás, rendezés, koherencia
3
6.2. Térbeli alakzatok képe
Térbeli látás: tanult, két szemmel Fénykép, TV: „egy szemmel” – ezt is megtanultuk A térbeliség mozzanatai (depth-cues) - testek takarása - megvilágítás - árnyékok, a fény visszaverődése - a méretek látszólagos távolsági csökkenése - párhuzamosok látszólagos távolsági összetartása - levegő perspektíva: színeltolódás, kontúrok elmosódása - megszokott jelek (féknyomok az úton) - kinetikus mélységhatás: a távolabbi lassabban mozog Ezeket utánozzuk; mennél jobban, annál drágábban
4
Emberi látás és a képernyő
Látómezőnk: 120x100 fok, ovális Képernyőnk (50 cm-re): 40x30 fok tájkép: egy szűk ablakon át nézünk a világra A szem fölbontása: 1 szögperc A képernyő raszter-távolsága: 0,25 mm, 2 szögperc
5
6.3. Színterek geometrikus kódolása
Leírónyelv (eseti teszt-leírás, vagy pl. VRML) teszt-adatok, archiválás, adatcsere Adatszerkezet (eseti, vagy GMR) dinamikus építés dinamikus elhalás Poligon: különböző méretű cellák poligon: n, Pi, n, ni, doboz, P,Q,R, … GRASZ-hívások sorozata (pl. OpenGL)
6
A képet meghatározó adatok
A testek geometriája és a felületek anyaga (színe) Nézet (kamera) Megvilágítás (fényforrások) Időbeli változások
7
Térbeli „képelemek” 2 helyett 3 koordináta háromszög-sáv négyszögháló
8
A szerelőszalag fölépítése és műveletei
· Alkalmazási Program, Geometriai Model GRAfikus alapSZoftver: rajzolás alapműveletek sorozata: szerelőszalag képelemek előkészítése a VKR-ben · leképezés a tárgytérből a képtérbe, · képkivágás; a képkereten kívüli képrészek elhagyása · láthatóság-takarás: takart elemek elhagyása (3D) · raszter-konverzió: a képpontok színe (képpont-puffer)
10
A szerelőszalag műveletei
1. Képelemek előkészítése geometriai elemből képelem(ek), elhelyezés a VKR-ben 2. Leképezés a VKR-ből a KKR-be Képkivágás a kereten kívüli részek elhagyása 4. Láthatóság-takarás a takart elemek elhagyása (főleg 3D-ben) 5. Raszter-konverzió az elemet szemléltető képpontok előállítása, a képpontok színe, a képpont a KPP-be
11
6.4. Szesza 1: Képelemek összeállítása
SKR -> VKR - hasonlósági transzformáció: TSR - összetett tárgyak hierarchiája Geometriai elemekből képelemek
12
A képelemek előkészítése
Rajzoláskor: az AP bejárja a geometriai modellt, kiválasztja az elemeket, és átadja a GRASZ-nak. A GRASZ egyenként átveszi az elemeket és ráteszi a szerelőszalagra A sze.-sza. első művelete: a képelemek előkészítése geometriai elem helyett képelem(ek) és a képelemek elhelyezése: SKR -> VKR (eltolás, forgatás, léptékezés)
13
K: kereszt alak, saját SKR-jében
H: háromszög alakú luk, saját SKR-jében K: kereszt alak, saját SKR-jében K’: lukas kereszt SKR-jében: K’=K+SiNiH S: sáv széleivel (V) és lukas keresztekkel: S = V + Sj MjK’ = V + Sj Mj( K + Si NiH ) Mj és Ni: transzformációk.
14
A szerelőszalag műveletei
1. Képelemek előkészítése 2. Leképezés 3. Képkivágás 4. Láthatóság-takarás 5. Raszter-konverzió
15
6.4. Szesza 2: Leképezés Középpontos- vagy párhuzamos vetítés
Elvileg: VKR -> KKR Gyakran: VKR -> NPKR NPKR-ben láthatóság-takarás A fénysugár-követésnél: a képernyő rasztert vetítjük a SZKR-be és ott számolunk.
16
Leképezés a tárgytérből a képtérbe
A tárgyak leképezése a tárgytérből a képtérbe Koordináta-transzformáció A pontok helyvektorának szorzása a leképezés mátrixával: P’ = M ·P
17
2D Leképezés: Nézetmező (keret), tárgytér: GsetWCSFrame(Kba,Kjf:Gpoint2); Képmező, képtér GsetSCSViewPort(Mba,Mjf:Gpixel); Leképezés: GmapWCStoSCS(P:Gpoint2; P1:Gpixel);
18
3D Leképezés: Párhuzamos, vagy középpontos vetítés VKR->KKR3
Nézetmező: csonkagúla 3D képmező: téglatest Kép: síkvetület a téglatest alapjára Előtte: takarások (láthatóság) a téglatestben (5-6. Fejezet)
19
A szerelőszalag műveletei
1. Képelemek előkészítése 2. Leképezés 3. Képkivágás 4. Láthatóság-takarás 5. Raszter-konverzió
20
6.4. Szesza 3: Vágás Nézetmező: csonkagúla: Cyrus-Beck-3D
NPKR téglatest: Cohen-Sutherland-3D Mélységvágás: Közelsík és távolsík Oldalvágás: x-y-ban; síkbeli feladat
21
Képkivágás A kép keretén kívül eső képrészek elhagyása.
Vágó-tartomány (mire, mivel vágunk?): téglalap (téglatest), vagy félsík (féltér) A vágott elemek (mit vágunk?): minden képelem típusra más-más vágó eljárás! Legtöbbször a képtérben, de lehet a tárgytérben is.
22
Normálvektoros szakasz vágás a síkban (a Cyrus-Beck eljárás)
Adott: a PQ szakasz és egy félsík h határegyenese; R pontjával és n normálisával. Keressük a PQ szakasznak a félsíkba eső részét (PM)
23
sg(P) = n(P-R) (előjel!)
Észrevétel: sg(P) > 0, ha P a félsíkban = 0, ha P a határon < 0, ha P kívül van. Ha sg(P) és sg(Q) >= 0: mindkettő belül, a szakasz „triviálisan látható” Ha sg(P) és sg(Q) < 0: mindkettő kívül, a szakasz „triviálisan eldobható” Különben: „vágni kell”: M = a h és PQ metszéspontja
24
Az M pont kiszámítása: Az M pont rajta van a határon: (M-R)n = 0, azaz: (mx - rx)nx + (my - ry)ny = 0 Az M rajta van a PQ szakaszon: M = P + t (Q - P), valamilyen t paraméterrel, azaz: mx = px + t (qx – px) és my = py + t (qy – py);. Három egyenlet, három ismeretlen: t, mx, my; megoldás mindig van (ha nem „triviális” a helyzet)
25
Megjegyzések: Tetszőleges konvex n-szögre: mindegyik határra, egymásután. Tengelyállású téglalapra: 4x a P és Q sarok kétszer-kétszer, az n vektor: (0,1), illetve (1,0) A térben: szakasz vágása féltérre; (M-R)n = 0 skalár-egyenlet és M = P + t (P – Q) három skalár-egyenletet ad. A térben is: téglatestre és tetszőleges konvex sokszöglapra (poliéderre) alkalmazható.
26
Cohen-Sutherland szakasz-vágás a síkban
Adott: a PQ szakasz és Egy téglalap b, a, j, f (bal-alul-jobb-felül) határaival Keressük a PQ szakasz téglalapba eső részét.
27
A végpontok BAJF-kódja:
BAJF(P)=1000, ha balra kívül, van , ha alul és jobbra kinn , ha belül van. Belül BAJF(P)=0 a sarkokban 2 bit 1-es, másutt 1 bit 1-es. BAJF(P) : négy összehasonlítás „Triviális vizsgálatok”: ha BAJF(P)=0 és BAJF(Q)=0: „triviálisan belül” ha BAJF(P) & BAJF(Q) 0 : „triviálisan eldobható” Különben „vágni” kell
28
Térbeli elemek vágása Normálvektoros vágás: féltér, téglatest, konvex soklap (poliéder) például: a nézetmező csonkagúlája (6. Fejezet) Cohen-Sutherland: téglatest, 27 mező, BAJFEH-kód Mélység-vágás: a Z tengelyre merőleges „közelsík” és „távolsík” Oldal-vágás: XY irányban; síkbeli vetületben
29
6.5.- … a Szesza folytatása Láthatóság-takarás; a képpontokban látható felület-elemek Árnyalás és textúra; a képpontok színe. Utókezelés: az elkészült kép minőségének javítására.
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.