Upload
livi
View
37
Download
0
Embed Size (px)
DESCRIPTION
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 (6.1-6.4 jórészt a 3. fejezet megfelelő részeit idézik föl.) 6.5. Láthatóság, takarás - PowerPoint PPT Presentation
Citation preview
6. A 3D grafika alapjai6.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
(6.1-6.4 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
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
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
Emberi látás és a képernyő
• Látómezőnk: 120x100 fok, ovális
• Képernyőnk (50 cm-re): 40x30 foktá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
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ésdinamikus elhalásPoligon: különböző méretű cellákpoligon: n, Pi, n, ni, doboz, P,Q,R, …
• GRASZ-hívások sorozata (pl. OpenGL)
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
Térbeli „képelemek”
• 2 helyett 3 koordináta
• háromszög-sáv
• négyszögháló
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)
A szerelőszalag műveletei
1. Képelemek előkészítése geometriai elemből képelem(ek), elhelyezés a VKR-ben2. Leképezés a VKR-ből a KKR-be 3. Képkivágás a kereten kívüli részek elhagyása4. 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
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
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)
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+iNiH
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.
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ó
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.
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’ = MM ·P
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);
3D Leképezés:
• Párhuzamos, vagykö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)
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ó
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
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.
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 afélsíkba eső részét (PM)
• 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
• 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) ésmy = py + t (qy – py);.
• Három egyenlet, három ismeretlen: t, mx, my;megoldás mindig van (ha nem „triviális” a helyzet)
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 ésM = 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ó.
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.
• A végpontok BAJF-kódja:• BAJF(P)=1000, ha balra kívül, van
0110, ha alul és jobbra kinn 0000, ha belül van.
• Belül BAJF(P)=0a 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
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
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.