Ha érdekel a játékfejlesztés, feltétlen látogass el csapatom oldalára:
http://www.dragonsimmax.neobase.hu
Ha érdekel a játékfejlesztés, feltétlen látogass el csapatom oldalára:
http://www.dragonsimmax.neobase.hu
Elmaradtam a blogolással és bocsesz mindenkitől aki érdeklődik, és esetleg a motorra vár. Késésem és időhiányom oka, hogy játékfejlesztésbe fogtunk kicsiny csapatommal, és ez gyakorlatilag minden időmet felemészti. Viszont a motor folyamatosan fejlődik a tervezet játékra való teljes felékészítés kapcsán. Néhány időközben szükségessé vált dolgot átírtam, illet ve kiegészítettem. Ilyen többek között a mesh építés, vagy ablakozó technika, de gyakorlatilag minden részhez hozzányúltam egy kicsit.
Azért írom le kissé szájbarágósabban a témát, hogy a kevésbé hozzá értők számára is világos legyen a dolog.
A 3D megjelenítés során a felhasznált képeket - legyen az bármilyen tartalmú – textúráknak tekintjük, és akként is kezeljük. Tehát minden, a képszerkesztő programból kikerülő kép, további munkálatokra szorul. Ezek a munkálatok általában egyszerű konvertálási folyamatok.
A legtöbb motor képes különböző fájlformátum, textúra ként való alkalmazására, ezek a formátumok általában: BMP, TGA, PNG, JPG, DDS.
Azonban a textúrák sajátos képek, amelyek használatakor bizonyos szabályokat figyelembe kell venni. Az egyik ilyen sajátosság a méret. A 3D alkalmazások többsége egyenlő oldalhosszúságú, és a 2 valamely hatványaként méretezett képeket használ textúraként. (Ez memóriarendezési okokból adódik). Tehát a textúráink mérete általában: 64x64, 256x256, 512x512, 1024x1024 illetve a legtöbb videokártya maximálásian a 2048x2048-as textúra méretet fogadására képes.
Az egyes fájlformátumok tulajdonságait megvizsgálva:
A BMP fájl a legegyszerűbb bitmap- kép, amely természetesen rendelkezik tömörítési technikával, persze ez a tömörítés csak lemezterület megtakarítására szolgál a megjelenítéshez a képet a memóriába tömörítetlenül tárolja program. Így egy kép, memóriában foglalt mérete:
Szelesség*hosszúság*byte szám. Vagyis egy 1024*1024 pixeles kép, amit 32 biten tároltunk (4 Byte) a memóriában 1024*1024*4 = 4194304 Byte vagyis 4096 Kbyte és ez 4 MB. Bár a megjelenített kép minősége a lehető legjobb, viszont a legtöbb memóriát is igényli.
A TGA, PNG és JPG formátumokról általában elmondhatjuk, hogy funkcionálisan jóval több tulajdonsággal rendelkeznek, mint a BMP. Tömörítésük sokkal hatékonyabb, de mint tudjuk, például a JPG esetén veszteséges a tömörítés. Továbbá a memória felhasználás terén ugyan azzal a ténnyel kell szembesülnünk, mint a BMP esetén, vagyis a kép megjelenítéséhez viszonylag nagy memória igény társul. A lemezen való helyfoglaláshoz használt tömörítés nem egyenlő a memóriaigénnyel. Ezeket a képformátumokat a motornak, amennyire lehetséges tömörítenie kell a felhasználáshoz, és ez idő veszteséggel járhat, vagyis lassul például a betöltési folyamat.
Végül a DDS formátum, amelyet kimondottan játékszoftverek számra fejlesztettek. DirectDraw Surface. Ez a formátum a fentiekhez hasonlóan tömörített formátum, de már olyan formában tömöríti a képet, hogy a motor számára nincs szükség további tömörítésre, azt azonnal a memóriába képes olvasni és onnan közvetlenül használni is. A lemezen tárolt méret azonos lesz a memória igénnyel. A DDS formátum számos tulajdonsággal rendelkezik. Ezek közül a DSX Engine, a DXT belsőformátumok meghatározását, preferálja elsősorban.
DXT1 – 4 bpp RGB (no alpha) formátum. A kép pixelei 4 bit per pixelként lesznek eltárolva RGB komponens alapján. A legkisebb memória igényű formátum.
DXT1 – 8 bpp ARGB (1 bites alpha). A kép pixelei 8 bit per pixelként lesznek eltárolva, és a formátum már tartalmaz egy alfa csatornát, amely gyakorlatilag 1-0 értékekkel bír (ezért 1 bites), tehát a csatornában annyit tárol, hogy megjelenik-e a pixel vagy sem.
DXT3 – 8 bpp ARGB (explicit alpha). A kép pixelei 8 bit per pixelként lesznek eltárolva, és a formátum már tartalmaz alfa csatornát, amelyben a pixelhez rendelt áttetszőség mértékét tároljuk. (Ez az áttetszőség természetesen csak arra az esetre érvényes, ha az alfa csatornával a kép részleteinek láthatóságára használjuk).
DXT5 – 8 bpp ARGB (interpolált alpha). A kép pixelei 8 bit per pixelként lesznek eltárolva, és a formátum már tartalmaz alfa csatornát, amelyben a pixelek úgy mondd, interpolált értékeket kapnak, vagyis az áttetszőség sokkal szebb lesz, mint az előző formátum esetén.
Még egy formátumot kiemelnék a DDS belső formátumai közül és ez a 8.8.8.8 ARGB formátum, amely mint bitmap-et menti a képet, vagyis nem történik tömörítés, tehát a memóriában a fájl méretét foglalja, viszont a legszebb minőséget produkálja, mind szín komponensek, mind alfa csatorna használat terén. Ezt akkor érdemes használni a megjelenített minőség sokkal fontosabb, mint a memória használat mértéke.
Az MSN partnereim számára küldtem egy körlevelet, mert többségük olyan személy akivel játékfejlesztés kapcsán ismerkedtem meg.
Ezt a levelet azért teszem itt közzé, hogy ha bárki érdekelődne a téma iránt elolvashassa.
Nagyon sok szónoki beszédett hallhattunk már arról, hogy Pascal nyelven nem lehet játékot készíteni, nem arra való. Az elmúlt 16 év alatt nekem ezt az állítást nem sikerült belátnom sőt... Nem egy játék született magyar műhelyekben, amelyek igen is Pascal nyelven íródtak, és megállták helyüket a játékpiacon, és nem csak a hazain, de világviszonylatban is ismerté váltak.
Ha érdekel a játékfejlesztés látogassal el ide:
http://www.dragonsimmax.neobase.hu
Legelső mondataimban köszönetet szeretnék mondani mind azoknak, akik segítették és segítik a mai napig is a munkámat. Elsősorban Syam-nak, aki mint kétlábon járó OpenGL enciklopédia van szívesen a segítségemre, és aki nélkül még ma is a startvonalon vesztegelnék. De ugyan ilyen hála és köszönet minden MSN partneremnek, aki valamilyen módon segíti a fejlesztést. Köszönöm!
Jelen blog segítségével szeretném folyamatosan publikálni a fejlesztés részeredményeit, állapotát és természetesen nem titkolt szándékom, hogy a teszteléshez partnereket, lelkes fejlesztőtársakra találjak.