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

Zsitnyánszki Zoltán. A (x,y) 2 dimenziós: ||v|| = √(x 2 +y 2 ) 3 dimenziós: ||v|| =√(x 2 +y 2 +z 2 ) v.

Hasonló előadás


Az előadások a következő témára: "Zsitnyánszki Zoltán. A (x,y) 2 dimenziós: ||v|| = √(x 2 +y 2 ) 3 dimenziós: ||v|| =√(x 2 +y 2 +z 2 ) v."— Előadás másolata:

1 Zsitnyánszki Zoltán

2 A (x,y) 2 dimenziós: ||v|| = √(x 2 +y 2 ) 3 dimenziós: ||v|| =√(x 2 +y 2 +z 2 ) v

3 -v v

4 v u u v u+v

5 v u v -u v+(-u)

6 v vvv 3v

7 v u α u * v = ||u||*||v||*cosα 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

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

9

10   A matematikában a kvaterniók a komplex számok négy dimenzióra történő nem kommutatív kiterjesztései

11 x y z z x y Bal kezes koordináta rendszer Pl. XNA, OpenGl Jobb kezes koodináta rendszer Pl.DirectX Kétdimenziós helyvektor: P 2d =( x, y ) Homogén koordináta: P 2d =( x*w, y*w, w ) Háromdimenziós homogén koordináta: P 3d =( x*w, y*w, z*w, w )

12

13  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

14 Vertex stream Index stream Vágás, Interpolálás, Transzformáció Monitor Vertex shader Pixel shader 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.

15  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

16 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.

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

18  GraphicsDevice.DrawPrimitives (PrimitiveType primitiveType, T[] vertexData, int vertexOffset, int primitiveCount); ◦ T: vertexek típusa ◦ vertexData : vertexek ◦ vertexOffset = startVertex  GraphicsDevice.DrawUserIndexedPrimitives (PrimitiveType primitiveType, T[] vertexData, int vertexOffset, int numVertices,int[] indexData, int indexOffset, int primitiveCount); ◦ indexData : az indexek ◦ indexOffset: a kezdő index helye az indexbufferbe

19  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.

20  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.

21   

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


Letölteni ppt "Zsitnyánszki Zoltán. A (x,y) 2 dimenziós: ||v|| = √(x 2 +y 2 ) 3 dimenziós: ||v|| =√(x 2 +y 2 +z 2 ) v."

Hasonló előadás


Google Hirdetések