Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

SZÁMÍTÓGÉPES GRAFIKA 1. gyakorlat. Elérhetőségek Honlap: lunyi.web.elte.hu Egyéb lehetőségek: – Megkeresés.

Hasonló előadás


Az előadások a következő témára: "SZÁMÍTÓGÉPES GRAFIKA 1. gyakorlat. Elérhetőségek Honlap: lunyi.web.elte.hu Egyéb lehetőségek: – Megkeresés."— Előadás másolata:

1 SZÁMÍTÓGÉPES GRAFIKA 1. gyakorlat

2 Elérhetőségek Honlap: lunyi.web.elte.hu Egyéb lehetőségek: – Megkeresés után megegyezés szerint – A szorgalmi időszakban az ETR-es órarend szerint

3 Előfeltételek Programozási nyelvek (C++) Lineáris algebra A gyakorlat teljesítése nem előfeltéte a gyakorlat teljesítésének. Minorosok elvégezhetik ehelyett a Webgrafika 2-t. Keressétek Klár Gergelyt!

4 Számonkérés Félév végén géptermi zárthelyi Időpontja: a vizsgaidőszak első hetének második fele A ZH 4 órás, az oktatók segédanyagai használhatóak Csak egy API-ban kell megvalósítani a feladatot

5 Alternatív számonkérés A zárthelyi kiváltható a szorgalmi időszakban elkészített beadandó feladatokkal. Feladatok kitűzése: később, tavaszi szünet környékén Mind DirectX-ben, mind OpenGL- ben meg kell oldani.

6 Egyéb követelmények Órákon való megjelenés kötelező → min 4 hiányzás = gyakjegy megtagadás Minden második órán +/- (összesen 6) Aki negatívban áll, nem írhat beadandót. +/- eredmény beleszámol az első ZH pontjaiba

7 Szükséges programok, kiegészítők Visual Studio 2005 (2008 ajánlott) - Letölthető: DirectX SDK augusztusi2007 augusztusi júniusi (ajánlott)2010 júniusi

8 Olvasnivaló Nyisztor Károly: Grafika és játékprogramozás DirectX-szel

9 Olvasnivaló Nyisztor Károly: Shaderprogramozás - Grafika és játékfejlesztés DirectX-szel

10 Olvasnivaló Dr. Szirmay-Kalos László könyvei: - Háromdimenziós grafika, animáció és játékfejlesztés -Számítógépes grafika Kondorosi Károly: -Objektum orientált szoftverfejlesztésObjektum orientált szoftverfejlesztés

11 Olvasnivaló Bjarne Stroustrup: -A C++ programozási nyelvA C++ programozási nyelv Brian W. Kernighan – Dennis M. Ritchie: -A C programozási nyelvA C programozási nyelv

12 A mai óra anyaga A DirectX rövid ismertetése A COM-modell Egyszerű winAPI-k készítése Ismerkedés a Visual Studio-val

13 A DirectX-ről A DirectX egy API gyűjtemény, ami lehetővé teszi a hardverek hatékony elérését. Multimédiás fejlesztéseket segít – grafikus, audio, különböző bemeneti eszközök hatékony programozásához.

14 Egy kis történelem DOS-os időkben a hardver közvetlenül elérhető ↔ nehéz programozhatóság, ráadásul mindegyik hardverre külön le kellett tesztelni. Windows 3.1-ben megszűnt a közvetlen hozzáférés, de a pl. WinG nem biztosít jó használhatóságot.

15 Egy kis történelem Win 95-höz már megjelent a Windows Games SDK és ennek részeként a DirectX 1.0 (még 3D API nélkül) '90-es évek elején sok 3D-s motor készült pl. RenderMorphics Reality Lab-je → Microsoft '95-ben felvásárolja a céget

16 Egy kis történelem 1996: A DirectX 2.0-ba beépítik a Reality Lab-et Még elég instabil rendszer, nem megfelelő driver támogatás Már jelen volt az OpenGL támogatás is, de komoly problémái voltak.

17 Kezdeti DX vs. GL Az OpenGL lehetőségeihez nem voltak elég erősek az akkori PC-k A DirectX tervezési szempontjai között volt, hogy minél több gépen gyorsan futó programot lehessen vele írni. Ez kezdetben nehézkesebb programozást eredményezett.

18 A DirectX verziói 1.0 és 2.0: rengeteg hiba, instabilitás 3.0a: Nőtt a driver támogatottság, de a programozók nehezen követték az API hirtelen változásait. 4.0: Ez a verzió kimaradt :) 5.0: Lényegesen fejlesztőközelibb. Mélyebben épül bele az oprendszerbe.

19 A DirectX verziói 6.1a: Win98SE, további fejlesztések és javítások, RM és IM 7.0: szorosabb együttműködés a szoftver- és hardver fejlesztőkkel. 8.0: sok fejlesztés, változtatás

