Számítógépes grafika gyakorlat: DirectX 2007/2008 tavasz Klár Gergely

Slides:



Advertisements
Hasonló előadás
HTML enhanced for web apps! Fodor Krisztián
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.
L ÁTHATÓSÁG MEGHATÁROZÁSA tavaszi félév.
C++ programozási nyelv Gyakorlat hét
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Készítette: Zaletnyik Piroska
Matematika II. 4. előadás Geodézia szakmérnöki szak 2010/2011. tanév Műszaki térinformatika ágazat tavaszi félév.
Geometriai Transzformációk
Geometriai transzformációk
Inkrementális 3D képszintézis
GPU Szirmay-Kalos László.
Bevezetés.  A számítógépes grafika inkrementális képszintézis algoritmusának hardver realizációja  Teljesítménykövetelmények:  Animáció: néhány nsec.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
7. előadás (2005. április 12.) Láncolt lista File kezelés 1.
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
Tömbök ismétlés Osztályok Java-ban Garbage collection
Függvények, mutatók Csernoch Mária.
Mutatók, tömbök, függvények
Számítógépes grafika, PPKE-ITK, Benedek Csaba, D képszintézis 4. előadás.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
3. Vetületi ábrázolások számítási eljárásai
2. Koordináta-rendszerek és transzformációk 2.1. Koordináta-rendszerek 2.2. Az egyenes és a sík egyenlete 2.3. Affin transzformációk 2.4. Projektív transzformációk.
Többdimenziós kockák síkbeli megjelenítése
2D képszintézis és textúrák
Számítógépes grafika 3. gyakorlat.
2. Koordináta-rendszerek és transzformációk
3. Vetületi ábrázolások számítási eljárásai
Számítógépes Grafika Programtervező informatikus (esti)‏ Textúrázás.
2008/2009 tavasz Klár Gergely  A DirectX egy alacsonyszintű API gyűjtemény  Multimédiás alkalmazások futtatására, írására szolgál 
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 ◦
Önálló labor munka Csillag Kristóf 2005/2006. őszi félév Téma: „Argument Mapping (és hasonló) technológiákon alapuló döntéstámogató rendszerek vizsgálata”
1 Add az APK-t! Add az APK-t! Automatizált apptesztelés 2013/10/13.
2D képszintézis Szirmay-Kalos László.
Rendering pipeline Ogre3D
Kezdeti teendők Letöltés: CharacterModellingBase.zip Blender3D futtatása headBase.blend betöltése.
Transzformációk Szirmay-Kalos László. Transzformációk (x,y) (x’,y’) = T(x,y) l Tönkre tehetik az egyenletet l Korlátozzuk a transformációkat és az alakzatokat.
3. Vetületi ábrázolások számítási eljárásai
Pipeline Vertex shader Fragment shader. Transzformációs modul A modellünket a saját koordinátarendszerében adjuk meg Azonban a saját koordinátarendszerükben.
Számítógépes grafika DirectX 5. gyakorlat. Emlékeztető Háromdimenziós alapok befejezése Textúrázás.
Jeni László Attila Klár Gergely
Java programozási nyelv Metódusok
2.2. Az egyenes és a sík egyenlete
Objektum orientált programozás
2. Koordináta-rendszerek és transzformációk
2. gyakorlat DirectX 2007/2008 tavasz Klár Gergely
1 Vektorok, mátrixok.
Informatikai eszközök a virtuális valóság szolgálatában Hapák József ELTE-IK X. Eötvös Konferencia.
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.
BIOLÓGUS INFORMATIKA 2008 – 2009 (1. évfolyam/1.félév) 3. Előadás.
Egy GeoGebra verseny terve
ALAKZATOK TRANSZFORMÁCIÓJA ÚJ KÉPSÍKOK BEVEZETÉSÉVEL
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.
Geometriai feladatok programozása Geometriai programozás Szlávi Péter ELTE IK Média- és Oktatásinformatika Tanszék 2010.
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
Bevezetés a számítógépi grafikába
Programozás III JPA.
SZÁMÍTÓGÉPES GRAFIKA 1. gyakorlat. Elérhetőségek Honlap: lunyi.web.elte.hu Egyéb lehetőségek: – Megkeresés.
GRÁFOK Marczis Ádám és Tábori Ármin. Kőnig Dénes ( ) Magyar matematikus Az első tudományos színvonalú gráfelmélet könyv írója.
Bevezetés.  Miért …  … egyszálúan programozunk?  … probléma ez?  Hogyan …  … változik ez?  … tudjuk kihasználni?  Megéri-e párhuzamosítani?
Neumann János Informatikai Kar
Vizualizáció és képszintézis
Neumann János Informatikai Kar
Neumann János Informatikai Kar
A CLIPS keretrendszer
GPGPU – CUDA 2..
Bevezetés GPGPU Alkalmazások.
Ültetési rend létrehozása
Előadás másolata:

