• Nem Talált Eredményt

A fénytörés, áttetsz®ség és átlátszóság

In document 1.1. A számítógépes graka célja (Pldal 85-91)

BEVEZETÉS A SZÁMÍTÓGÉPES GRAFIKÁBA

1.4. Fénytan, megvilágítás és árnyékolás

1.4.3. A fénytörés, áttetsz®ség és átlátszóság

Két közeg határfelületére érve a bees® fény egy része visszaver®dik, a többi megtörik és a másik közegben halad tovább. Ha a két közeg átlátszó anyagból van, akkor a fénysugár az egyik átlátszó anyagból egy másik átlátszó anyagba hatol, csak egy kis része ver®dik vissza, és a nagyobbik része a fénysugárnak megváltoztatott iránnyal halad tovább.

Ezt a jelenséget fénytörésnek (refrakció) nevezzük.

A fénytörés törvényei:

A bees® fénysugár, a megtört fénysugár és a beesési mer®leges egy síkban A beesési szög szinusza egyenesen arányos a törési szög szinuszávalvan.

(Snellius-örvény, 1620):sini=n2,1·sinβ. A megtört fénysugár és a be-esési mer®leges által bezárt szöget törési szögnek nevezzük. Az n2,1 arányossági tényez® a második közegnek az els® közegre vonatkozó relatív törésmutatója, amelynek értéke a két közegben mért fénysebes-ségeknek a hányadosa:n2,1=c1/c2.

A beesési szög és a törési szög szinuszának hányadosa ugyanarra a két közegre állandó, ez a relatív törésmutató.

Ha az els® közeg légüres tér, akkor a második közegre vonatkoztatott törésmutatót abszolút törésmutatónak nevezzük.

Ha a fénysugár mer®leges a felületre, akkor a fény irányváltoztatás nélkül halad tovább.

Ha a fénysugár párhuzamos oldalú (planparalell) lemezen haladva ke-resztül kett®s törést szenved, a fény iránya nem változik, csak eltolódik az eredeti iránytól.

Ha a fény prizmán keresztül halad át, akkor is kétszeres törést szenved, de a fény iránya megváltozik.

Az egyes objektumok átlátszók vagy áttetsz®k lehetnek. A fény terjedése az átlátszó objektumokon keresztül spekuláris, míg az áttetsz®kön keresztül diffúz.

Az 1.49. ábrán a 3-as és 4-es objektum átlátszatlan, az 1-es és 2-es pedig átlátszó, ugyanazzal a törésmutatóval. Ha nem vesszük gyelembe a fénytörést, az afénysugár a 3-as objektummal találkozna. A valóságban a törés miatt a 4-es objektumot metszi, amely emiatt megvilágított objektum l4-esz. Hasonlóan, a fénytörés gyelembevétele nélkül, abfénysugár a 4-es objektumot metszené a 3-as helyett [21].

A fénytörés torzítja is az objektumokat a perspektivikus vetítéshez hason-lóan. A valóságh¶ség érdekében számolni kell ezzel is.

Ha egy látható felület átlátszó, a színét a látható felület színének és a rög-tön utána található felület színének az összetevéséb®l kapjuk meg, a következ®

interpolálási képletet használva [24]:

Iλ= (1−kt1)·Iλ1+kt1·Iλ2, 06kt161,

1.48. ábra. A fénytörés

1.49. ábra. A fénytörés szerepe

aholkt1a látható felület átlátszhatóságát méri az adott pontban. Hakt1= 0, akkor a felület átlátszatlan, ezért a pont színe a felület színe lesz. Hakt1= l, a felület tökéletesen átlátszó, és a színe nem járul hozzá a pont színéhez. Ha kt1= l és a hátul lev® felület szintén átlátszó, a számításokat rekurzívan folytatjuk, mindaddig, amíg egy átlátszatlan felületet kapunk vagy a háttérhez értünk.

Az átlátszóság eme megközelítése nem ad jó eredményt a görbe felületeknél, azért, mert a felület körvonalához közeledve, az anyag vastagsága megváltoztatja az átlátszóságot. Ebben az esetben a következ® egyszer¶ nemlineáris megköze-lítést használjuk:

kt=ktmin+ (ktmax−ktmin) [1−(1−Nz)m],

aholktminésktmaxaz objektum minimális, illetve maximális fénytörését jellemzi, Nz a pontba húzott normálvektorz komponense és megy hatvány, amely az átlátszhatóságot jellemzi (a használt értékek általában 2 és 3).

Ez a képlet meghatározza a felület áttetszési együtthatóját.

1.4.4. Árnyékolás

Ha a meggyel® egy fényforrás által megvilágított színtér objektumait nézi, a fényforrás pozíciójától különböz® pozícióból, az objektumok által létrehozott árnyékokat is meggyelheti.

