Grafikus Rendszerek Zsitnyánszki Zoltán.

Slides:



Advertisements
Hasonló előadás
Manapság a számítógép legfontosabb kiviteli egysége (perifériája) a televíziókhoz hasonló számítógép- képernyő vagy monitor. A monitort egy kábel köti.
Advertisements

Készítette: Nagy Mihály tanár Perecsen, 2006.
A GIMP képszerkesztő program bemutatása Kiss Anett 7
OpenGL 2. gyakorlat Hapák József
L ÁTHATÓSÁG MEGHATÁROZÁSA tavaszi félév.
Kimeneti egységek Készítették: Boros Gyevi Vivien Tóth Ágnes
INFORMATIKAI ESZKÖZÖK: A MONITOR
Bekezdésformázás Név: Szarvas Nóra 8/a Felkészítő tanár: Salamon Róza
BSP-fák használata játék- engine fejlesztésében a nagy kiterjedésű zárt terek megjelenítéséhez Előadó: Boromissza Gergely Konzulens: dr. Szirmay-Kalos.
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
Metszetek.
FRAME-k (keretek). FRAME-k A frame-ek (keretek) segítségével a képernyőt felosztva egyszerre jeleníthetünk meg több webes dokumentumot a képernyőn. Fejlec.html.
Szerkessz háromszöget, ha adott három oldala!
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.
Segédprogram Chaospro. Mire szolgál? A geometriában hagyományosan egy görbe egy-, egy felület két-, és egy térbeli test háromdimenziós. Az úgynevezett.
Készítette: Kecskés Imre
Internetes böngészőprogram használata, beállításai
Grafika a programban Készítette: Pető László. Bevezetés Valójában nem a célobjektumra rajzolunk, hanem annak festővászon területére (canvas). Csak olyan.
A Windows grafikus felülete
Transzformációk kucg.korea.ac.kr.
Számítógépes grafika, PPKE-ITK, Benedek Csaba, D képszintézis 4. előadás.
A háromszögek nevezetes vonalai
PTE PMMK Matematika Tanszék dr. Klincsik Mihály Matematika III. előadások MINB083, MILB083 Gépész és Villamosmérnök szak BSc képzés 2007/2008. őszi félév.
Mérnöki Fizika II előadás
Egyéni animáció készítése
Gútai Magyar Tannyelvű Magán Szakközépiskola, Szlovákia
Rétegek használata GIMP képszerkesztő programban
Horváth István Általános Iskola
Többdimenziós kockák síkbeli megjelenítése
Programozás C-ben Link és joint Melléklet az előadáshoz.
2D képszintézis és textúrák
1 Operációs rendszerek Az NT folyamatok kezelése.
Számítógépes grafika 3. gyakorlat.
6. A 3D grafika alapjai 6.1. A 3D szerelőszalag fölépítése
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 ◦
Turbo Pascal 11..
Grafikus tervezőrendszerek programozása 11. előadás.
Hogyan mozognak a testek? X_vekt Y_vekt Z_vekt Origó: vonatkoztatási test Helyvektor: r_vekt: r_x, r_y, r_z Nagysága: A test távolsága az origótól, 1m,
16. Modul Egybevágóságok.
Monitorok.
Matematika feladatlap a 8. évfolyamosok számára
Rendering pipeline Ogre3D
Kezdeti teendők Letöltés: CharacterModellingBase.zip Blender3D futtatása headBase.blend betöltése.
Dplusz projekt 1 Dplusz projekt Készítők: Kerti Ágnes, Cseri Orsolya Eszter Konzulens: Vámossy.
Visual Basic 2008 Express Edition
Geometriai transzformációk
ELEKTROSZTATIKA 2. KÉSZÍTETTE: SZOMBATI EDIT
1 Vektorok, mátrixok.
Bevezetés a számítógépi grafikába 2. Paraméteres görbék Paraméteres görbe: 2D-ben: paraméter: általában: kikötések: legyen folytonos legyen folytonosan.
A Monitor. AszámítógépAszámítógép legfontosabb kiviteli egysége (perifériája) a televíziókhoz hasonló számítógép-képernyő vagy monitor. A monitort egy.
Newton és gravitációs törvénye
HIPERKOCKA.
2. előadás.
Bevezetés - Vonalak. Koordinátarendszer Windows form x y Az y lefelé nő Transzformáció a hagyományosra x Eltolás y Ellentett és eltolás.
Készítette: Földi Gergely Felkészítő: Antal Zoltán Szentpéterúri Általános Iskola Szentpéterúr, Kossuth Lajos Utca 13. Kedvenc szerkesztő szoftverem.
Számítógépes grafika I. AUTOCAD alapok
DNS. Az interneten használt osztott név adatbázis, a DNS (Domain Name Service) folyton használatos: –minden web lap letöltésnél, –levél közvetítésnél.
Számítógépes grafika DirectX 7. gyakorlat. Emlékeztető Múlt órán mesheket és transzformációkat használtunk Most primitívkirajzoláshoz nézünk meg egy hasznos.
Rövid összefoglalás a © 2012 Microsoft Corporation. Minden jog fenntartva. Lync Web Apphoz Csatlakozás Lync-értekezlethez számítógépes hanggal Lync 2013.
Kiviteli perifériák  Minden jog fenntartva.
Alapvető raszteres algoritmusok, szakasz rajzolása, DDA, MidPoint algoritmus.
Monitorok Készítette: Orosz Kristóf 6/b.
Készítette: Horváth Zoltán
A grafikus hardware programozása
Vizualizáció és képszintézis
Neumann János Informatikai Kar
Az operációs rendszer  Minden jog fenntartva.
Neumann János Informatikai Kar
Előadás másolata:

