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

Slides:



Advertisements
Hasonló előadás
ADATBÁZISOK.
Advertisements

OpenGL 2. gyakorlat Hapák József
2010/2011 ősz Klár Gergely  A DirectX egy alacsonyszintű API gyűjtemény  Multimédiás alkalmazások futtatására, írására szolgál  Részei.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Adatbázis alapú rendszerek 1. Gyakorlat Követelmények / SQL.
Piacképes programozói tudás a középiskolában
Adminisztratív kérdések
Kifejezések 2+3 Egy egyszerű kifejezés… © Pasztuhov Dániel, www.programozas-oktatas.hu.
3. A programozás eszközei, programozás-technikai alapismeretek
Microsoft fejlesztőeszközök a szakképzésben Farkas Bálint Visual Studio 2008.
OPERÁCIÓS RENDSZER. Az operációs rendszer egy olyan programozási rendszer, amely a számítógépes rendszerben a programok végrehajtását vezérli, így pl.
kötelező program, SZÁMONKÉRÉSEK
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Fejlett Programozási Technológiák II. Világos Zsolt 12. gyakorlat.
Mutatók, tömbök, függvények
A C++ programozási nyelvSoós Sándor 1/15 C++ programozási nyelv Gyakorlat hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
Célkeresztben az érettségi! A legjobb és leghatékonyabb eszközt akarjuk Kevesebb hibalehetőség, barátságos hibaüzenetek Kiváló fejlesztőeszköz Gyorsan.
Számítógépes grafika OpenGL 1. gyakorlat.
Internetes források alapján készítette:
DirectX a grafika laboron kívül. Mire lesz szükség Itt vannak a szükséges include és lib: iles/DXMinimalPack.zip.
Szoftvertechnológia Rendszertervezés.
WEB MES (webes gyártásirányító rendszer)
A számítógép jelentősége a hétköznapokban
Objektum Vezérelt Szoftverek Analízise Ferenc Rudolf és Beszédes Árpád Szegedi Tudományegyetem FrontEndART.
Számítógépes grafika 3. gyakorlat.
Számítástechnikai szoftver üzemeltető
2008/2009 tavasz Klár Gergely  Gyakorlatok időpontjai: ◦ Szerda 10:05–11:35 ◦ Csütörtök 10:00+ε –11:30+ε  Gyakvez: ◦ Klár Gergely ◦
Operációs rendszer.
Az operációs rendszer Az operációs rendszer a számítógépet működtető szoftver, amely a számítógép indulásakor azonnal betöltődik a számítógép memóriájába:
Hernyák Zoltán Programozási Nyelvek II.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Operációs rendszerek Balogh Zoltán PTE-TTK IÁTT Operációs rendszerek feladatai és csoportosításuk.
Számítógépes grafika Bevezetés
Az operációs rendszerek feladata, fajtái, felépítése
Tanulást könnyítő segédprogramok
Tanulási útmutató Tanulási Útmutató Az Észak-magyarországi Regionális Távoktatási Központ által a TÁVHÁLÓ projektben kifejlesztett e-learning környezethez.
Bevezetés a szoftver-ergonómiába
Visual Basic 2008 Express Edition
Számítógépes Grafika DirectX 1. gyakorlat. Információk Előfeltételek:  Linalg (erős)  C++ (gyenge) A gyakorlat két részből áll  6 (7) hét DirectX 
Fontos információk.
Számítógépes grafika gyakorlat DirectX segítség A következő dolgokra van szükség: CG Toolkit: 
C Programozási alapok.
CUDA C/C++ programozás CUDA C bevezetés A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt keretében.
Webfejlesztés, Internet Explorer 10 Komjáthy Szabolcs
Multimédiás lejátszóprogram
Intelligens Mérnöki Rendszerek Laboratórium Alkalmazott Matematikai Intézet, Neumann János Informatikai Kar, Óbudai Egyetem Mielőtt a virtuális térbe lépnénk.
2. Operációs rendszerek.
Piramis klaszter rendszer
Adatellenőrzési szabályok OSAP statisztika FIR optimalizáció
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás I. Követelmények.
.NET FRAMEWORK Röviden Krizsán Zoltán 1.0. Tulajdonságok I Rövidebb fejlesztés 20 támogatott nyelv (nyílt specifikáció) 20 támogatott nyelv (nyílt specifikáció)
Számítógépes grafika gyakorlat: DirectX 2007/2008 tavasz Klár Gergely
Számítógépes Grafika OpenGL 4 shaderek, GLSL. OpenGL 4 A következő programozható fázisok vannak a 4.x-es OpenGL-ben: Vertex shader Tesselation control.
PIC mikrokontroller.
Informatikai gyakorlatok 11. évfolyam
Analogical and Neural Computing Laboratory, Hungarian Academy of Sciences, Budapest 1 MATLAB u Hatékony, interaktív, tudományos és műszaki számítások,
GEOINFORMATIKA LINUX ALATT Dolleschall János. A LINUX ● A Linux operációs rendszer Linus Torvalds finn programozó nevéhez fűződik ● december 28-án.
Grafikus felhasználói felületek Linux alatt. Grafikus Interface A grafikus felhasználói felület (angolul graphical user interface, röviden GUI) olyan,
A programozás módszertana. Monolitikus programozás Egyszerű feladatok - egyszerű programok Egy program – egy programozó Nincs belső struktúra, lineáris.
Tájékoztató NGB_ak012.
EVA 1 – 5. kurzus Kanyó Kristóf.
Hogyan írhatunk játékprogramokat?
a programegységek között
Programozási alapismeretek
Operációs rendszerek.
A mesterséges intelligencia alapjai
Hernyák Zoltán Programozási Nyelvek II.
Az emberi arcok Óramegbeszélés
Előadás másolata:

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

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

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!

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

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.

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

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

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

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

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

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

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

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.

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.

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

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.

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.

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.

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

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

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

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

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

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

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

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

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

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

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}

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

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

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)

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

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())

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())

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

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