Egy árnyék két részb®l áll: a valódi árnyékból és a félárnyékból. A valódi ár-nyék s¶r¶, fekete és jól elkülöníthet® határa van. A félárár-nyék körülveszi a valódi árnyékot. A félárnyékban lev® objektumok egy kis fényt kapnak a fényforrástól.

A pontszer¶ fényforrások csak valódi árnyékot hoznak létre.

1.50. ábra. Árnyék és félárnyék

Az árnyékok meghatározása hasonló feladat, mint az objektumok látható-ságának a meghatározása (lásd A sugárkövetési algoritmus cím¶ fejezetet). Ezért

egy árnyékolt kép létrehozása a látható felületek kétszeri meghatározását jelenti:

egyszer a fényforrások pozíciójából, majd a meggyel® pozíciójából gyelve a színteret.

Két típusú árnyék létezik: sajátos és nem sajátos árnyékok [66]. A sajátos árnyékot az objektum hozza létre úgy, hogy a fény nem jut el az egyik oldalához.

A nem sajátos árnyék egy másik objektum által létrehozott árnyék.

A nem sajátos árnyékot meg lehet határozni úgy, hogy fényforrás pozíci-ójából levetítjük azokat az oldalakat, amelyek nincsenek sajátos árnyékokkal árnyékolva. Az így kapott sokszögek megadják a nem sajátos árnyékot.

Egy jobb módszer az, ha az objektum körvonalát vetítjük le a fényforrás pozíciójából. Egy felület pontja, amely látható a meggyel® pozíciójából, de a fényforráséból nem, az árnyékolási intenzitással vagy más objektumoktól szár-mazó intenzitással lesz megjelenítve.

Egy felületP pontjában a fény intenzitásának a kiszámítása a következ®-képpen alakul: ajfényforrásból elér aPpontba.

1.5. A modellezés

A generatív számítógépes grakában és a képfeldolgozás során nem a valódi objektumokat (valóságbeli tárgyakat), hanem azok egy modelljét dolgozzuk fel.

A modellezés során a valós tárgyakból entitásokat absztrahálunk. Az ember a körülötte lév® tárgyakat, valós entitásokat észreveszi, leegyszer¶síti, meg-különbözteti és rendszerezi. A végs® cél a bonyolult rendszer megismerése, m¶ködésének megértése, a felhasznált eszköz pedig a modellezés. A modellezés során az ember tulajdonképpen egy alapvet®, elemi gondolatmenetet (algorit-must) használ, amelynek segítségével absztrahál, megkülönböztet, osztályoz, általánosít specializál, részekre bont és kapcsolatokat épít fel.

Az absztrakció az a szemléletmód, amely segítségével egy végtelenül bo-nyolult rendszert leegyszer¶sítünk úgy, hogy csak a lényegre, a cél elérése érdekében feltétlenül szükséges részekre koncentrálunk. Az absztrahálás tehát azt jelenti, hogy elvonatkoztatunk a számunkra pillanatnyilag nem fontos, kö-zömbös információktól, és kiemeljük az elengedhetetlen fontosságú részleteket.

A megkülönböztetés és az osztályozás szinte automatikus folyamat. Az entitásokat a számunkra lényeges tulajdonságaik, viselkedési módjuk alap-ján megkülönböztetjük és kategóriákba, osztályokba soroljuk ®ket, oly módon,

hogy a hasonló tulajdonságokkal rendelkez® entitások egy osztályba, a különbö-z® vagy eltér® tulajdonságokkal rendelkekülönbö-z® entitások pedig külön osztályokba kerülnek. Az osztályozás folyamata tulajdonképpen az általánosítás és a speci-alizálás m¶veleteinek segítségével valósul meg. Az entitások között állandóan hasonlóságokat vagy különbségeket keresünk, hogy ezáltal b®vebb vagy sz¶kebb kategóriákba, osztályba soroljuk ®ket. Minden entitás valamilyen osztály példá-nya, rendelkezik osztályának sajátosságaival, átveszi annak tulajdonságait.

1.51. ábra. A modellezés folyamata

A generatív számítógépes grakában a feldolgozott grakus objektumokat (testek, felületek, alakzatok, görbék stb.) modell-, objektum- vagy színterekben (scene) írjuk le matematikai eljárások segítségével. A modellterek általában két-vagy háromdimenziós koordináta-rendszerek (2D, 3D).

A pixelgraka modelltere kétdimenziós egész koordináta-rendszer.

A vektorgraka modelltere két- vagy háromdimenziós valós euklidészi tér lebeg®pontos koordinátaértékekkel.

1.5.1. 3D modellez®k

A 3D modellez®k olyan alkalmazások, amelyek a valóságból vett objek-tumokat dolgoznak fel. Az objektumok úgy viselkednek vagy úgy néznek ki,

