200 likes | 347 Views
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
E N D
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 és megvilágítás: a képpontok színe 6.8. Irodalom 6.9. Egyebek
6.7. Árnyalás és megvilágítás: a képpontok színe • Adatszerkezet: színtér: testek listája, test: lapok (felület-elemek) listája lap: csúcspontok, normális, sík-egyenlet, felületi jellemzők (szín, textúra), doboz, rendezés, térfelosztás • Z-puffer, vagy FSK után ismert:foreach{u,v} képpontban: az ott látott lap (mutató),{x,y,z} pontja (a tárgytérben) • Az árnyalás feladata: szín(u,v) = {r,g,b}
Árnyalás - megvilágítás • Színezés: a legegyszerűbb esetben minden lapot a tárolt {r,g,b}szín-adatai szerint festünk be • Árnyalás (shading): színárnyalatos kép (nem: árnyékolás = shadowing) a felületi pontokat megvilágításuk és tárolt fényvisszaverési tényezői szerint festjük be • Megvilágítási modell (illumination model): a fény fizikai tulajdonságainak matematikai modellje; erős közelítések.
A fény fizikája • A fény elektromágneses hullám (útján terjedő energia) • Látható fény: 380 l 760 nm (n = 1/l)l760nm : infravörös, l 380 nm: ultraibolya • (A fény kettős természete: egyes jelenségekben részecske természetű; fotonok) • A legtöbb fény: keverék-fény;spektrum: a fény energiájának eloszlása l szerint • A látható színek érzete (majdnem minden színé) előállítható három alapszín keverékével; pl. {r,g,b} vagy {c,m,y} • Modellünk közelítése:a fényt három összetevő erősségével adjuk meg,és ezek hatását egymástól függetlennek tételezzük föl.
Fényforrások • Egy fényforrás erőssége:(a) az időegység alatt kisugárzott energia, irányfüggő(b) adott irányban: az időegység alatt, egységnyi térszögben kisugárzott energia • Modellünkben:minden irányban egyforma,az L pontszerű ff megadása: helye vagy iránya a térben, IL = {rL,gL,bL}; a három összetevő erőssége • Alakos fényforrások (pl. fénycső): feldarabolás véges részekre, minden rész közepén pontszerű ff.
Egy felület megvilágítása • A felület (egy pontjában a) megvilágítás erőssége: az időegység alatt, egységnyi felületre eső energia • Egy pontban az L ff -ból nyert megvilágítás:IfL = ILcos f = IL(N0L0) • A pontban látható fény eredete: fény kibocsátás (emisszió) fény visszaverés (reflexió) fény áteresztés (transzmisszió) (és fény elnyelés) • A fénytörés (Snelius-Descartes) törvénye: sin a / sin b = n1/n2 ritkább közegből sűrűbbe: b< a
A fény visszaverődése • Az ideális fényvisszaverődés törvénye: - „beesési szög = visszaverődési szög”:(N0L0) = (N0S0) - N0, L0, S0 egy síkban vannak • A „tökéletes tükör” • Beeső energia = visszavert energia + elnyelt energia: IvL = kvIfL ; kv< 1; • A felület kv visszaverési tényezőjel–tól függ. Modellünkben: kv = {kvr, kvg, kvb} és IvL = {rvL,gvL,bvL} = kvIfL = {kvrrL, kvggL , kvbbL}
Megvilágítási modellek • Lokális megvilágítási modell: egy-egy felületi pontban a többitől függetlenül vizsgáljuk a fény visszaverődését • Globális megvilágítási modell: egy zárt térrészben vizsgáljuk a fényjelenségeket • Az utóbbi „drága” (l. pl. Szirmay-Kalos könyve) • Mi csak lokális megvilágítási modellel …
Egy lokális megvilágítási modell • A felületek „nem tökéletesek” • Modellünkben egy képpont színe: a térből egy képponton át a szemünkbe jutó fény: C(u,v) = S CL + Car + S CLrS CL : a fényforrások közvetlenül látott fénye, + Car : egy térben elosztott (ambiems) fény visszaverődése + S CLr : a fényforrások fényének visszaverődése • Egy felület jellemző adatai: ka = {kar, kag, kab} ambiens visszaverési tényező, kd = {kdr, kdg, kdb} szórt visszaverési tényező, ks és n: tükrös visszaverési tényező és kitevő kt = {ktr,ktg,ktb} és nl fény áteresztési tényező és törésmutató
A térben elosztott fény visszaverődése • Elosztott (körülvevő, szórt, ambiens) fény • (ambiens = körülvevő) • Ködös napon látható fényforrás nélkül is látunk • Feltételezés: minden irányban egyenlő erősségű minden irányban egyformán verődik vissza (a szembe is) • Visszaverődésének modellje:Car = kaIa = {kar ra, kag ga, kab ba} • Szerepe: a fényforrások számolt fényvisszaverődésének korrekciója • Nélküle: „villanófényes fénykép” • Csak vele: a térérzet hiánya
A fényforrások fényének visszaverődése • Nincs „tökéletes felület” • Modellünkben: minden felületre kétféle fényvisszaverést számolunk: a fényforrások fényének szórt (diffúz) visszaverése, éstükrös (spekuláris) visszaverése (a kettő együtt < mint a beeső fény)
Szórt (diffúz) fény-visszaverés • A tökéletesen „matt” felület a beeső fényt minden irányban egyformán veri vissza a felület szórt visszaverési tényezője kd = {kdr,kdg,kdb} CdL(u,v) = kdILf == kd ILcos a = = kdIL(N0L0) == { kdrrL(N0L0), kdggL(N0L0), kdbbL(N0L0) }
Tükrös (specular) fény-visszverődés • Az L irányból jövő fény legerősebben az S irányban verődik vissza,ettől eltérő irányokban fokozatosan csökken. • A felület tükrös visszaverési tényezője ks = {ksr, ksg, ksb} • Az irányfüggő visszaverést cosn(b)-val modellezve;(b az S és E, a szem irányának szöge) • CsL = ksILfcosn(b) = = ksIL(N0L0)(E0S0)= {ksrrL(N0L0)(E0S0),ksrgL(N0L0)(E0S0),ksrbL(N0L0)(E0S0) }
Összefoglalva • Lokális megvilágítási modellünkben (egyszerűsítések!)a képernyő egy pontjában látott fény (szín):C(u,v) = = Ca(u,v) + SL[ CdL(u,v) +CsL(u,v) ] = = kaIa + SL[ kd IL cos(a) + ks IL cos(a)cosn(b) ] = = kaIa + SL[ IL (N0L0) ( kd + ks cosn(E0S0) ) ] = = {karIar + SL[ ILr(N0L0) ( kdr + ksr cosn(E0S0) ) ],kagIag+ SL[ ILg(N0L0) ( kdg+ ksg cosn(E0S0) ) ],kabIab+ SL[ ILb(N0L0) ( kdb+ ksb cosn(E0S0) ) ]}
Gyorsítások • A színt minden képpontban meg kell határozni! • Ha a fényforrás a végtelenben van (Nap), akkor iránya L, és egy síklapon belül (N0L0) állandó • Jámbor csalás: a nézőpont is a végtelenben; E0 is állandó • Jámbor csalás: L és E megegyeznek („orvosi fejtükör”) • cos b = E0S0 helyett = N0.H0; H=(L+E)/2 irányú egységvektor • A csúcspontokban számított értékek interpolációja(folyt)
Interpoláció síklapokon • Görbült felület közelítése sokszögekkel • Számított Ni vektor minden csúcsbana lapok normálisának súlyozott átlaga • Gouraud- interpoláció:a csúcsokban számolt színinterpolációja az éleken,és a pásztákon • Phong-interpoláció (lassabb, de szebb):az N vektor interpolációja az élekenés a pásztákon,a szín kiszámítása minden képpontban.
Gouraud- árnyalás: a szín interpolációja • Ismert C(x,y,z) az A,B,C csúcsokban • Lineáris interpoláció az AB és AC élek mentén:Dfy = [ f(B) - f(A) ] / nf(Pi) = f(A) + i Dfy = f(Pi-1) + Dfy • Lineáris interpoláció egy pásztán:Dfx = [ f(Pj) - f(Pi) ] / mf(Pk) = f(A) + k Dfx = f(Pk-1) + Dfx • Gouraud árnyalás: {r,g,b} interpolációja
Phong-árnyalás: N interpolációja • Phong árnyalás:{nx,ny,nz} interpolációjaés színszámítás minden képpontban!
Az élek simítása • Felületek közelítése sokszöglapokkal • Az éleknél színugrás;látszanak a lapok! • Simítás:minden pásztánkvadratikus interpoláció két-két szomszédos lapon keresztül. • Lineáris geometriai modell,kvadratikus színezés! (Azért ez csalás.)
Finomítások… • Továbbiak: levegő perspektíva alakos fényforrások globális megvilágítási modell stb.