Grafikus Rendszerek Zsitnyánszki Zoltán

Vectorok hossza A (x,y) 2 dimenziós: ||v|| = √(x2+y2) v 3 dimenziós: ||v|| =√(x2+y2+z2)

Inverz vektor v -v

Vekorok összegzése u v v u+v u

Vektorok kívonása -u v v u v+(-u)

Vektorok szorzása v v v v 3v

skalár szorzat Skalárszorzat esetén két vektort szorzunk össze, az eredmény egy szám mely a két vektor és a közbezárt szög(hajlásszög) közötti összefüggést tükrözi u * v = ||u||*||v||*cosα v α u

Kereszt szorzat A vektoriális szorzat eredménye egy újabb vektor, amely merőleges mindkét vektorra u x v = ||u||*||v||*sinα v α u

Mátrix műveletek

Kvaterniók http://hu.wikipedia.org/wiki/Kvaterni%C3%B3k A matematikában a kvaterniók a komplex számok négy dimenzióra történő nem kommutatív kiterjesztései

Koordiáta rendszerek y y z x x z Bal kezes koordináta rendszer Pl. XNA, OpenGl Jobb kezes koodináta rendszer Pl.DirectX Kétdimenziós helyvektor: P2d=( x , y ) Homogén koordináta: P2d=( x*w , y*w , w ) Háromdimenziós homogén koordináta: P3d=( x*w , y*w , z*w , w )

Háromdimenziós képszintézis

FrameBuffer Két Framebuffer van Front és Back( 2dimenziós tömb amelynek 1 elemének nagysága attól függ milyen színmélységet használunk) A Frontbufferbe azon adatok láthatóak a képernyőn Backbufferbe rajzolunk Ha végeztünk a rajzolással a két Framebuffert megcseréljük így amit rajzoltunk a képernyőre kerül ha ez a csere több mint 24-szer történik az emberi szem mozgóképnek érzékeli A Framebuffer 1ms alatti cseréjének számosságát az fps (frame per second) reprezentálja

Graphics pipeline Vertex stream Vertex shader Vágás, Interpolálás, Transzformáció Pixel shader Monitor Index stream A Vertexbufferbe belekerülnek a vertexek és az indexbufferbe az indexek. Az összes vertexre alkalmazzák a vertex shadert majd következik a virtuális tér 2 dimenzióra történő leképzése a Backbufferbe. A leképzés után minden pixelre végrehajtódik a pixel shader. A Backbuffer és a Frontbuffer megcserélődik ezáltal az elkészített kép a képernyőre kerül.

Rajzolás számítógéppel Minden test (ház, ember…stb) a virtuális térben poligonokkal(háromszögek) tudunk ábrázolni (drótváz model). A rajzolást 3 különböző szakaszra tudjuk bontani inicializálás, frissítés, rajzolás. Inicializálás: a kezdő vertex pontok és indexek meghatározása, a shadereks fények beállítása (kezdő állapot betöltése) Frissítés: valamilyen állapotváltozás (bill leütés,idő…stb) hatására a vertex és index adatok újra beállítása Rajzolás: a rajzoláshoz szükséges állapotok beállítása és a grafikus hardver történő rajzolás

