Content extract
A számítógépes grafika elméleti alapjai 1 A számítógépes grafika elméleti alapjai 3 D Grafika 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 2 Az emberi látás Az ember számára a fény az elektromágneses sugárzás azon része, melyet a szem érzékelni képes és amelynek hatására agyában képérzet alakul ki. Biológiai alapok: Az emberi szemben kb. 126 millió fényérzékelő receptor található, amelyek az elektromágneses sugárzást felfogva a keletkezett ingerületet az idegrendszer útján ( a szemben kb. 1 millió idegszál található ) az agyba továbbítják. A retinában elhelyezkedő receptorok ún csapok ( kb 6 millió ) és pálcikák ( kb. 120 millió ) lehetnek A
pálcikák ( rodes ) a fényerősséget és a világosságot érzékelik, a csapok ( cones ) viszont az ember színlátásában játszanak fontos szerepet. Az ember a fényt a 380 nm-es ultraibolya és a 780 nm-es infravörös hullámhossz tartományában képes érzékelni. Ezen belül a színeket a szemben található P típusú ( vörös fényre érzékeny ) D típusú ( zöld fényre érzékeny ) T típusú ( kék fényre érzékeny ) színérzékelő csapok különböző erősségű ingerlése alapján látjuk. Színérzékelésünket a P, D, T csapok együttes , "vegyes" ingerületi állapota határozza meg. A csapok ingerületi állapotának eredője eredményez egy színárnyalatot. Az emberi szem kb. 200 színárnyalat eltérését képes megkülönböztetni Ez nem független a hullámhossztól, szemünk a legnagyobb érzékenységet az 555 nm környékén ( zöld szín közelében ) mutatja és ez jelentősen csökken , ahogy a látható színtartomány szélei
felé haladunk. Amennyiben a látható spektrumban egyenletesen sugároz egy fényforrás, akkor a P, D, T csapok ingerületi állapota azonos lesz. Az eredmény a fehér színérzet A fényerősség ill. világosság érzését a szemünkbe érkező fényenergia mennyisége határozza meg. Az emberi szem a nagyon kis teljesítményű, 10-6 lumen alatti fényt nem érzékeli, a 104 lumen feletti teljesítményű fény pedig elvakít minket. A világosságban szemünk kb 50 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 3 fokozatot képes megkülönböztetni. A színes képek érzékelését a szín telitettsége is befolyásolja. A színtelitettség a szín fehér színnel való felhígítottságának ,
fátyolosságának mértéke. Ha a vörös fény telitettségét csökkentjük, fokozatosan rózsaszint kapunk. Szemünk egy konkrét színezeten belül kb 20 telítettségi fokozatot tud megkülönböztetni. Összefoglalva: az ember színlátásában az alábbi összetevők játszanak szerepet: színárnyalat vagy színezet ( hue ) színtelitettség ( saturation ) fényerősség ( brightness ) 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 4 Kontúrlátás, térlátás és mozgókép érzékelés A szem felbontó képességének határa a kísérletek szerint 0,4 mm, így ahhoz, hogy két pontot meg tudjunk különböztetni, legalább ekkora távolságra kell legyenek egymástól. A monitorok és a nyomtatók
felbontóképességénél van ennek nagy jelentősége. Vizuális emlékezetünk jórészt a kontúrlátáson alapul., azaz egy tárgy felismerésében annak körvonalaira, főbb vonalaira támaszkodunk. Képesek vagyunk a képből annak lényegét alkotó részeit kiemelni és azt elraktározni. Gondoljunk a karikatúrákra és nekik megfelelő fotók alapvető különbségére. Hogy mennyire kontúrlátásunk rabjai vagyunk, itt egy példa: A feladat, hogy meghatározzuk az oldalnézetet ( a nehézség, hogy agyunk a kocka alakját őrzi ) Ha különböző távolságokban lévő tárgyakat nézünk, ehhez szemünk a szemlencse fókusztávolságának módosításával automatikusan alkalmazkodik. A pupilla nyílásának automatikus változtatása pedig a szemünkbe jutó megfelelő fénymennyiséget biztosítja. Egy kép térhatásúnak tűnik, ha a közelebbi tárgyakat arányosan nagyobb a távolabbiakat arányosan kisebb méretben ábrázolja, a tárgyak képén árnyalásokat ,
takarásokat használ. Ez javarészt tapasztalatainkon alapuló vizuális emlékezetünknek tulajdonítható. Ezeknek a modellezése, a tárgyak és a fényviszonyok ismeretében kiszámítása valósághű képek előállításához vezet. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 5 Egy kép tudatos érzékeléséhez legalább 1/15 másodpercig kell látnunk a képet. Ennél rövidebb időre felvillanó képet nem érzékelünk tudatosan.A tudat alatti érzékeléshez kellő idő ennél rövidebb. Amerikában betiltották azt a fajta reklámot, amikor a mozifilmek kockái közé 1/15 másodpercnél rövidebb ideig megjelenő képeket eredményező filmkockákat tettek. ( pl egy kellemes tengerparti szerelmi
jelenet kockái közé üdítőitalok fényképeit csempészték azzal a céllal, hogy a nézőben kellemes képzettársítás alakuljon ki az üdítőről. ) Az animációknál, filmeknél fontos, hogy egy másodperc alatt legalább 25 teljes állóképet jelenítsenek meg. Ennyi kell ahhoz, hogy a szem villogásmentes folyamatos mozgóképet lásson A TV a váltottsoros vagy interlaced technikát használja, amely másodpercenként 50 félképet jelenít meg. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 6 Fénytani alapfogalmak Sugárzási teljesítmény: ( radiant energy ) Pontszerű fényforrás adott idő alatt kisugárzott energiája. / Watt / Kisugárzás erősség: ( radiant intensity ) Pontszerű
fényforrás időegység alatti, egységsugarú gömb egységnyi térszögébe kisugárzott energiája. Besugárzás erősség: ( irradiance ) Adott felület besugárzásának mennyisége, amely Lambert távolság és cosinus törvényével fogalmazható meg. A távolságtörvény kimondja, hogy pontszerű fényforrásnál , azonos beesési szögnél a besugárzás erőssége fordítottan arányos a felületnek a fényforrástól mért távolsága négyzetével. A cosinus törvény szerint a felület besugárzás erőssége akkor a legnagyobb, ha a fénysugár iránya azonos a felület normálvektorával, azaz először a vállcsúcsunk és az orrunk ég le a napon, vagy a déli órákban kell tartani jobban az UV sugárzás ártalmaitól. Sugársűrűség: ( radiance ) Ha egy pontszerű testünk van, akkor a megvilágított testeknek éles árnyékhatáruk van. Kiterjedt testeknél viszont azt vehetjük észre, hogy az árnyékos terület fokozatosan megy át világosból sötétbe.
Ennek az az oka, hogy felületformájú kisugárzó testeknél a besugárzás erősség nem csak a sugárzás irányától, hanem a helyétől is függ.Igy a fogalom adott térszögből időegység alatt az egységnyi felületre eső sugárzási energiát jelenti. A fenti sugárzásfizikai mennyiségeknek megvan a fotometriai megfelelőjük. A fotometria a sugárzásfizika alkalmazásában figyelembe veszi az emberi látás törvényszerűségeit is.Igy a besugárzás erősség fotometriai megfelelője a megvilágitáserősség,melynek közismert mértékegysége a LUX. pl. éjszakai holdsugárzás : 0,2 lux 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 7 déli napfény: 70000 lux olvasólámpa: 100 lux
munkavégzéshez 500 lux Fotometriai mennyiségek: fénymennyiség: quantity of light fényáram: liminous flux 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 8 fényerősség:liminous intensity megvilágitáserősség: illuminance fénysűrűség: luminance Fényt sugárzó testek: ( emisszió ) A fényt kisugárzó testeket a sugársűrűséggel vagy a fénysűrűséggel jellemezzük. Az irányfüggetlen fénysűrűség a radiosity fotorealisztikus renderelő eljárásnak legfontosabb alapfeltevése. Azokat a testeket , amelyek ilyen módon sugároznak ki fényt, Lambert féle testeknek nevezzük. Fényvisszaverődés testek felületéről: A testek felületéről visszavert fénysugárzást
legáltalánosabb formában a spektrális visszaverődési tényezővel tudjuk leírni, amely a visszavert fény sűrűségének és a beeső sugárzás megvilágítás - erősségének az aránya. Az arányt szolgáltató függvényt a szakirodalomban "bidirectional reflection distribution function" azaz BRDF elnevezéssel illetik. A visszeverődésnek három típusát szokták megkülönböztetni: 1. ideálisan diffúz visszaverődés: Ez a matt, ill a durva felületek jellemzője A diffúz visszaverődést szemléletesen úgy képzelhetjük el, hogy a felület - erős nagyítás esetén látható mikroszkopikus tükröző felületelemekből áll, amelyeknek síkjai a legkülönbözőbb szögekben állnak. Ezért bármilyen irányból nézzük a testet, a visszavert fény képe ugyanolyan 2. ideálisan tükröződő visszaverődés: pl a síktükör így tükröz visszaA beeső fény szöge egyenlő a visszavert fény szögével. A hagyományos raytracing algoritmusok
ezt alkalmazzák 3. irányított diffúz visszaverődés: ( spekulare reflexion ) A fenti kettő a természetben nagyon ritka. Gyakori viszont , hogy a visszaverődésnek van egy kitüntetett iránya, amely irányban a felület a legtöbb fényt veri vissza, majd ahogy ettől az iránytól távolodunk, a visszavert fény mennyisége egyre csökken. Ezt az esetet irányított diffúz visszaverődésnek nevezzük 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 9 Átlátszó testek, fénytörés: A fénysugár megtörik, ha egy optikailag ritkább anyagi közeg és egy optikailag sűrűbb anyagi közeg határán halad át. Az átlátszó testeken történő fényáthaladásnak megkülönböztetjük négy esetét
hasonlóan a visszaverődéshez. 1. diffúz áthaladás 2. irányított diffúz áthaladás 3. durva törés 4. ideális törés Az átlátszó közegek fontos jellemzője a visszaverő és az áteresztő képesség. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 10 levegő és víz találkozásakor: visszaverő képesség: 2% áteresztő képesség: 98 %. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 11 Színterek A színkeverés alapjai: A
monitoron található képpontok három részből állnak, melyek egy-egy színösszetevőnek felelnek meg. Minden egyes képpontrészt különböző intenzitással lehet felgyújtani és ezek általában a vörös ( RED ), zöld ( GREEN ) és a kék ( BLUE ). A színeknek megfelelő képpontrészeket 256 intenzitásszinten lehet felvillantani. A szem ezeket külön nem érzékeli, ezek hatása egy egységes színingerré áll össze bennünk. Az intenzitási szintek alapján összesen 2563 színárnyalat megjelenítésére van lehetőség, ez összesen kb. 16 millió különböző színárnyalatot jelent. Grassmann - féle színkeverési törvények: 1. A keverékfény színezetét az összetevők szabják meg 2. Bármely színinger előállítható három szín additív keverésével, ezért minden színezet megadásának szükséges és elégséges feltétele három független színezeti jellemző megadása. 3. A színérzet a világossággal nem változik Ez tehát azt is jelenti,
hogy a színérzetet elvonatkoztatva a világosságtól új fizikai jellemzőt nyerünk: ez a színérzet jellemző. A második törvényből az is következik, hogy a színek egy három dimenziós matematikai struktúrát alkotnak, azaz megfeleltethetők egy 3D-s vektortér vektorainak. E vektorteret szintérnek hívjuk, a tér egyes vektorait színvegyértékeknek. A vektorok hossza megfeleltethető a fénysűrűségnek ( színérték ) a vektorok iránya pedig a szintopust határozza meg. A szintér három alapszínét elsődleges vegyértékeknek nevezzük pl. Red, Green, Blue Az RGB, a CMY, a CMYK és a HSB színterek: Elsődleges fényforrások, amelyek maguktól kibocsátanak fényt ( Nap, lámpa, gyertya stb. ) Másodlagosak azok a fényforrások, amelyek nem képesek önállóan fény kibocsátására, csak azt visszaverhetik, átereszthetik. A színkeverésnek két alapvető módja van aszerint, hogy elsődleges vagy másodlagos fényforrásról van -e szó.
333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 12 Az összeadó , vagy additív színkeverésnél a vörös , a zöld és a kék alapszínekből vett meghatározott mennyiségeket adunk össze és így kapjuk a színárnyalatokat. Ezzel az ún elsődleges fényforrások színeit tudjuk előállítani. A szubsztraktiv vagy kivonó szinkeverésnél az alapszínek komlementereiből ( ciánkék, bíborvörös, sárga ) állítjuk elő a színeket. Ezzel lehet modellezni a különböző tárgyak által visszavert fényt. Két szín egymásnak komplementere, ha additív keverésükkor fehéret, szubsztraktiv keverésüknél pedig feketét kapunk. A színes, például piros felület a fehér fényből csak a pirosat veri vissza, a többi
más hullámhosszú fényt elnyeli, abszorbeálja. RGB szintér: vörös , zöld, kék ( red, green, blue ) alapszínekből kikeverhető színeket tartalmazza, az additív színkeverés modellezéséhez használjuk. CMY szintér: ciánkék, bíborvörös, sárga ( cyan, magenta, yellow ) alapszínekből kikeverhető színeket tartalmazza, a szubsztraktiv színkeverés modellezéséhez használjuk. CMYK szintér: megegyezik a CMY szintérrel, csak még hozzáadódik a fekete szín, tekintve, hogy a CMY alapszínekből csak szürkét tudunk előállítani, a nyomdatechnikában viszont szükség van a teljesen fekete színre is. Az RGB és a CMY színterek közötti átszámítás kölcsönösen egyértelmű: [ C,M,Y] = [1,1,1] - [ R,G,B] [R,G,B] = [1,1,1] - [ C,M,Y] Az RGB és a CMYK színterek között nem lehetséges kölcsönösen egyértelmű megfeleltetés. Az RGB alapszínek intenzitását 0 és 255 közötti értékkel adjuk meg, a nyomdatechnikában pedig CMYK
alapszíneket 0 és 100 közötti fedettségi értékkel jellemezzük. HSB szintér: ( HUE : színárnyalat, SATURATION: szintelitettség, BRIGHTNESS : világosság ) Az RGB alapszínek mellett a színek előállításához szükséges színtelitettség és világosság értékeit is felhasználják. Szokás még HLS szintérnek is nevezni A HSB szintér jobban alkalmazkodik az emberi érzékeléshez, mint az RGB vagy a CMY. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 13 Indexelt színkezelés palettával: A színek kódolására kezdetben 8 bitet használtak, ez 256 fajta színárnyalat kezelését teszi lehetővé. Ekkor egy színnek a kódját egy 256 elemű színtáblázatra , azaz palettára való
hivatkozás jelentette. A programcsomagok általában több paletta kezelését tették lehetővé Többcsatornás színkódolás: A hardver fejlődésével egyre inkább a többcsatornás szinkódolás vált általánossá. Itt a szintér alapszíneinek intenzitás értékét külön külön adjuk meg. Ha három alapszínünk van, akkor csatornánként meg kell határozni, hogy hány biten kódoljuk az adott alapszín intenzitásértékét: HIGH-COLOR szinmegjelenités: a három alapszín csatornáját összesen! 16 biten tároljuk ,azaz 216 , kb. 32000 különböző színárnyalat megjelenítését tesszük lehetővé TRUE COLOR szinmegjelenités: a három alapszín intenzitását 3X8=24 biten tárolják, ami 224, azaz kb. 16 millió színárnyalat megjelenítését tesszük lehetővé Az egyes alapszínek intenzitását itt a felhasználó egy 0 és 255 közti érték megadásával állíthatja be.
333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 14 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 15 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 16 A vektorgrafika általános jellemzői A vektorgrafika egy 3D-s lebegőpontos
világ-koordináta-rendszert használ, ezáltal lehetővé teszi a geometriai pontosságú szerkesztést és transzformációkat. A vektorgrafika absztrakt modelltérbeli tárgyakkal dolgozik. Ezek az önálló objektumok / entitások / , melyekkel műveleteket lehet végezni a képernyőn való megjelenéstől függetlenül is. A vektorgrafikában a grafikus objektumokat adatbázisban tárolják, mely lehetővé teszi az egyes testek, tárgyak modelljeinek egyedi visszakeresését és az ezek közötti kapcsolatok rögzítését és kimutathatóságát. A modelltér és a vektorgrafikus adatbázis kapcsolata Vektorgrafikus geometriai objektumok adatbázis adatai Az adatbázisban nem tárgyak, testek képeit, hanem a megfelelő 3D-s világtérbeli geometriai objektumok matematikai és strukturális adatait dolgozzuk fel. Ezeknek az adatoknak a konkrét tartalma és megjelenési formája ( pl. csak egy poliéder csúcsainak koordinátáit tároljuk , vagy emellett még lapjainak
normálvektorát is ) a kiválasztott geometriai modellezési eljárástól függ. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 17 A vektorgrafikus objektumok kapcsolatrendszere A geometriai objektumok közötti kapcsolatok lehetnek: 1. alá-fölérendeltségi hierarchikus viszonyok, melyek jellemző változata a tartalmazás ( pl háztetőszerkezet-tetőablak ) 2. mellérendeltségi viszonyok -szerkezeti jellegű kapcsolatok ( a hierarchia azonos szintjén lévő objektumok közötti kapcsolatok ) -illeszkedési jellegű kapcsolatok, amikor az objektumok valamilyen formában csatlakoznak egymáshoz ( egy kocka csúcsából kiinduló 3 él ) -megjelenités jellegű kapcsolatok, amikor több objektum egy
megjelenítéshez ( scene ) tartozik. A vektorgrafikus geometriai objektumokhoz rendelt tulajdonságok Az objektumoknak nem csak a strukturális adatait, hanem kifejezetten megjelenés-orientált jellemzőit is csatolhatjuk az adatbázishoz. szín, vonalstílus, felületi jellemzők : textúrák, fényvisszaverőképesség, érdesség stb. szövegek. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 18 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai
19 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 20 A modelltér geometriai objektumaihoz hozzárendelt mennyiségi és szervezési információk Jó példa ide a vektorgrafikus térkép, amelyben az úthálózat gráfjához hozzárendeljük az egyes útszakaszokhoz tartozó sebességkorlátozást is. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 21 A geometriai modellezés alapjai A geometriai modellezés lehet: 1. adatorientált 2.
eljárás-orientált Adatorientált esetben a térbeli alakzat jellemző adatait tároljuk a számítógépes rendszerben ( pl. háromszög esetében a csúcspontokhoz vezető vektorok koordinátáit ) míg eljárás-orientált esetben a térbeli alakzat generáló programját ( pl. körgeneráló rutin a kör egyenlete a középpont és a sugár paraméterei alapján ) . A vektorgrafikai geometriai modellek az alábbi adatokkal jellemezhetők: 1. a modell neve, azonosítói, a geometriai alakzatot felépítő geometriai építőelemek fajtái, 2. az építőelemek kapcsolódására vonatkozó információk, adatok, 3. a geometriai alakzatra vonatkozó méret-, nagyságadatok, 4. a geometriai alakzatra vonatkozó hely- és helyzetadatok a modellezési világkoordinátarendszerben, 5. a geometriai alakzat tulajdonság adatai, 6. a geometriai alakzat megjelenítésének adatai Azokat az építőelemeket, melyek tovább már nem bonthatók fel geometriai primitivek nevezzük. A legtöbb
vektorgrafikus rendszerben a geometriai alakzatokat primitívek összeépítésével hozzák létre. Primitívek: 2D: - a vonal ( szakasz ) - a téglalap ( négyzet ) 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 22 - az ellipszis ( kör ) - a sokszög 3D: - hasáb ( beleértve a téglatestet és a kockát is ) - gúla ( csonka gúla ) - henger - kúp ( csonka kúp ) - gömb - tórusz 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai Egyszerűbb
modellezőrendszerek a térbeli 23 íveket és felületeket szakasz ill. háromszögközelitéssel modellezik. Ennél hatékonyabb módszer ,ha paraméteres köbös ívdarab és kétparaméteres köbös felületfolt primitívekkel állítják elő a térbeli íveket és felületeket ( BSpline és NURBS felületek) . A vektorgrafikában többféle geometriai modellezőrendszert használunk, a legelterjedtebbek: - huzalvázas ( drótváz ) modellezés - palástfelületekkel való modellezés ( b-rep ) - tömör testmodellezés ( CSG ). - térfogat-modellezés / csak az utóbbi időben terjedt el a számítógépek teljesítménynövekedésének köszönhetően / Fontos, hogy a különböző modellezési módszerek kombinált alkalmazását a konkrét vektorgrafikus rendszerek általában megengedik, és ezeket az adatbázis-kezelés szintjén összekapcsolják. Így például lehetőségünk van egy palástfelületekkel modellezett test huzalvázas megjelenítésére.
333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 24 Görbe és felület modellezési módszerek A görbék és a felületek modellezésénél a felhasználó szemléletes, geometriai adatokat közöl / kijelöli a nézeten egy pont helyét az egérrel / a vektorgrafikus rendszerrel , mely ez alapján generálja / állítja elő / a megfelelő görbét vagy felületet. A leggyakrabban olyan térbeli pontokat adunk meg, amelyeken a az előállítani kivánt görbének vagy felületnek át kell haladnia. Interpoláció és approximáció A térbeli görbék és felületek közül azok kiválasztását, amelyek a tér előre adott P1 . Pn pontjain áthaladnak, egy interpolációs feladat megoldásának nevezzük.
Például legyen adott a P0, P1, P2, P3 pont az r0, r1, r2, r3 vektorokkal. Keressük azt az r = r(t) vektor skalár függvényt, mely kielégíti a következő feltételt: található olyan t0, t1, t2, t3 paraméter, hogy r0 = r(t0), r1=r(t1), r2=r(t2), r3=r(t3) teljesül. Ebben az esetben az r(t) vektor skalár függvényt interpolációs görbének, a P0, P1, P2, P3 pontokat pedig az interpolációs görbe kontrollpontjainak nevezzük. A térbeli görbék és felületek modellezésének másik elterjedt módszere az approximáció. Ebben az esetben egy görbecsaládból ( pl. n-edfokú polinomok ) azt a görbét választjuk ki, mely az 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 25 előre megadott pontokat a
lehető legjobban megközelíti. Az approximáció esetén a közelítő görbe kontrollpontjainak csak egy része helyezkedik el a görbén. A számítógépes grafikában a térgörbék és felületek modellezésére a harmadfokú polinomokat választották. A harmadfokú polinomokkal modellezhetők olyan geometriai tulajdonságok, mint az önmetszés, csúcspont, vagy az inflexiós pont ( ahol az érintő átmetszi a görbét) . Tehát a görbéket az r=a0+a1.t+a2t2+a3t3 alakú köbös paraméteres ívekkel , a felületeket pedig kétparaméteres köbös felületekkel közelítjük ( a felületeknél x(u,v), y(u,v), z(u,v) u és v harmadfokú polinomja). A spline és a köbös kétparaméteres felületfolt Az interpolálással és approximálással képzett görbék és felületek előállítására két eltérő módszer létezik. 1. Az össze interpolálandó vagy approximálandó pontot figyelembe véve egyetlen görbét vagy felületet határozunk meg. 2. Az interpoláló vagy
approximáló görbét vagy felületet egymáshoz folytonosan kapcsolódó részekből állítjuk össze. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 26 A számítástechnikában a második módszer vált egyeduralkodóvá, mert egy kontrollpont változtatása kihat az egész görbére. Ha a modellezendő térgörbét több egymáshoz folytonosan kapcsolódó ívből állítjuk össze, akkor ezt a görbét spline-nak nevezzük. A ma leggyakrabban használt NURBS szabvány is ilyen. A spline-ok tehát polinomivdarabokból álló görbék, mely ívdarabokat a paramétertartomány t0 <= t1 <= t2 <= . <=tn felosztásával képzünk minden [ ti, ti+1 ] intervallumban külön külön. Az ívdarabok
összeillesztése folytonosan, differenciálisan / érintőmeghatározás / történik Ha a paramétertartományt azonos közökre osztjuk fel , azaz ti+1-ti értéke minden i-re azonos, akkor a spline-t uniformnak nevezzük. Ha egy modellezendő felületet részekből állítunk össze, akkor ezt spline-felületnek nevezzük. A spline felületek részeit leggyakrabban köbös polinomokkal generáljuk, ezeket két paraméteres köbös felületfoltoknak ( bicubic patch ) nevezzük. Fontos, hogy a görbékhez , a spline-okhoz léteznek olyan eljárások, amelyek görbékhez poligonokkal, felületekhez háromszöglapokból álló összefüggő poliéderfelületekkel közelítenek. A videokártyák chipkészlete alapvetően a háromszögekkel modellezett felületek megjelenítésére van felkészítve.
333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 27 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 28 Vektorgrafikus geometriai modellezés Típusok: - Huzalvázmodellezés - Palástmodellezés ( b-rep ) - konstruktív tömör testmodellezés - térfelosztással való modellezés Huzalvázmodellezés A műszaki rajzok szabványain alapuló 2D-s vektorgrafikus rendszerek vonalas ábrázolásának a háromdimenziós általánosítása. A huzalváz modell a 3D-s alakzatot csúcsaival és éleivel jellemzi, ennek megfelelően a modell csak a csúcsokat és az ezekhez rendelt összekötő éleket tartalmazza. A huzalváz modellek
legnagyobb előnye, hogy a számítógépes megvalósításuk algoritmusigénye a többi modellező módszernél lényegesen kisebb, így viszonylag kis erőforrású számítógépen is 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 29 használhatók. A huzalvázmodellek legnagyobb problémája, hogy egy huzalvázmodellnek több test is megfelelhet. Nem mindig tehető különbség a tömör és üreges test között a modell alapján, és a testet határoló felületek görbültségét sem tudjuk kezelni. A huzalvázmodellezés a nem teljes értékű modellezések csoportjába tartozik, ami azt jelenti, hogy a modell nem tartalmazza a valós test leírásához szükséges összes geometriai és csatlakoztatási (
topológiai ) információt. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 30 A huzalvázmodell adatstruktúrájának lényege a csúcs, az él és az él-csúcs táblázatok együttese, amelyeket a relációs adatbázis-kezelés szabványainak megfelelően építenek fel. Itt a csúcstáblázat tartalmazza a modellezett objektum egyes csúcsaihoz tartozó azonosítót és koordinátaértékeket, az él-csúcstáblázat meghatározza, hogy egy él milyen azonositójú csúcsokat köt össze és hivatkozik az éltáblázatra, mely az élek generálásához szükséges információkat tartalmazza.A műszaki tervezés gyakorlatában a huzalvázmodellezést alkalmazzák, mivel gyorsan kiszámítható az eredmény pl.
egy transzformációnál és gyorsan láthatóvá is tehető A szemléltetési és egyértelműségi problémák kezelésére egyes CAD rendszerekben a modellezést továbbfejlesztették és a görbült felületeket felületvonalakkal szemléltetik. Ezt felületvonalas huzalváz modellnek nevezzük. Palástmodellezés: A palástmodellezésnél a geometriai objektumokat a vektorgrafikus modelltérben határolófelületeikkel ( beleértve e felületek csatlakoztatására vonatkozó adatokat is ) jellemzzük. Ez a műszaki gyakorlatban előforduló testek esetében teljes értékű geometriai modellezést jelent, mivel a testeket határoló felületeik vagy palástjuk pontjainak összessége a szükséges pontossággal és egyértelműséggel leírja. A módszer neve az angol szakirodalomban
333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 31 BOUNDARY-REPRESENTATION, vagy röviden B-REP. A palástmodellezés részét képezi a huzalvázmodellezésnél megismert csúcs, él együttes, de ez kiegészül a testhatároló lapok felületfoltjaival és ezek geometriailag pontos csatlakoztatására vonatkozó algoritmusokkal. A palástmodellező eljárásokat a lapok geometriai jellemzői szerint szokták osztályozni: 1. ha a palástot képező lapok síkbeli sokszögekből állnak , akkor poliédermodelleket kapunk, 2. ha a palástot képező lapok változó görbületű felületfoltok is lehetnek, akkor valósághű palástmodellezésről beszélünk. Palástmodelleket létrehozhatunk lépésenkénti szerkesztéssel. Ekkor a test határoló felületeit egyenként definiáljuk a térbeli felületek csatlakoztatási lehetőségeinek függvényében. A lépésenkénti szerkesztés legegyszerűbb elemi
lépéseit Euler-operátoroknak nevezik. Ezek pl a következők lehetnek: - képezz csomópontot, élet és palástot, - kapcsolj ki ( törölj ) csomópontot, élet. Ezekkel az operátorokkal az Euler féle poliéder tétel miatt "konvex poliéderekhez hasonló" testek létrehozása egyértelműen leírható. Minden B-REP test létrehozható az Euler operátorok véges számú sorozatával, amely eleget tesz az alábbi feltételeknek: 1. A véges számú felületfolt egyesítése a test határfelületét adja, 2. Éleit mindig két csúcs zárja le, 3. Az él két ( vagy páros számú ) határoló felületfolt találkozásakor keletkezik, 4. Minden felületfoltot élek véges számú , záródó sorozata határol, 5. konvex Ekkor igaz a b-rep testekre Euler poliéder tétele: lapszám+csúcsszám = élszám + 2
333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 32 Ezt először konvex poliéderekre bizonyították, de ez a gömbbel homeomorf topológiai alakzatokra is általánosítható. Ezért az Euler féle operátorokkal felépíthetünk görbült felületfoltokat tartalmazó b-rep testeket is. A műszaki gyakorlatban azonban különböző üreges elemek, térbeli "lyukak" képzésére is szükségünk van. Ehhez úgynevezett kiegészítő operátorokat alkalmaznak, melyek az egyszeresen vagy többszörösen lyukas ( tórusz vagy többszörös tórusszal egyenértékű ) testek létrehozását is biztosítják. A lépésenkénti szerkesztés mellett a B-REP modellek létrehozásának fontos eszköze a már tárgyalt "pásztázás" ( SWEEP). A műszaki tervezőrendszerek fejlettebb változatai már alkalmazzák a "valósághű palástmodellezés"
címszó alatt a B-Spline, a Bézier és a NURBS felületfoltokat is. A palástmodellek lényegi, egyszerűsített adatstruktúrájának relációs modellje: Az egyes entitások N:M kapcsolatban állnak, így az adatstruktúra ennek megfelelő számú csúcsél, él-lap stb. kapcsoló táblát is tartalmaz Az adatbázis szerkezete egyben a b-rep modellezés lényegét is kifejezi: a felületfoltokat nem egyszerűen egymás mellé rakjuk a modellben, hanem ezek kapcsolata is beépül az adatbázisba. A palástmodellezést elterjedten a CAD rendszerekben alkalmazzák, mivel a 3D-s műszaki tervezésben szükséges testek teljes körű geometriai leírását biztosítja és lehetővé teszi a felhasználó számára a modellezés során a testek "kényelmes", interaktív szerkesztését. Elterjedését a poliéder modellek parametrizálhatósága is elősegítette valamint az is, hogy a palástmodellek huzalvázmodellé való konvertálásához szükséges algoritmusok
rendelkezésre állnak. A felületek teljes értékű leírása különösen előnyös lehet az NC ( számjegyvezérlésű ) 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 33 automaták programozásában. Konstruktív tömör test modellezés: Constructive Solid Geometry CSG A CSG az összetett testeket primitív testekből halmazműveletek ( UNION, DIFFERENCE, INTERSECTION ) / egyesítés, negáció, metszet / alkalmazásával építi fel. Az elfajulások elkerülése érdekében regularizált halmazműveleteket használunk, azaz először kivesszük a halmazokból a határfelületeket, elvégezzük a belső pontokra a halmazműveletet majd a keletkező halmazt lezárjuk, azaz hozzávesszük annak határpontjait.
A CSG továbbfejlesztéseként jött létre a testpalást modellezés vagy Constructive Shell Representation: CSR, amely a CSG és a B-REP palástmodellezés előnyös tulajdonságait próbálja ötvözni: - a modellezésben részt vevő testeket fa struktúrával írja le, - a levelek b-rep modellek is lehetnek. A műszaki tervezés során szükséges testek döntő része előállítható néhány egyszerű geometriai test ( primitív ) megfelelő kombinációjából. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 34 Térfogatmodellezés elemi sejtekkel / 2D pixel helyett 3D voxel /: A térfogat-modellezésnél egy tömör tárgyat több egymáshoz csatlakozó, de egymást nem metsző kisebb tömör tárgyra,
azaz sejtekre bontunk fel. A sejteknek két típusa van: 1. A sejtek azonos típusú alakzatok ( pl hasábok ) , de méretük egy paramétertől függően változhat, 2. A sejtek azonos típusú és méretű alakzatok, ekkor ezeket voxelnek ( volument element ) nevezzük. Az azonos formátumú és méretű voxelekkel való kitöltése a modellezendő testnek, ha a voxeleket elegendő kis méretűre választjuk, a test relatíve pontos leírását eredményezi. A leggyakoribb voxeltipus a kocka. A modellezendő objektumokat a voxelekkel úgy írjuk le, hogy minden egyes a testhez teljes egészében vagy csak részben hozzátartozó voxel adatait hozzárendeljük a testhez. Pontos közelítést minél kisebb voxelekkel tudunk elérni, így azonos térfogatra kisebb voxelek azok nagyobb számát jelentik. Nagy teljesítményigényű számítógépet igényel a módszer, ugyanakkor a gépek teljesítményének exponenciális növekedésével a módszer a jövőben nagy szerepet tölt majd
be. Pl a CT vizsgálat során a berendezés anyagsűrűséget mér és ez alapján a hozzákapcsolt számítógépben egy térbeli "köd" adatai jelennek meg. Ha az azonos sűrűségnek megfelelő térrészek modelljét voxelekkel töltjük ki, megkaphatjuk pl. bármely belső szerv 3D - s képét Egyenlőre a térfogat-modellezéssel kapott adatokat hagyományos modellezési eljárásokban használható adatokká konvertálják át. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 35 Műveletek a modelltér vektorgrafikus objektumaival Művelettípusok: - új objektum létrehozása, - egy létező objektum transzformálása, másolása, törlése - meglévő objektumokkal végzett halmazalgebrai műveletek
- struktúra képzés - jelenetek ( scene ) megjelenítése Új objektum létrehozása: - primitívpéldányokra való hivatkozással, - szerkesztéssel, - pásztázással. Objektum létrehozása szerkesztéssel: A felhasználó adja meg a vektorgrafikus rendszer számára az összes információt, amely alapján a térbeli test összeállítható. A módszer tipikusan jellemző a testek palástfelületekkel való modellezésére ( b-rep ), amikor a felhasználó egyenként meghatározza az egyes fedőlapok, felületek jellemzőit és ezek csatlakozására vonatkozó adatokat. Objektum definiálása pásztázással / SWEEP / : Pásztázásnál egy 2D felületelemet mozgatunk egy vezérgörbe mentén, és ennek során a felületelem által "súrolt" térbeli pontok egy testet határoznak meg. A pásztázásnak két speciális esete van : - a kihúzás ( EXTRUDE ) - a forgatás ( ROTATE )
333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 36 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 37 Másolás , törlés , transzformáció A másolás a kijelölt vektorgrafikus objektum egy eltérő nevű ( azonositójú ) példányát hozza létre a világkoordinátarendszer egy másik helyén. A törlés egy korábban definiált struktúrába nem beépített objektumot szüntet meg, ami azonosítójának törlését és a megfelelő adatbázisrész felszabadítását jelenti.
333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 38 Transzformációk: eltolás, elforgatás ( tükrözés is ), léptékváltás / scale / ( nagyítás, kicsinyítés, összenyomás, széthúzás ). Objektumokkal végzett halmazalgebrai műveletek: Két test között Bool algebrai műveleteket végezve egy új testet kapunk. - egyesítés ( UNION ) - kivonás ( DIFFERENCE v. SUBSTRACT ) - metszet ( INTERSECTION ) Az objektumok között strukturális kapcsolatok létesítése és megszüntetése A csoportképzéssel ( GROUP ) objektumokat összefoghatunk egy egységbe, illetve ezt meg is szüntethetjük. A csoportok általában több szinten hierarchiában is felépíthetők és rendszerparancsok egy része a csoportokra is értelmezett. A csoportok közül népszerű a
rétegek vagy fóliák ( LAYER ) használata, amelynél a az objektumok a felhasználó által megadott csoportosításban külön fóliákra kerülhetnek, melyek a rendszerben külön kezelhetők. Egymásra rakva a fóliákat , láthatjuk a teljes rajzot is Az egyes fóliák "lefagyaszthatók" , ekkor tartalmuk például a képernyőn nem jelenik meg. Amennyiben viszont később a lefagyasztott fóliára szükségünk van, azt elővehetjük és így többcélúan felhasználhatjuk. A fóliák segítségével például egy ház építészeti terveit épületgépészeti vagy belsőépítészeti célokra is felhasználhatjuk. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 39 Kivágás és leképezés
Képgenerálási pipeline: 1. Meg kell adni a modelltér objektumait megvilágító fényforrásokat a világkoordinátarendszerben. 2. Rögzítenünk kell a nézőpontot vagy a kameraállást a világkoordinátarendszerben 3. El kell döntenünk, hogy a modelltér milyen objektumait kívánjuk szerepeltetni a generálandó képben. Ehhez egy ablakot kell definiálni a világkoordinátarendszerben, amelyen keresztül a jelenetet látjuk. 4. A jelenetben szereplő objektumokat a világkoordinátarendszerből affin és perspektiv transzformációval egy normalizált ábrázolási térbe kell leképeznünk. 5. Az ábrázolási térben meg kell határozni az objektumok takarási viszonyait, azaz a nézőpontból látható éleket és felületeket. Ez a látható kép meghatározó algoritmusokkal történik 6. A látható felületelemek képpontjaihoz ezt követően hozzárendeljük a fényviszonyoknak és a textúráknak megfelelő színeket. 7. A raszteres képernyőn
kiválasztott ablaknak megfelelő pixelekre "vetítjük" a felületelemek képpontjainak színértékeit a monitor fizikai eszközkoordináta - rendszerében. A jelenet nézőpontjának definiálásához nyilván meg kell adni annak a pontnak a koordinátáit a világkoordinátarendszerben, ahova a "fényképezőgépet" elhelyezzük. Szükség van még a fényképezőgépben lévő film síkjának és az objektív térbeli irányának meghatározására is. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 40 xf,yf,zf a kamera koordinátarendszer origójának koordinátái a világkoordinátarendszerben u,v sík a keletkező kép síkja n az objektív iránya ( a fényképezőgépbe eső
fénysugarak "fő iránya" ) A számítógépben a fényképezőgép egy program, a vele felvett tárgyak pedig vektorgrafikus adatállományok. A jelenet képét az ( u,v ) síkban definiált ablakra történő vetítéssel állítjuk elő Ez lehet középpontos vagy párhuzamos vetítés. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 41 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 42 Látható kép meghatározó algoritmusok A
modelltér elemeinek láthatóságát meghatározó algoritmusoknak nyilvánvalóan a 3D-s látótérben kell működniük, mivel a megjelenítő eszköz 2D-s koordináta-rendszerére való vetítés megsemmisíti a takarási viszonyokat. Hátsó felületek eltávolítása: ( Back Face culling ) A zárt , sokszögekből álló objektumokat teljesen körbezárják a felületüket alkotó poligonok. Ha a poligonok normálvektorait úgy állítjuk be, hogy az objektumból kifelé mutassanak, akkor azok a poligonok, melyek normálvektorai nem a néző felé mutatnak, biztosan takarva lesznek az objektum közelebbi felülete által. Ezeket a takarásba kerülő, úgymond hátrafelé néző poligonokat back face poligonoknak nevezzük és az objektumot leíró adatbázisból való eltávolításukat eredményező eljárást pedig back face cullingnak. A back face poligonok könnyen azonosíthatók a normálvektoruk és a vetítés középpontjából a poligonhoz mutató vektor
skalárszorzata által: pozitiv érték esetén a poligon hátrafelé néz. Ha egy konvex poliédert kell ábrázolnunk , akkor nincs probléma, viszont a front ( elülső ) poligonok is takarhatják egymást. Az eljárás a poligonok és az őket metsző fénysugár döféspontjainak számát, így a metszés ill. a döféspontokkal és így a pixelekkel kapcsolatos számításokat megfelezi, tekintve hogy megközelítőleg annyi poligon van hátul, mint amennyi elöl. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 43 Minimum maximum teszt: Az objektumok takarási viszonyainak meghatározását segítheti, ha ezeket egyszerűbb testekbe zárjuk, melyek térbeli elhelyezkedését hatékonyabb algoritmusokkal tudjuk
kezelni. Ezeket a befoglaló testeknek (bounding volume) nevezik.A leggyakrabban használt befoglaló testek a tégla és a gömb. A renderelési eljárást azért gyorsíthatja, mert azokkal a fénysugarakkal eleve nem foglalkozik, amelyek nem metszik a befoglaló testet. a. A két térbeli háromszög nem takarhatja egymást b. Takarják egymást c. Nem takarják egymást, de ez min/max teszttel nem dönthető el A Z-BUFFER vagy mélységtároló algoritmus: Az algoritmus két tároló területet használ: A frame-buffert, amely a képernyő pixeljeihez tartozó színértékeket tárolja, induló feltöltése a háttérszín. A Z-buffert, amely az egyes pixelekhez rendelt Z értéket tárolja a normalizált látótérből, kezdeti értéke a hátsó kivágósik Z koordinátája. A tér minden egyes normalizált látótérbeli objektumára az alábbi kerül végrehajtásra:
333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 44 1. egy (x,y) koordinátájú pixelhez tartozó vetítősugárhoz kiszámoljuk az összes metszett objektumhoz tartozó z értéket, 2. ha z értéke kisebb, mint egy korábban a z bufferben letárolt érték, akkor ezzel felülírjuk a korábban letárolt értéket és egyúttal a neki megfelelő színértékkel felülírjuk a frame buffer ( x,y ) koordinátájú tárolóhelyét. Ezzel kiszámoljuk az egy raszterponthoz tartozó vetítősugárnak az objektumoknak a nézőponthoz legközelebb fekvő döféspontját. Teljes megoldást kapunk a takarásra, de nem megoldott az áttetszőség problémája, valamint tiszta formában alkalmazva rettentő forrásigényes eljárás, tekintve, hogy a raszterpontok száma milliós nagyságrendű is lehet. Mélységi rendező
algoritmusok ( Depth-Sort): A megjelenítendő objektumokat a nézőponttól való távolság függvényében sorba kell állítani. A helyes takarási viszonyok úgy alakulnak ki, hogy a nézőhöz közelebb eső objektum képe felülírja a távolabbit. Ezek az algoritmusok általában az objektumok poligonokkal, legtöbbször háromszögekkel való felületi közelítését tételezik fel. Ha egy háromszög z irányban egyértelműen takarja a másikat, akkor a megjelenítésnél képével felül kell írnia azt, ha nem dönthető el egyértelműen a takarás, akkor a háromszögeket addig bontjuk részháromszögekre, 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 45 amíg a takarás egyértelműen el nem
dönthető. A mélységi rendező algoritmusokat általában valamilyen képpontosság eljárással pl . (scan line) együtt szokták alkalmazni, mert a feldarabolást a kép pontossága határozza meg. Bináris térfelosztó fák ( BSP = Binary Space Partitioning ): Az ábrázolandó jeleneteket ( scene ) úgy is tekinthetjük, mint objektumcsoportok gyűjteményét. Ha található olyan sík, amely elválaszt egymástól két objektumcsoportot, akkor az a csoport , amelyik oldalán a nézőpont is van, eltakarhatja a másik csoportot, de a másik csoport által sohasem kerülhet fedésbe. Minden egyes csoport rekurzívan tovább osztható, ha van olyan sík, amely megfelelően szeparál. Így kellő mélységű szeparálás után egyfajta hierarchiát kapunk, amely leírja az egész objektumtér takarási és láthatósági viszonyait.A nézőpont változása nem módosítja a BSP fát , azaz a hierarchiát. Scan-line algoritmusok: A scan line algoritmusok pixelsoronként készítik
a képet a poligonok ( háromszögek ) frame bufferbe történő soronkénti konvertálásával. Az objektumokról az algoritmus táblázatokat készít: 1. Képsíkra vetített, nem vízszintes élek táblázata 2. Poligonok fontosabb paramétereinek táblázata 3. az éppen vizsgált azaz aktív él táblázata Egy-egy pixelsor vizsgálatakor az él táblázatnak azok az elemei, amelyek metszik a sort, áttöltődnek az aktív élek táblázatába. A pixelsor és a háromszögek közös részét szegmensnek nevezzük. Ha a pixelsor szegmense csak egy háromszöghöz tartozik, akkor ezt egyszerűen meg kell jeleníteni. Ha egy pixel több szegmenshez tartozik, ekkor a megfelelő háromszögek mélységi vizsgálatával el kell dönteni, hogy melyik háromszög felületi pontjait kell kirajzolni. / Ezt legcélszerűbben a háromszög csúcskoordináták interpolációjával oldhatjuk meg. )
333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 46 Területfelosztó algoritmusok: Warnock A algoritmusa: negyedelést kellő A képsíkot finomság több eléréséhez képrészre igény osztjuk. szerint Warnocknál rekurzívan ez 4. folytathatjuk. 1.Ha a képrésznek nincs közös része a poligonnal akkor a háttér szín jelenik meg 2. A képrészben csak egyetlen poligonnak a darabja található Ekkor a háttér szín mellett ezt is meg kell jeleníteni. 3. Az adott képrész a poligon teljesen lefedi, ekkor a poligon színét és jellemzőit kell megjeleníteni. 4. Több poligon is metszi a képrészt, ekkor pl z buffer eljárással kapott sorrend szerint egymásra kell festeni a poligonokat. Ha olyan esettel találkozunk, hogy nem sorolható a fenti négy eset valamelyikébe ( pl.
egymást a képrészben kölcsönösen metsző háromszögek ) akkor a képrész újranegyedelésével előbb utóbb eldönthetjük a festés színét. Sugárkövetéses algoritmusok: ( Raytracing ) A raytracing algoritmusok a felületek láthatóságát a nézőpontból kiinduló , képzeletbeli fénysugarak követésével határozzák meg. Működésükhöz egy nézőpontot és egy tetszőleges vetítési síkon felvett ablakot kell definiálni. Az ablak rácsozata a képernyő pixeljeinek felel meg 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 47 A nézőpontból vetítő sugarat indítunk az ablak minden egyes pixelén keresztül a scene objektumai felé. Az adott pixel színét a sugár által a nézőponthoz
legközelebb metszett objektum színe határozza meg. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 48 Megvilágítás és árnyalás A modelltér egy objektumának felületén látható színárnyalatokat a következő tényezők befolyásolják: a fényforrás típusa ( pontszerű, kiterjedt stb. ), a fényforrás sugárzásának erőssége a felület fényvisszaverő képessége a felület és a fényforrás távolsága a felület normálisa és a fénysugár által bezárt szög. Fényforrások modellezése: Szórt háttérvilágítás ( ambient light ) : A fizikában nem értelmezhető. A számítógépes grafikában azért vezették be, hogy a felhasználó az ábrázolt jelenet összes objektumának a
megvilágítását szabályozhassa. Hatása jó közelítéssel a nappali fénynek felel meg egy erősen felhős égbolt esetén, amikor a testek egyenletesen , minden irányból kapnak fényt. A tér minden objektuma így a tér minden irányából azonos fénnyel lesz megvilágítva. Ehhez általában háttérvilágítást állítunk be, a jobb láthatóság kedvéért. A háttérvilágítás nem eredményez árnyékot. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 49 Távoli fényforrások ( Distant light ): Ezek párhuzamos fénysugarakat bocsátanak ki oly módon, hogy a fényforrástól távolodva sem csökken a megvilágítás intenzitása. Ezzel modellezhetjük pl a Napot, ami a nagy távolság miatt
gyakorlatilag párhuzamos és változatlan erősségű fénysugarakat bocsát ki. Hatására árnyék képződik Pontszerű fényforrások ( Point or Bulb light ): A pontszerű fényforrás a modelltér minden irányában azonos intenzitással sugároz. A közeli tárgyak erősebben meg lesznek világítva, mint a távolabbiak a Lambert féle távolságtörvénynek megfelelően. A fényforrástípus éles árnyékot eredményez. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 50 Megvilágítási modellek: A megvilágítási modellekkel írjuk le a modelltér objektumainak és a fényforrásoknak a kapcsolatát. Mindegyik modell egy -egy speciális fényeffektus figyelembevételét teszi lehetővé Egy
fotorealisztikus kép elkészítésénél több modellt is használunk. Ismertebb megvilágítási modellek: 1. Általános háttérmegvilágitás ( ambient light ), amikor az objektumok saját színükkel sugároznak. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 51 2. Diffúz fényvisszaverődés ( diffuse reflection ), amely matt felületekre jellemző 3. Csillogó ( fénylő ) fényvisszaverődés ( specular reflection ), amely fénylő felületekre jellemző. 4. Tükröződő fényvisszaverődés ( total reflection ), amely tükörként viselkedő felületekre jellemző. 5. Átlátszóság ( transparency ), mely olyan testekre jellemző, melyeken a fénysugár teljes egészében vagy részben áthalad. 6.
Árnyék ( shadow ) A realisztikus képek előállitásához az egyes megvilágítási modelleket a testek anyagi minőségétől függően különböző mértékben használhatjuk fel pl. Anyagfajta Ambient Diffuse Specular Reflection Transparency Kréta erős erős - - - Csiszolt fém - - erős erős - Üveg - - erős átlagos erős Biliárdgolyó átlagos gyenge erős átlagos - A lokális megvilágítási modellekben az objektum színét, világosságát más objektumok nem befolyásolják, ezek csak az objektumtól, a fényforrástól és a nézőponttól függnek. Ilyenek a háttérmegvilágitás, valamint a diffúz és a csillogó fényvisszaverődés. A globális megvilágítási modellekben az objektumok színe nemcsak a fényforrásoktól, hanem más objektumokon áthaladó, illetve más objektumok által visszavert fénytől is függ. Ambient light: Itt nincs fényforrás, az objektumok "saját" fényüket bocsátják ki. Ez megfelel
annak, hogy a jelenetet egy irányfüggetlen, szórt fény világítja meg. A megvilágított felületi pont intenzitását leíró megvilágítási egyenlet: 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 52 I = ka .Ia ahol Ia a megvilágított felületelem saját intenzitása, ka a háttér megvilágítás erőssége, mely a jelenet összes objektumára azonos. A háttér ka megvilágitás erősségének mértékét a felhasználó állíthatja be. Ha k = 0, akkor az árnyékban lévő objektumok feketék, k növekvő értékével pedig az objektumok árnyéktere egyre jobban lesz megvilágítva. ( k = 0 érték a világűr viszonyainak felel meg. Diffúz visszaverődés ( diffuse reflection ): A diffúz
visszaverődés a matt felületek jellemzője, ezek a Lambert - féle megvilágítási törvényekkel modellezhetők. Ezért a megvilágítási egyenlet pontszerű, Ip intenzitású fényforrás esetén: Ip=fan.Ipkdcos(n,l) ahol: fan = a fényforrás távolságtól függő gyengülését kifejező tényező. kd = a felület anyagi minősége szerint beállítandó 0 és 1 közé eső diffúz visszaverődési együttható. cos ( n,l ) = a felület felületi normálisa és a fénysugár iránya által bezárt szög A gyakorlatban a diffúz visszaverődést és a szórt háttérfényt együttesen szokták alkalmazni. Az eddigiek monokromatikus fényforrásokra vonatkoztak, de a megvilágítási egyenletek könnyen általánosíthatók színes megjelenítésre is. Fényes fényvisszaverődés: ( specular reflection ): A sima felületek produkálnak ilyet, nevezetesen hogy a felületen fényes foltokat látunk és a nézőpont változtatatásával ezek is elmozdulnak. Más néven
irányított diffúz visszaverődésnek, vagy Phong féle megvilágítási modellnek nevezzük. A Phong féle megvilágítási egyenlet az alábbi formátumú: I = fan.Ipks(cos(v,r))n 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 53 ahol ks = a felület fényvisszaverő képességét jellemző specular visszaverődési együttható cos (v,r) = az ideális tükrözésnél kilépő fénysugár és a nézőpont iránya által bezárt szög koszinusza n = az anyag simaságára jellemző specular visszaverődési kitevő Lokális megvilágítási algoritmusok: A megvilágítási modellek alapján a jelenetben szereplő minden egyes objektum minden egyes pontjára meghatározható a pontnak megfelelő pixel szín és
intenzitásértéke. A szín és intenzitásértékek minden egyes pontra való meghatározása a számítógép számára is túl hosszú idő lenne. Ha a test határoló felülete poligonokból áll, akkor ( feltéve, hogy fényfolthatással nem kell számolnunk ) elegendő a poligon egy pontjához tartozó szín és intenzitásértéket meghatározni és ezt követően a poligont ezzel a színnel kitölteni. Ebben az esetben a kiszámítás műveleti igénye nem a felületi pontok számával, hanem a testet borító poligonok darabszámával lesz arányos. Így a nem poligon határolta testeket a megvilágítás kiszámításához sokszögekkel , leggyakrabban háromszögekkel szokták közelíteni. A sokszögekre bontott testekre dolgozták ki a lokális megvilágítási algoritmusokat, amelyekkel elég finom felbontás esetén a görbült felületeket is jól meg tudjuk jeleníteni. A legfontosabbak:
333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 54 Flat shading Gouraud shading 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 55 Phong Shading Flat shading: az objektumok árnyalásának az a legegyszerűbb módja, hogy minden egyes poligont azonos színnel jelenítünk meg, ez a constant vagy flat shading. Az eljárás a szórt háttérvilágítás és a diffúz visszaverődés együttes megvilágítási modelljét használja, ezért egy felületi sokszög színének meghatározásához elegendő a poligon
normálvektorának kiszámítása és a fényforrás jellemzőinek ismerete. Gouraud shading: Az interpolált árnyalás technikáját először háromszög közelitésű testekre dolgozták ki, melyet Gouraud általánosított tetszőleges poligonokra. Más néven intenzitás interpoláló eljárásnak mondjuk. 1. Minden csúcspontban, ahol háromszögek találkoznak, kiszámítjuk a találkozó lapokhoz tartozó normálisok átlagát , így kapunk csúcspontonként egy ún. "pszeudo-normálist" 2. A szórt háttérvilágítás és a diffúz visszaverődés megvilágítási modellje alapján kiszámítjuk a modelltérben a csúcsok intenzitásértékét a pszeudo-normálisból. 3. Vetítjük a háromszögeket a képsíkra és itt a csúcsok intenzitás értékeit interpoláljuk az élekre és lapokra. Phong shading: A normálvektor interpoláló árnyalásnak is mondott eljárásban a felületi normálvektorokat interpoláljuk és nem az intenzitásértékeket. Specular
visszaverődési modell 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 56 esetén jelentős a különbség a Gouraud és a Phong árnyalás között, az utóbbi sokkal élethűbben adja vissza a felületeken megjelenő fényfoltokat. Árnyékok, átlátszóság és tükröződés A láthatósági algoritmusok azt határozzák meg, hogy mely felületek láthatóak a nézőpontból, az árnyékokat előállító algoritmusok pedig azt , hogy melyek láthatóak a fényforrásból. A megvilágítási egyenletben az árnyékhatást úgy fejezhetjük ki, hogy a pontszerű fényforrásokra vonatkozó részt kiegészítjük egy S árnyékfaktorral, melynek értéke 1, ha a pont a fényforrásból látható, egyébként 0.
Árnyékképzés scan-line algoritmussal: Ez a legkorábbi eljárás. A fényforrást vetítési középpontként felhasználva a potenciális árnyékképző objektumok éleit rávetítjük az aktuálisan vizsgált pixelsort metsző poligonokra. Amikor a konverziós folyamat elér egy ilyen árnyék élhez, a megjelenített pixelek színét megfelelően változtatjuk. Árnyék testeket használó algoritmusok: Az árnyéktestek a térnek azt a részét töltik ki, melyeket egy-egy objektum eltakar a 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 57 fényforrástól. Az árnyéktestet egy objektum és egy fényforrás definiálja, határait pedig láthatatlan árnyékpoligonok alkotják. Azok a felületelemek,
melyek benne vannak legalább egy árnyéktestben, árnyékban lesznek. Több fényforrás esetén minden objektumhoz több árnyéktestet kell készíteni. A z-buffer algoritmus felhasználása árnyékok meghatározására: A z-buffer algoritmus kétszeri alkalmazásával ( nézőpontra és fényforrásra ).Az eljárás a fényforrást használva vetítési középpontként kitölt egy z-buffert, melyben a fényforrástól mért távolságokat rögzítik. Ezután a sima z-buffer algoritmus meghatározza a látható felületi pontokat, de az egyes pontok árnyalásakor a pontok térbeli koordinátáit áttranszformálja a fényforrás középpontú rendszerbe és a z koordinátákat összeveti az árnyék z - bufferben lévő távolságértékekkel. Ha a transzformált pont z koordinátája nagyobb, mint a bufferben tárolt érték, akkor a megvizsgált pont távolabb van a fényforrástól, tehát árnyékban van. Átlátszósági algoritmusok 1. Törésmentes átlátszósági
eljárások: interpoláló és szűrő algoritmusok, 2. Törő átlátszósági eljárások: a fénytörés törvényei szerint kezelik a testeken átmenő fénysugarakat. Az interpolációt használó algoritmusok az átlátszó felülethez és a mögötte lévő átlátszatlan felülethez tartozó sokszögekhez tartozó árnyalatokat lineárisan interpolálják. A szűrt átlátszóság algoritmusai az áttetsző felülethez tartozó sokszögeket szűrőként modellezik, melyek a különböző hullámhosszú fényt eltérő arányban engedik át. Több látható felület meghatározó algoritmust is kiegészítettek oly módon, hogy az átlátszóságot is képesek legyenek kezelni. Ilyen változata létezik a scan-line és a z-buffer algoritmusoknak A törő átlátszóságot és a teljes visszaverődést a raytracing algoritmus tudja igazán jól kezelni.
333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 58 Tükröződést kezelő algoritmusok: A tükörszerű visszaverődés modellezésére az ún. reflection mapping technikát dolgozták ki Ennél a megjelenítendő tükröző objektum köré olyan gömböt definiálnak, amelyre rávetítik az objektumot körülvevő modelltér képét. A gömb felületét ezután kétdimenziós textúraként használják fel. Természetesen ez csak közelíti a valódi tükrözést, ennek ellenére jól szemlélteti a tükrözést. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 59
333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 60 Felületek modellezése, textúrák Felületi részlet poligonok: Az objektumainkra jellemző fontosabb részleteket legegyszerűbben újabb poligonok , ún. felületi részlet poligonok felhasználásával tudjuk megjeleníteni. Ezeket egyszerűen felvisszük a bázisfelület megfelelő oldalára, azzal párhuzamosan elhelyezve. Az árnyalás során ezek egyszerűen helyettesítik a bázisfelület megfelelő részletét. Textúra: Kétdimenziós képek felületekre történő leképezésével a Catmull által kidolgozott texture mapping néven ismert algoritmus biztosit lehetőséget felületeink megjelenítésének finomítására. A művelet során felhasznált képet
texture map-nek, vagy textúrának, egyes elemeit pedig texelnek hívjuk. A számítógépen a mintázatok adatait textúra-tárolóterületek tartalmazzák. A mintázatok lehetnek: 1. egyszerű mintázatnak megfelelő bitmap-ok, 2. ciklikusan ismétlődő mintázatok, 3. változó tartalmú mintázatok 4. olyan változó tartalmú képi információkat tartalmazó textúrák, amelyeket speciális képi effektusok előállítására alkalmazunk ( pl. environment mapping ) Textúrák alkalmazása esetén a felületnek megfelelő képernyő rész minden egyes pixelje esetén meg kell vizsgálni, hogy a hozzátartozó színértéket a mintamező ( texture map ) mennyiben módosítja. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti
alapjai 61 Az (u,v) koordinátarendszerrel jellemzett textúra map leképezését a 3D-s tér pontjaira, görbült felületek esetén az alábbi példa lehet szemléletes: Legyen hozzárendelve az (u,v) koordinátarendszer (0,1), (0,0), (1,0) pontjaihoz a felületen 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 62 P1,P2,P3 pont. a P1, P2, P3 pontoknak megfelelő sík egy pontjához mutató x vektorra: x = p1+t1(p2-p1)+t2(p3-p1) válasszuk most t1-nek a textúra map u koordinátáját, t2-nek pedig a v koordinátáját 0<=u.v<=1 Ekkor: x(u,v) = p1+u(p2-p1)+v(p3-p1) megadja az összefüggést sík felület esetén a texture map és a P1, P2, P3 pontokkal meghatározott paralelogramma pontjai között.
Algoritmikus, "ismétlődő" textúrák esetén a felületre feszített mintázatot programmal adjuk meg. Szűrő és képjavító eljárások: A textúráknak a felületre feszítésekor kialakulhatnak torzulások. Anti-aliasing: A textúra elemekből képzett ferde vonalak lépcsőzetes kialakulásának megakadályozását célozza az Edge - antialiasing. A vonal széleinek és a vonal melletti textúrák színét átlagoljuk és ezt az átlagértéket jelenítjük meg a képen. Ezzel a "simítással" elmossuk a lépcsőket. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 63 Anisotrop Filtering: A feliratok a ferde textúrákon is olvashatók maradjanak. Bilinear texture filtering: A textúra
egy képpontjának színét a függőleges és vízszintes irányban mellette lévő 4 pixel színértékének átlagából számítjuk ki. Hatására az éles átmenetek elmosódnak. Mip-Mapping: A textúrát több különböző felbontásban is letároljuk. Ha közeledünk a nézőponttal egy textúrázott objektumhoz, akkor a pixelesedés kizárása érdekében egyre finomabb felbontású változatot feszítünk fel a felületre.A közelebbi textúrák finomabb felbontást kapnak, a távolabbiak elmosódottak lesznek. A pixelesedés jól megfigyelhető néhány közismert first person játék esetében. Perspective correction: A térhatás elérése érdekében a textúrákat kisebbitve, ferdítve visszük fel a felületre. 333D D
Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 64 Trilinear texture filtering: A bilinear texture filtering és a mip-mapping kombinációja.A távolság függvényében egy felülethez több textúra tartozik., melyet a bilineáris szűrésnél megismert átlagolást követően végrehajtott interpolációhoz használunk fel. Ezáltal a tárgyhoz való közeledésnél a textúra nem ugrásszerűen változik meg. Speciális effektusok létrehozása textúrákkal: Alpha Blending: Átlátszó objektumok modellezésére használjuk. Az ún alpha bufferben tároljuk az átlátszó textúra mögötti kép textúráját és megjelenítéskor az átlátszó és az alpha bufferben tárolt textúra színeit átlagoljuk. 333D D
Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 65 Bump mapping: A megvilágítási modellben szereplő normálvektorokat "zavarjuk össze". Ennek hatására a felület egyes részei kiemelkednek vagy lesüllyednek. Érdes, durva felületek modellezésénél használjuk. Environment Mapping, Reflection Mapping: Így modellezzük egy objektum környezetében lévő tárgyak visszatükröződését az objektum felszínén. A visszatükrözött tárgy textúráját használjuk fel a tükröződő felülettel rendelkező tárgy textúrájaként. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 66 Lightning Map: Reális fényviszonyok szimulálása. A környezeti
fényviszonyoknak megfelelő intenzitásértékeket tároljuk le textúraként és megjelenítéskor ezzel módosítjuk a pixelek színét. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 67 Fotorealisztikus képek készítése A megvilágítási modellek mellett arra is szükség van egy valósághű kép elkészítéséhez, hogy a jelenet objektumainak egymásra gyakorolt optikai hatását is kezelni tudjuk. 1. többszörös fényvisszaverődés 2. többszörös tükrözés 3. fénytöréssel áthaladó fény 4. reális árnyékhatások Az ezeket a tulajdonságokat is tartalmazó modelleket globális megvilágítási modelleknek nevezzük. Két alapvető típusú algoritmus használatos a leggyakrabban:
Nézőpontfüggő sugárkövetéses algoritmus ( RAYTRACING ) Nézőpontfüggetlen sugársűrűségen alapuló algoritmus ( RADIOSITY) A nézőpontfüggő algoritmusok diszkrét egységekre bontják a képsik ablakát, előállítva ezzel a pixeleknek megfelelő olyan pontok halmazát, amelyekre azután kiszámíthatják a megvilágítási értéket. 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 68 A nézőpont független algoritmusok a teret osztják fel, majd a fényviszonyokat úgy dolgozzák fel, hogy elegendő információhoz jussanak bármely pont megvilágítási értékeinek meghatározásához. A nézőpontfüggő algoritmusok könnyen kezelik a tükröződéseket, de a diffúz esetek nagy munkát
jelentenek számukra, a nézőpontfüggetlen algoritmusoknak a diffúz esetek mennek könnyen, a tükröződésekhez hosszabb eljárásokra van szükségük. Rekurziv raytracing: A legelterjedtebb algoritmus. A 3D-s modelltérben definiált objektumok és fényforrások leírása alapján egy nézőpontból a geometriai optika törvényei szerint követve a többszörösen visszaverődő fénysugarakat egy fotorealisztikus képet számolunk ki és jelenítünk meg. A nézőpontból minden egyes cellán keresztül egy vetítősugarat indítunk és meghatározzuk ezek metszéspontját a modelltér objektumaival. Ezeket elsődleges sugaraknak mondjuk Az elsődleges sugarak az objektumok felszínéről visszaverődnek, illetve átlátszó testeken töréssel áthaladnak, így keletkeznek a másodlagos sugarak., melyek újra visszaverődhetnek vagy megtörhetnek és így tovább. Az eljárás akkor ér véget, ha a fénysugár már nem ütközik egyetlen objektumba vagy fényforrásba sem,
vagy már elértük az általunk is megadható pontosságot egy lépésszám megadásával. Ha egy elsődleges sugár visszaverődve egy felület egy pontjáról eltalál egy fényforrást és nem kell tükröződést ill. fénytörést figyelembe venni, akkor az elsődleges sugár képzésénél felhasznált cellának megfeleltetett pixel színe a megvilágítási modellből közvetlenül számítható. Ez azonban a pixeleknek csak az elsődleges színe lesz, mert előfordulhat, hogy a szóban forgó felületi pontot az algoritmus későbbi lépéseiben újabb sugár is érinteni fogja. A felületi pontoknak megfeleltetett pixel színének kiszámításához általános esetben több típusú másodlagos sugarat is nyomon kell követni. Ezek lehetnek: visszatükrözött sugarak, megtörő sugarak, a fényforrással összekötő sugarak. Ha a fényforrással összekötő sugarak, melyeket árnyéksugaraknak is neveznek, beleütköznek
333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 69 valamilyen objektumba mielőtt a fényforrást elérnék, akkor a felületi pont árnyékban van és a megfelelő fényforrást is ki kell hagyni a felületi pontot árnyaló megvilágítási egyenletből. A fentiek miatt az algoritmus tiszta formában nagyon időigényesen lenne alkalmazható, ezért: Backward Raytracing: Mivel a fényforrásokból kiinduló fénysugarak többsége olyan, hogy nem jut el az ablakon keresztül a nézőpontba, jelentősen csökken a számításigény, ha ezekkel nem foglalkozunk. Ezért az algoritmus csak olyan sugarakat vesz figyelembe, amelyek az ablak celláin keresztül eljutnak a nézőpontba. A fény terjedésével ellentétben nem a fényforrásból kiinduló
fénysugarakat kezeli, hanem azokat a nézőpontból indított vetítősugarakat, amelyek visszafelé ( backward) eljutnak a fényforrásba. Bounding Volumes:A raytracing legidőigényesebb része a vetítősugarak és az objektumok metszéspontjainak kiszámítása. csak azokat a sugarakat vesszük figyelembe, amelyek metszik a befoglaló ( bounding ) testeket is. A raytracing, mint képpontossági algoritmus, raszterfüggő ezért a nézőpont minden egyes változtatása után újra kell az egész képet kiszámítani. Raytracing képek: 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 70
333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 71 A radiosity algoritmus: A felületek közötti fényenergia csere fizikai törvényeire alapozva dolgozták ki. Először a jelenet összes objektumának felületére meghatározzák a visszavert és a felület saját sugárzásából adódó fénymennyiséget, melyből származtatható a globális megvilágítási modell. A fényviszonyokat így csak egyszer kell kiszámítani, igaz ez sok erőforrást igényel. Minden felület fénysugárzónak tekintendő és a fényforrások sem pontszerűek, hanem véges kiterjedésű felületekkel vannak modellezve. Radiosity képek:
333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 72 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 73 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 74 333D D
Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 75 A SZÁMÍTÓGÉPES GRAFIKA ELMÉLETI ALAPJAI . 1 AZ EMBERI LÁTÁS. 2 Biológiai alapok: .2 Kontúrlátás, térlátás és mozgókép érzékelés .4 FÉNYTANI ALAPFOGALMAK . 6 Fényvisszaverődés testek felületéről: .8 Átlátszó testek, fénytörés: .9 SZÍNTEREK. 11 A színkeverés alapjai:.11 Indexelt színkezelés palettával: .13 Többcsatornás színkódolás:.13 A VEKTORGRAFIKA ÁLTALÁNOS JELLEMZŐI . 16 A modelltér és a vektorgrafikus adatbázis kapcsolata.16 Vektorgrafikus geometriai objektumok adatbázis adatai .16 A vektorgrafikus objektumok kapcsolatrendszere .17 A vektorgrafikus geometriai objektumokhoz rendelt tulajdonságok.17 A modelltér geometriai objektumaihoz hozzárendelt mennyiségi és szervezési információk .20 A GEOMETRIAI MODELLEZÉS ALAPJAI . 21 GÖRBE ÉS FELÜLET MODELLEZÉSI MÓDSZEREK . 24 Interpoláció és approximáció .24
333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 76 VEKTORGRAFIKUS GEOMETRIAI MODELLEZÉS. 28 Huzalvázmodellezés.28 Palástmodellezés: .30 Konstruktív tömör test modellezés: Constructive Solid Geometry CSG .33 Térfogatmodellezés elemi sejtekkel / 2D pixel helyett 3D voxel /:.34 MŰVELETEK A MODELLTÉR VEKTORGRAFIKUS OBJEKTUMAIVAL . 35 KIVÁGÁS ÉS LEKÉPEZÉS. 39 LÁTHATÓ KÉP MEGHATÁROZÓ ALGORITMUSOK . 42 Hátsó felületek eltávolítása: ( Back Face culling ) .42 Minimum maximum teszt:.43 A Z-BUFFER vagy mélységtároló algoritmus:.43 Mélységi rendező algoritmusok ( Depth-Sort):.44 Bináris térfelosztó fák ( BSP = Binary Space Partitioning ): .45 Scan-line algoritmusok: .45 Területfelosztó algoritmusok:.46 Sugárkövetéses
algoritmusok: ( Raytracing ) .46 MEGVILÁGÍTÁS ÉS ÁRNYALÁS . 48 Fényforrások modellezése:.48 Megvilágítási modellek: .50 Ambient light: .51 Diffúz visszaverődés ( diffuse reflection ):.52 Fényes fényvisszaverődés: ( specular reflection ): .52 Lokális megvilágítási algoritmusok: .53 Flat shading .54 Gouraud shading .54 Phong Shading .55 ÁRNYÉKOK, ÁTLÁTSZÓSÁG ÉS TÜKRÖZŐDÉS . 56 333D D Dgggaaarrrfffiiikkkaaa A számítógépes grafika elméleti alapjai 77 Árnyékképzés scan-line algoritmussal: .56 Árnyék testeket használó algoritmusok: .56 A z-buffer algoritmus felhasználása árnyékok meghatározására: .57 Átlátszósági algoritmusok.57 Tükröződést kezelő algoritmusok: .58 FELÜLETEK
MODELLEZÉSE, TEXTÚRÁK. 60 Textúra: .60 Szűrő és képjavító eljárások:.62 Speciális effektusok létrehozása textúrákkal:.64 FOTOREALISZTIKUS KÉPEK KÉSZÍTÉSE . 67 Rekurziv raytracing: .68 A radiosity algoritmus: .71 333D D Dgggaaarrrfffiiikkkaaa