Számítógépes grafika gyakorlat: DirectX 2007/2008 tavasz Klár Gergely

Tartalom 3D alapok DirectX áttekintés A Direct3D objektum és a Direct3D device DXUT DXFrame

3D alapok Bemenet: geometriai, felületjellemző és kiegészítő adatok Kimenet: raszteres kép

Képalkotás menete

Vertex Data ◦Transzformálatlan csúcspont (vertex) adatok Primitive Data ◦A csúcsokból épített geometriai primitívek Tessellation ◦Magasabbrendű primitívek, displacement mapping, stb. Vertex Processing ◦Csúcspont transzformációk Geometry Processing ◦Vágás, hátlapeldobás, raszterizálás

Képalkotás menete Textured Surface ◦Textúra adatok Texture Sampler ◦Textúra adatok szűrése Pixel Processing ◦Árnyalás, textúrázás, stb. Pixel Rendering ◦Pixelek feldolgozása alfa érték, mélység- és stencilbuffer, alfa blending szerint

Geometriai adatok Csúcspontokból primitíveket építünk A GPU-ra küldető primitív típusok ◦Pont ◦Szakasz ◦Szakasz-szalag ◦Háromszög ◦Háromszög-szalag ◦Háromszög-legyező

Háromszögek Nem mindegy a háromszögek bejárása! Egy háromszöglap (face) szembe néz, ha a csúcsainak megadási sorrendje az óramutató járásával megegyezik Különben a hátlapja látszik p1 p2 p3 p1 p2 p3

Homogén koordináták A csúcspontok megadására homogén koordinátákat használunk [x,y,z,w] négyessel adhatók meg A projektív tér pontjait jelölik A projektív tér az Euklideszi tér bővítése Az Euklideszi tér végtelenbeli pontjait is tartalmazza (pl. párhuzamosok metszéspontját)

Homogén koordináták Átszámítás homogén és euklideszi koordináták között Ha w≠0 [x,y,z,w]=(x/w,y/w,x/w) Ha w=0 nincs megfelelő pont az euklideszi térben A [x,y,z,0] alakú pontokat ideális pontoknak, a többit közönséges pontoknak nevezzük

Transzformációk Az egyes geometriai transzformációk leírhatók 4x4-es mátrixokkal Alapvető transzformációk ◦Léptékezés ◦Eltolás ◦Forgatás ◦Vetítés

Mátrixok összefűzése Egymás után alkalmazott transzformációk kifejezhetők a mátrixaik szorzatával Pl. T1, T2, T3 transzformációk C = T1*T2*T3 C használható a három transzformáció helyett A szorzás sorrendje nem tetszőleges (ahogy a mátrix szorzás sem kommutatív)

Affin transzformációk A vetítés eltér az előző transzformációktól Eddig: közönséges pont -> közönséges pont, ideális pont -> ideális pont Ezek az affin transzformációk Az affin transzformációk az Euklideszi teret az Euklideszi térre képzik le

Vetítések A vetítések a 3D-s térben adott modellt a síkképként megjelenítéshez „készítik elő” A vetítés nem affin transzformáció (Valódi) projektív transzformációnak nevezzük Ideális pont is megjelenhet a képen: a párhuzamosok találkozhatnak Képletesen a vetítés a kamera, ami tényleges pozíciókból látványbeli pozíciókat csinál