Rajzolás XNA-val A rajzoláshoz az XNA lefoglalja magának a videókártyát és a memóriájába bemásolja a vertexeket és indexeket. Majd a amikor meghívjuk a Draw() függvényt az indexbuffer első elemére ugrik, az ott lévő számot beszorozza a vertexdeclaration-ba megadott elemek méretével és a vertexbufferbe arra a pontra ugrik,majd egy kiveszi a megfelelő byte mennyiséget. A buffert ezután megpróbálja felosztani vertexdeclaration-ba megadott elemekre. Ezután kirajzolja a vertex-et. PrimitivType-nak megfelelően tovább lép az idex bufferbe és összeköti a megfelelő pontokat.

XNA rajzoló függvényei I. Szükséges feltétel a VertexBuffer és IndexBuffer használata vertexbuffer beállítása:GraphicsDevice.Vertices[i]. SetSource() indexbuffer beállítása: Indices.SetData<T>() GraphicsDevice.DrawPrimitives(PrimitiveType primitiveType, int startVertex, int primitiveCount); primitiveType: a primitív típusa; startVertex: A vertex kezdete a vertexbufferbe primitiveCount: primitive-.ek száma GraphicsDevice.DrawIndexedPrimitives(PrimitiveType primitiveType, int baseVertex, int minVertexIndex, int numVertices, int startIndex, int primitiveCount); baseVertex: azt mutatja meg melyik indexű elemtől kezdjük a számolást a vertexbufferbe minVertexIndex = startVertex numVertices :hány vertexel dolgozunk /kezdő vertex száma = baseVertex+minVertexIndex / startIndex :Az indexek kezde az indexbufferbe

XNA rajzoló függvényei II. GraphicsDevice.DrawPrimitives<T>(PrimitiveType primitiveType, T[] vertexData, int vertexOffset, int primitiveCount); T: vertexek típusa vertexData : vertexek vertexOffset = startVertex GraphicsDevice.DrawUserIndexedPrimitives<T> (PrimitiveType primitiveType, T[] vertexData, int vertexOffset, int numVertices,int[] indexData, int indexOffset, int primitiveCount); indexData : az indexek indexOffset: a kezdő index helye az indexbufferbe

RenderState Fog(köd): a tárgyakat amiket már nem kívánunk megjeleníteni a távolságuk miatt nem egyszerűen „kivágjuk” a jelenetből hanem egy színnel(köd) a távolságával arányosan lekeverjük így nem olyan látványosan tűnik el. CullMode(hátsó lap eldobás): minden 3szögre kiszámoljuk a normál vektorát és ami a kamera irányába mutat azt eldobjuk. FillMod(kitöltés): választhatunk hogy miként jelenítjük meg a jelenetet csak a vertexeket jelenítjük meg(POINT), vertexeket és az összekötő vonalakat(WIREFRAME), vertexek és az összekötő vonalak átal határolt területet textúrázva vagy színezve(SOLID). A wireframe megjelenítést debuggolásra szokták használni,alapesetbe Solid megjelenítést alkalmazunk. AlphaBlend (alpha csatornás átlátszóság):alpha csatorna szerinti átlátszóságot engedélyezhetjük illetve állíthatjuk be vele.

A Windows működése A windowsba az ablakokat egy azonosító úgynevezett HANDLE alapján tudjuk azonosítani Az inputot(egér,bill.) úgy dolgozza fel hogy generál egy eseményt és az aktuális ablaknak a WNDPROC függvényét meghívja ezzel az eseménnyel. Ha nem tudja feldolgozni az eseményt akkor tovább adja az ősablakának. Ezt úgy nevezzük hogy felelősség lánc. Ha az ősablaka maga a windows vagy ha az ablak feldolgozza az üzenetet akkor megáll a lánc. Ha az ablak feldolgoz egy üzenetet akkor lehetősége van újból elindítani a láncot azaz az ősének továbbadni az eseményt.

Hasznos linkek http://rbwhitaker.wikidot.com/xna-tutorials http://www.riemers.net/eng/Tutorials/xnacsharp.php http://creators.xna.com/en-US/

1. beadandó: valamilyen windows control megírása+ event 2. beadandó: valamilyen UI megírása eseménnyel 3. beadandó: személyre szabott feladat