DSX Engine 3D - Delphi és Lazarus

Elérkezettnek látom az időt arra, hogy lassan publikussá tegyem mind azt, amin 2007 óta dolgozom. Egy olyan szoftver motor készítésén fáradozom, amely lehetőséget nyújt a Delphi és Lazarus környezetben 3D alkalmazások készítésére. Az eddigi eredményeimet és tapasztalataim kívánom megosztani a tisztelt közönséggel, és természetesen várom a tanácsokat, ötleteket.

Friss topikok

  • Tommy DSX: @syam: Köszönöm! :) És remélem az új képek is hasonlóan tetszeni fognak. (2009.05.12. 08:22) Domborzat

Naptár

december 2024
Hét Ked Sze Csü Pén Szo Vas
<<  < Archív
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

Ha érdekel a játékfejlesztés...

2009.07.12. 16:42 | Tommy DSX | Szólj hozzá!

Ha érdekel a játékfejlesztés, feltétlen látogass el csapatom oldalára:

http://www.dragonsimmax.neobase.hu

 

Címkék: http://blog.hu/admin/index.php?tabpath=%2fadmin%2fblogs%2f76314#

Elmaradtam a blogolással...

2009.06.28. 22:39 | Tommy DSX | Szólj hozzá!

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.

 

Textúra kezelés

2009.05.27. 21:27 | Tommy DSX | Szólj hozzá!

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.

 

Egy körlevél mindenkinek, akit érdekel a játékfejlesztés

2009.05.16. 18:04 | Tommy DSX | Szólj hozzá!

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.

dsxengine.blog.hu/media/file/Tisztelt%20MSN%20Partnerem.doc

Mi is az a DSX Engine?

2009.03.29. 20:43 | Tommy DSX | Szólj hozzá!

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.

Üdvözlés helyett...

2009.03.29. 19:01 | Tommy DSX | Szólj hozzá!

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.

süti beállítások módosítása