2010. május 30., vasárnap

Virtuális világmodellek felépítése

A számítógépes grafika célja röviden az, hogy egy adott objektumról, ami a virtuális térben létezik egy a felhasználó számára is befogatható fényképet készítsen, és a számítógép képernyőjére varázsolja. A virtuális világ leírását fogjuk modellezésnek nevezni, amit majd a képszintézis fog követni.
A modellezés történhet saját magunk által meghatározott fix adatokkal vagy használhatunk valamilyen modellező programot is, aminek a rögzített utasításai és elemkészletei segítségével alkothatjuk meg a virtuális világot. Ha mi magunk akarunk egy modellt létrehozni, akkor az első és leglényegesebb feladatunk az, hogy megragadjuk a grafikus objektum lényegi jellemzőit, és az így absztrakcióval képezett számítógépes modellt algoritmusokkal dolgozzuk fel. Mindig ügyelnünk kell arra, hogy a modell által kapott eredményt szembesítjük a valódi objektumról szerzett tapasztalatainkkal. Például, ha egy pohár számítógépes modelljét készítjük el matematikai módszerekkel (felületi jellemző egyenletekkel), akkor az is hogy adott fényforrás esetén megfelelő fény és árnyékhatásokat mutasson. Ahhoz, hogy majd objektumokat tudjunk definiálni a mi kis világunkba, először létre kell hoznunk egy adott teret, amibe ezeket el fogjuk helyezni. Ehhez pedig értelemszerűen valamilyen koordináta-rendszer szükséges. Ezek általában két vagy háromdimenziós koordináta-rendszerek, amelyekben a grafikus objektumokat matematikai függvények (pl.: gömb egyenlete) és geometriai jellemzők (p.: egy háromszög három csúcsába mutató vektorok koordinátái) határozzák meg.


A matematikai törvényszerűségekből algoritmusok vezethetők le, és paraméter állományok következnek. Ezek számítógépes megfelelői, a grafikus szoftverek rutinjai, gyorsítókártyák áramkörei. A raszter grafika modelltere például egy kétdimenziós egész koordináta-rendszer, melyben a képpontoknak egész koordináták felelnek meg. Ugyanis a tárgyak térbeli helyzetét egy koordináta-rendszerhez viszonyítva tudjuk megadni. A számítógépes grafikában a koordináta-rendszerek a következő feladatokat látják le: a modelltérben, koordináta-rendszerekben írjuk le a testeket, felületeket, a háromdimenziós tért ezek segítségével vetítjük le a kétdimenziós nézetre, valamint transzformációkra használhatjuk. A tér minden pontját egyértelműen meghatározza a koordináta-rendszer síkjától való távolságokat tartalmazó számhármas, azaz a koordináták. A leggyakrabban használt ilyen rendszer a Descartes-féle derékszögű koordináta-rendszer. Természetesen a derékszögűn kívül legelterjedtebbek még a hengeres és a gömbi koordináta-rendszerek. Azt hogy melyiket érdemes alkalmazni azt az ábrázolt alakzatok szimmetriája határozza meg. Természetesen a különböző koordináta-rendszerek között bijektív (kölcsönösen egyértelmű) megfeleltetést biztosítanak bizonyos képletek. Van pár dolog, amit végig kell gondolni, mikor egy koordináta-rendszert vizsgálunk. A legfontosabb ezek közül, hogy hogyan szándékozunk kezelni az objektumokat. Ha azok (x,y,z) hármasokkal vannak definiálva, akkor szükség lesz némi munkára, hogy ha beolvasásnál gömbi koordinátákba szeretnénk konvertálni azokat. Kezdőknek hadd mondjam el, hogy bár Világegyetemünk minden irányban végtelen lehet, ez nem igazán programozható. Megfelelően kis számokra kell szorítkoznunk, hogy túlcsordulás nélkül szorozhassuk, a rendszer összeomlása nélkül oszthassuk és az előjelbit véletlen átfordulása nélkül, adhassuk össze azokat.


A móka még csak most kezdődik. A Világegyetem definiálásának legegyszerűbb formája egyszerűn csak azt mondani , hogy az a (-65536, -65536, -65536) és a (65536, 65536, 65536) pontok által meghatározott "doboz" koordinátái közé szűkül. Erre gyakran egyetemes vagy abszolút koordináta-rendszerként utalnak. Ekkor a Világegyetem minden objektuma néhány ebbe a határba eső koordináta köré fog csoportosulni, valamint ez tartalmazza a nézőpontot is. Néhány stratégia engedélyezi a Világegyetem szélének, peremének kezelését. Egyrészt megalkotható a Világegyetem úgy is, hogy a kockát (x, y, 65536) koordinátákon elhagyó objektum az (x, z, -65536)-on újra megjelenik, de úgy is, hogy az objektumok "visszapattanjanak" vagy megálljanak annak peremén. Más oldalról a perem lehet átlátszó vagy átlátszatlan is.
Egy abszolút koordináta-rendszerben minden objektumot a te nézőpontodból látsz. Ez rengeteg érdekes matematikai dolgot von maga után, amelyekkel később foglalkozunk. Viszont általánosságban elmondható, hogy egy objektum hozzád viszonyított pozíciója annak relatív pozíciója (ez elég zűrös, ha a Világegyetem peremén túl is láthatsz). Majd, miután ez a pozíciója kiszámítódott, el kell forgatni a te Világegyetemben felvett irányod szerint.
Egy másik lehetőség tér megadására a relatív vagy nézőközéppontú koordináta-rendszer. Az ilyen rendszerekben a nézőpont mindig a (0,0,0) koordinátákon helyezkedik el, és minden más a Világegyetemben ehhez a pozícióhoz viszonyul. Az objektumok irányainak kezelésénél ez idegesítő matematika használatára kötelez, de meglepő módon nem kell foglalkozni a Világegyetem peremével. Ez a "Világegyetem peremének" Schrödinger macskája módszere... Már olyan értelemben, hogy az érzékelést leghűbben követve, ami nem látszik, azzal nem is foglalkozik. Viszont egy relatív koordináta-rendszer végtelen tér "véges gépen" való illúziójának keltésére is használható.
A modellezés során a számítógépbe bevitt információt a program adatszerkezetekben tárolja. Az adatszerkezetek többféleképpen kialakíthatók. A virtuális világ szerkezete hierarchikus. Azaz a világ objektumokat tartalmaz, az objektumok primitív objektumokat, a primitív objektumok geometriáját pedig leggyakrabban pontok, ritkábban paraméterek határozzák meg.
Egy-egy objektumnak vannak sajátos tulajdonságai, mint például neve, a modellezési transzformációja, stb. A primitíveknek többféle típusa is lehetséges, gondoljunk csak a szakaszra, görbére, felületre, vagy testre. A primitívek tulajdonságai a primitívek típusától függenek. Ha magunk írunk grafikus rendszert, akkor azt célszerű felkészíteni más elterjedt formátum megértésére, mert így mások fáradságos munkájával előállított modelleket is használhatjuk. Elegendő egy gyakori formátum értelmezését létrehozni, mert mára már számos olyan program létezik, amelyek a szabványos formákat egymásba átviszik. Ilyen szabványos fájlformátumok a következők (IGES, NFS, MGF, stb.) Ezeken kívül még vannak a nem szabványos, de elterjedt modellező programok formátumai, mint pl. a POVRAY, 3D-Studio, AutoCad, stb.).

0 megjegyzés :

Megjegyzés küldése