20 A DirectX 8.0 változtatásai A külön kezelt 2D (DirectDraw) és 3D (Direct3D) részeket összevonták → DirectGraphics Point-sprite-ok 3D-s textúrák Továbbfejlesztett D3DX könyvtár Vertex- és pixel- (vagy Fragment) shaderek

21 A 11-es SDK részei Az DirectX SDK-k támogatják az aktuális DirectX verziót és az azt megelőző 2-t. Tehát a 11-es támogatja a 9-et, 10-et és 11-et. 9.0: a 8.1 továbbfejlesztése, újabb shader verziók, HLSL támogatás, használható framework A 9.0-t fogjuk használni a félév során

22 A 11-es SDK részei 10.0, 10.1: a Vista driver modelljéhez igazították Geometry shader is megjelenik már benne, ez közvetlenül írhat a memóriába. Shader modell 4.0 illetve : új shaderek, általános számítások shader támogatása

23 Shader modell 5 Párhuzamosítás támogatása Általános számítások felé elmozdulás Csak Windows Vista és Windows 7 alatt működik

24 A DirectX jelenlegi komponensei Direct Graphics: 2D és 3D-s grafikus megjelenítés Direct Input: bemeneti eszközök kezelése Direct Audio: audio fejlesztéshez, hang lejátszáshoz és felvételhez

25 COM modell Component Object Model A DirectX a COM-ra épül COM: felületek, amelyeken komponensek kommunikálnak A felület függvények halmaza

26 COM objektumok Kommunikáció hasonló, mint C++-os objektumokkal DE: - Szigorúbb egységbe zárás - Máshogy hozzuk létre őket - A szükséges DLL-ek automatikusan töltődnek be - A COM bináris formátum, nyelvfüggetlen

27 Objektumok és interfészek Egy objektum akárhány interfészt megvalósíthat, de az IUnknown-t kötelező. Egy interfészt több objektum is megvalósíthat. Az objektum az interfészének összes szolgáltatását köteles megvalósítani. (Kivétel E_NOTIMPL) Interfészt nem lehet módosítani

28 Interfész generációk Gyakran egy-egy interfész több generáción át fejlődik Különböző generációk interfészei hasonló feladatot látnak el, de a megvalósításban különböznek Általában egy objektum az összes generáció interfészét megvalósítja

29 Globally Unique Identifier GUID – 128 bites szám, a COM-ban egyedi azonosításra használják. Objektumoknál CLSID-nek, interfészeknek IID- nek hívják őket. 32 hexadecimális számmal szokták stringként ábrázolni. {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}

30 HRESULT Majdnem minden COM eljárás visszatérési értéke HRESULT típusú, ami egy 32 bites integer. Jelezhető vele, hogy sikeres volt-e az eljárás (S_OK) vagy sem (E_FAIL) Tesztelhető is a sikeres (SUCCEEDED(hr)) és a sikertelen (FAILED(hr)) visszatérés

31 Pointerek címe COM objektumokat csak pointeren keresztül tudjuk elérni. IDirect3DDevice9 *pDeviceInterface A legtöbb eljárásnak ezeknek a pointereknek a címére van szüksége

32 Magyar jelölés Változónevek első néhány karaktere a változó típusára utal. Például: p a pointer i az integer b a bool... A Microsoft mindenütt alkalmazza (Simonyi Károly után kapta a nevét)

33 COM objektumok létrehozása Közvetlenül: a CoCreateInstance függvénynek átadva az objektum CLSID-jét. Közvetetten: pl egy DC eljárás vagy fv meghívásával, ami létrehozza az objektumot Ez utóbbit fogjuk használni, pl: IDirect3DDevice9::CreateDevice

34 COM objektumok megszüntetése A COM-ban nem lehet úgy megszüntetni sem egy objektumot, mint C++-ban Minden objektumhoz hivatkozásszámláló → 1- gyel nő, ha igénylik az interfészt, ha nincs már rá szükség, 1-gyel csökken. Ha 0 a számláló értéke, megsemmisül a COM objektum. IUnknown eljárásaival (AddRef(), Release())

35 COM objektumok megszüntetése A COM-ban nem lehet úgy megszüntetni sem egy objektumot, mint C++-ban Minden objektumhoz hivatkozásszámláló → 1- gyel nő, ha igénylik az interfészt, ha nincs már rá szükség, 1-gyel csökken. Ha 0 a számláló értéke, megsemmisül a COM objektum. IUnknown eljárásaival (AddRef(), Release())

36 Windowsos program váza Inicializálás - erőforrások lefoglalása, egyéb inicializálás Futás (sokszor :)) - Reagálás a beérkező üzenetkere, egyéb működés Kilépés - Erőforrások felszabadítása

37 Vége Köszönöm a figyelmet! :)


Letölteni ppt "SZÁMÍTÓGÉPES GRAFIKA 1. gyakorlat. Elérhetőségek Honlap: lunyi.web.elte.hu Egyéb lehetőségek: – Megkeresés."

Hasonló előadás


Google Hirdetések