Vetítések, példa

DirectX A DirectX egy alacsonyszintű API gyűjtemény Multimédiás alkalmazások futtatására, írására szolgál Részei ◦DirectX Audio ◦DirectX Graphics ◦DirectX Input

DirectX A fejlesztéshez DirectX SDK szükséges Ingyenesen letölthető: px?FamilyId=4B78A58A-E672-4B83-A28E- 72B5E93BD60A&displaylang=en Használható „hagyományos” C++, illetve a.Net 1.1-es nyelvek bármelyikével

Component Object Model A DirectX objektumai a COM platformon keresztül érhetők el A megvalósítás rejtett, csak felületet kapunk Sok kisebb interface-t érhetünk el egy nagy objektumok helyett Nem használhatók a hagyományos C++ - os létrehozási és megszüntetési módszere

COM – Gyakori elemek Minden COM metódus visszatérési érteke HRESULT típusú Ennek az értéke jelzi, hogy a művelet sikeresen befejeződött-e vagy sem A COM objektumokat interface-re mutató pointereken keresztül érhetjük el Az egyes I…* pointerekhez általában tartozik LP… és P… elnevezés is, a kettő mindenben meg egyezik Pl. typedef struct IDirect3DDevice9 *LPDIRECT3DDEVICE9, *PDIRECT3DDEVICE9;

COM – Hasznos makrók SUCCEEDED(…), igaz ha a kapott HRESULT >= 0, azaz sikert jelez FAILED(…), a fenti ellentéte V(…), sikertelenség esetén feldob egy ablakot a hiba helyéről és részleteiről V_RETURN(…), mint a V, de kiugrik az aktuális függvényből SAFE_RELEASE(…), DX objektumok kényelmes felszabadítására, fontos: mindig 0 kezdőértékkel használjuk a pointereket, amiket ezzel szabadítunk fel

DirectX Graphics Ez tartalmazza a Direct3D-t, amivel a félév első felében foglalkozni fogunk

Direct3D object és device object Bármilyen programban a D3D használata egy IDirect3D9 objektum létrehozásával kezdődik Ezzel lekérhetők az elérhető eszközök, és létrehozható az IDirect3DDevice9 egy példánya Az IDirect3DDevice9 biztosítja a kapcsolatot a videokártya és a programunk között Ennek a metódusaival történik majd a tényleges képalkotás

Erőforrások A Direct3D a képalkotáshoz szükséges adatokat erőforrásoknak (resources) nevezi Ezeket memória kezelésük szerint a következő típusúak lehetnek ◦DEFAULT: az erőforrás típusától függően kerül a rendszer vagy a videokártya memóriájába ◦MANAGED: mindkét memóriában lesz példány, a rendszer automatikusan újratölti, ha a videokártya memóriájából elveszik ◦SYSTEMMEM: a rendszermemóriában lesz elhelyezve, a Direct3D device-ok általában nem tudnak hozzáférni az ilyen erőforrásokhoz

Események Device létrejötte és megszűnése: ilyenkor érdemes az előre ismert MANAGED erőforrásokat lefoglalni illetve elengedni Reset Device: a létrehozás utáni és az eszköz visszaszerzése utáni állapot, a DEFAULT erőforrásokat itt kell [újra] lefoglalni Lost Device: az eszköz elvesztése előtt következik be, tipikusan ALT+TAB, vagy minimalizálás hatására. A DEFAULT erőforrásokat itt kell felszabadítani Felhasználói események

DXUT Direct3D alkalmazások fejlesztését megkönnyítő könyvtár A DirectX SDK része, az SDK példaprogramjai ezt használják Leegyszerűsíti az ablak és eszköz létrehozást Eseménykezelő függvényeket ad a felsorolt és további eseményekhez, mit a rajzolás és új kép kezdete

DXFrame[work] „Házi” objektumorientált keretrendszer A DXUT-re épül Fogadja annak minden eseményét Saját alkalmazás ebből származtatva készíthető A félév során a DirectX-es programokat ezzel készítjük az órákon