hasonló struktúrájuk, esetleg néhány zikai tulajdonsággal rendelkeznek (tö-meg, térfogat), mint a valóságban. A 3D modellez®k moduláris felépítés¶ek.

Egyik modul kezeli az objektumok térbeli modellezését, egy másik a zikai tulajdonságokat, egy harmadik a vetítést, megvilágítást (perspektíva, fényforrá-sok, atmoszféra, a fény terjedésének törvényei), és esetleg létezik egy animációs modul is, amely az objektumok vagy fényforrások mozgását valósítja meg. A mo-dellez®k legújabb generációi tartalmaznak egy interaktivitás-modult is, amely segítségével a felhasználó dinamikusan közbeléphet és interaktívan módosít-hatja az objektumok tulajdonságait.

A [20] alapján a következ® modellez® szoftvereket tudjuk megkülönböz-tetni:

Felületmodellez®: egy vázra rányújtunk egy b®rt. A váz sokszö-gekb®l vagy görbékb®l állhat. Az eredmény egy struktúra, amelynek térfogata van, de nincsenek zikai tulajdonságai: tömeg, s¶r¶ség stb.

Szilárdtest-modellez®: több modellezési lehet®séget nyújt, viszont a számítási id® észrevehet®en megn®. A szilárdtest-modellez®t nehezebb kezelni, mint a felületmodellez®t, viszont le tudják kezelni a s¶r¶séget, tömeget, súrlódási tényez®ket, gravitációs er®ket, ütközéseket stb., így a 3D objektumok viselkedését közelebb hozzák a valósághoz.

Sokszög-modellez®: konvex sokszögek összességéb®l állítja össze a 3D objektumot. A hátránya, hogy a görbe felületeket mindig sík felületekkel közelíti meg. El®nye, hogy egyszer¶bb számításokat kell elvégezni, és az algoritmusok is sokkal egyszer¶bbek, gyorsabbak.

Spline-görbéken alapuló modellez®: a 3D objektumokat (felületek vagy szilárd testek) matematikailag könnyen leírható görbékkel közelítik meg (spline görbék). Nagyobb rugalmasságot és pontosságot nyújtanak, mint a sokszög-modellez®k. A legtöbb modellez® program egyenletes spline-okon alapszik, egy modernebb verzió a NURBS (Non-Uniform Rational B-Splines) modellez®. A NURBS esetében a pontok nem egyenletesen vannak elosztva a görbén, így sokkal jobban meg tudják közelíteni a modellezett objektumokat. A pontosság azonban sok matematikai m¶-veletet igényel, és a renderelési algoritmusuk kivitelezése még nehézkes és lassú.

1.5.2. 3D testek modellezésének módszerei

Minden 3D modellez® szoftver rendelkezik egy pár alaptulajdonsággal, eze-ket foglaljuk össze a következ®kben [20]:

Primitívek használata: minden modellez® alkalmazás ismer néhány 3D primitív objektumot: gömböket, kúpokat, hengereket, kockákat és néha komplexebb objektumot is, mint a tórusz, dodekaéder stb. Ezekb®l a primitívekb®l komplexebb objektumokat lehet el®állítani.

Extrudálás (extrusion): a 3D modellezés egyik alaptechnikája, amely abból áll, hogy egy 2D objektumot (kör, téglalap, sokszög) eltolunk egy görbe vagy egyenes mentén a harmadik dimenzióba, így létrehozunk egy 3D objektumot (pl. egy kör extrudálásával egy egyenes mentén egy hengert kapunk). Az extrudálás parametrizálásával (a 2D objektum mé-retezése, forgatása) a végs® objektum formáját befolyásolhatjuk.

Forgástest kialakítása (lathing): egy görbe tengely körüli forgatásával generálunk 3D testeket.

B®rözés (skinning): egy több görbéb®l álló vázra kihúzunk egy felü-letet (hasonló egy hajó építéséhez, ahol el®bb a metszeti síkokat építik meg, majd ezek haránt irányú felületekkel lesznek összekötve). A szer-kezet minden bordája egy ponthalmaz, amelyen keresztülmegy az adott felület.

Vertex-szerkesztés: megadja azt a lehet®séget, hogy a 3D objektum bár-mely pontjának a pozícióját lehessen változtatni. A vertex-szerkesztés kétfajta: statikus, amikor a vertexek egymástól függetlenül mozognak, és dinamikus, amikor egy vertex elmozdítása maga után vonja a szomszé-dos vertexek kisebb mértékbeli elmozdulását (így egy simább felületet kapunk).

Boole-m¶veletek: a legtöbb számítást igényl® m¶veletek, két vagy több 3D objektum egyesítéséb®l, különbségéb®l, metszetéb®l komplexebb 3D formát állítunk el®.

In document 1.1. A számítógépes graka célja (Pldal 85-91)