29
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 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. A 3D grafika alapjai

  • 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

Page 1: 6. A 3D grafika alapjai

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

Page 2: 6. A 3D grafika alapjai

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

Page 3: 6. A 3D grafika alapjai

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

Page 4: 6. A 3D grafika alapjai

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

Page 5: 6. A 3D grafika alapjai

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)

Page 6: 6. A 3D grafika alapjai

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

Page 7: 6. A 3D grafika alapjai

Térbeli „képelemek”

• 2 helyett 3 koordináta

• háromszög-sáv

• négyszögháló

Page 8: 6. A 3D grafika alapjai

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)

Page 9: 6. A 3D grafika alapjai
Page 10: 6. A 3D grafika alapjai

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

Page 11: 6. A 3D grafika alapjai

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

Page 12: 6. A 3D grafika alapjai

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)

Page 13: 6. A 3D grafika alapjai

  

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.

Page 14: 6. A 3D grafika alapjai

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ó

Page 15: 6. A 3D grafika alapjai

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.

Page 16: 6. A 3D grafika alapjai

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

Page 17: 6. A 3D grafika alapjai

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);

Page 18: 6. A 3D grafika alapjai

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)

Page 19: 6. A 3D grafika alapjai

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ó

Page 20: 6. A 3D grafika alapjai

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

Page 21: 6. A 3D grafika alapjai

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.

Page 22: 6. A 3D grafika alapjai

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)

Page 23: 6. A 3D grafika alapjai

• 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

Page 24: 6. A 3D grafika alapjai

• 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)

Page 25: 6. A 3D grafika alapjai

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ó.

Page 26: 6. A 3D grafika alapjai

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.

Page 27: 6. A 3D grafika alapjai

• 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

Page 28: 6. A 3D grafika alapjai

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

Page 29: 6. A 3D grafika alapjai

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.