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

A program a „Tudáshasznosulást, tudástranszfert segítő eszköz-, és feltételrendszer kialakítása, fejlesztése a Műegyetemen” (TÁMOP-4.2.1-08/1/KMR-2008-0001)

Hasonló előadás


Az előadások a következő témára: "A program a „Tudáshasznosulást, tudástranszfert segítő eszköz-, és feltételrendszer kialakítása, fejlesztése a Műegyetemen” (TÁMOP-4.2.1-08/1/KMR-2008-0001)"— Előadás másolata:

1 A program a „Tudáshasznosulást, tudástranszfert segítő eszköz-, és feltételrendszer kialakítása, fejlesztése a Műegyetemen” (TÁMOP /1/KMR ) és a „Minőségorientált, összehangolt oktatási és K+F+I stratégia, valamint működési modell kidolgozása a Műegyetemen” (TÁMOP-4.2.1/B-09/1/KMR ) című projektek támogatásával valósul meg. Játékfejlesztés Windows Phone platformra Rajacsics Tamás (BME-AAIT) Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott Informatikai Tanszék

2 Tartalom  3D hardver  XNA+Silverlight architektúra  Virtuális világ felépítése  Content Pipeline  Sebesség és optimalizálás

3 Hardver képességek Grafikus csővezeték IA VS HS Tess DS GS Ras PS OM CS DirectX 11 csővezeték XNA csővezeték – Xbox 360 és PC IA VS Ras PS OM DX11DX10DX11 IA:Input Assembler VS:Vertex shader HS:Hull shader Tess:Tessellator DS:Domain shader GS:Geometry shader Ras:Rasterizer PS:Pixel shader OM:Output Merger CS:Compute shader XNA csővezeték – Phone 7 IAVSRasPSOM

4 Hardver képességek GPU sebesség Nokia Lumia Mtri/s, 245 Mpixel/s 800x480 pixel Csak egyszerűbb hatások Memória sebesség ok ATI Radeon HD Mtri/s, 24,8 Gpixel/s 1920x1080 pixel (+FSAA) 1000 soros HLSL kód Memória sebesség a szűk keresztmetszet 1 pixelt 4-5-ször lehet felülírni

5 Silverlight + XNA  7.5-től működik  Új projekt típus van hozzá  XNA alkalmazás, ami tud renderelni Silverlight felületet  Nekünk kell meghívni  RenderTarget megoldás  Fel tudom használni a textúrát máshogyan is

6 Silverlight + XNA Új projekt típus  3 projekt  Content – A szokásos XNA Content Pipeline  Lib – Az XNA projekt, ami kezeli a Content-et  App – A Silverlight alkalmazás, amiben referenciát adunk a Lib- re  Az App-ba mehet XNA kód és Silverlight is  De a Lib-be csak XNA

7 Silverlight + XNA Architektúra  Hasonló XNA-hoz  Konstruktor (Initialize)  OnNavigatedTo (LoadContent)  OnNavigatedFrom (UnloadContent)  OnUpdate  OnDraw KonstruktorOnNavigatedTo OnUpdate OnNavigatedFrom OnDraw 30 FPS

8 Silverlight + XNA SharedGraphicsDeviceManager  Az eszköz nem áll rendelkezésünkre kizárólagosan  SharedGraphicsDeviceManager.Current  Konstruktorban a méret  PreferredBackBufferWidth = 800;  PreferredBackBufferHeight = 480;  Betöltéskor  GraphicsDevice.SetSharingMode( true );

9 DEMO XNA+Silverlight

10 Világ felépítése  Amit renderelünk  Terep / belső tér  Ég  Víz  Növényzet  Karakter  Statikus objektumok  Volumetrikus hatások  UI – akár Silverlight is lehet

11 Virtuális világ megteremtése  Koordináta rendszer  derékszögű, jobbkezes (XNA-ban alap)  Tipikus tengely kiosztások  X,Y sík a képernyő, Z felénk mutat  X,Y sík a világ síkja, Z a magasság  Számábrázolás  float: lebegőpontos 32 bit  Elvileg lehetne más is

12 Transzformációk  4x4 mátrixok  Csontmodell: animációs alrendszer része  Helyi: Ha a grafikus rosszul modellezte  Ez nincs XNA-ban, betöltéskor transzformáljuk  Világ: helyi – világ  Nézet: világ – kamera  Vetítés: kamera – képernyő

13 Beépített árnyalók  Csak ez az 5 fajta van  Windows Phone nem támogatja saját effekt írását, sem HLSL-t BasicEffectSkinnedEffectEnvironmentMapEffectAlphaTestEffectDualTextureEffect

14 Terep / belső tér Lehetőségek +- Textúra1 textúraMax 1 textúra Nincs HLSL, így atlasz, stb. kiesnek Fényszámítás1 fényNincs normal map MéretNagyKevés vertex, de erre vannak megoldások KomplexitásElfogadhatóVertex szám és overdraw

15 Terep / belső tér Árnyaló  BasicEffect 0-3 fényforrás Vertex, vagy pixel árnyalás Textúra Köd Vertex szín

16 Ég és víz Lehetőségek +- SkyBox és SkySphereVanRészecske rendszer alapú felhőzet / víz nem jöhet szóba Környezet leképezésVanNincs normal map HullámzásLehetPixel alapú megoldás nem lehetséges Tükröződés és FresnelCube map vanTörés, vízköd, caustics nincs

17 Ég és víz Árnyaló  EnvironmentMapEffect  Környezet leképezés  Fresnel  Lightmap  Cube map A-ban

18 Növényzet és részecske rendszer Lehetőségek +- Billboard és alfa tesztVanDinamikusan generált lehetne, de kevés a memória Mint objektumLehetHLSL generált nem AnimációElvileg lehetKöltséges, nem érdemes

19 Növényzet és részecske rendszer Árnyaló  AlphaTestEffect  Billboard rendereléshez  Ahol nem látszik, ott nem is rajzol  Nem gyorsabb Phone 7-en, mert alpha ingyen van (jelenlegi hardverrel)  Z-buffert megőrzi

20 Karakterek Lehetőségek +- Model, textúra, submesh VanVertex számra figyelni kell, nincs normal map AnimációVan FényszámításPerpixel, alphaAmbiens térkép nincs ÁrnyékVanShadowmap nincs

21 Karakterek Árnyaló  SkinnedEffect  Karakter animációhoz  Az animáció a CPU-n fut  Skinning a GPU-n  Max 72 csont  1, 2, vagy 4 súly

22 Statikus objektumok Lehetőségek +- Model, textúra, submesh VanVertex számra figyelni kell, nincs normal map FényszámításPerpixel, alpha, lightmap Ha mozog, akkor ambiens térkép nincs ÁrnyékVanShadowmap nincs

23 Statikus objektum Árnyaló  DualTextureEffect  Tipikusan Lightmap-hez  Az alaptextúra és a lightmap együtt  Külön textúra koordináták  Modulate 2X (A*B*2)  Világosít, vagy sötétít  0.5 helyben hagy

24 DEMO Autó

25 XNA Content Pipeline  Speciális projekt típus, amibe médiát tudunk berakni  Textúra  Hang  Modell (X és FXB)  Font  XML – nem tetszőleges XML fájl  Videó  Tetszőleges egyéb fájl  Lefordul XNB-re

26 XNA Content Pipeline  Fordítás folyamata  ContentImporter – ez tudja beolvasni a fájlt (parser)  Kimenete Content DOM (XNA-ban lévő, vagy saját)  ContentProcessor – Content DOM-ból készít futásidejű objektumot  ContentTypeLoader – Sorosító betöltő része  ContentTypeWriter – Sorosító kimentő része

27 XNA Content Pipeline  A beépítetteket lehet használni  Lehet sajátot írni  Csak importer-t a fájlformátumokhoz  Mind a négyet  Ki is lehet kapcsolni (Content-re állítani)  Ekkor a fájl teljesen kimarad  Vagy "Copy if newer", így belekerül az XAP-be

28 Optimalizálás.NET keretrendszer  Keretrendszer sebessége  PC: gyors, jó GC, dinamikus kód jó  Xbox: elfogadható, GC nem ok, dinamikus kód nem jó  Phone: elfogadható, GC ok, dinamikus kód jó  GC  Phone-on 1MB foglalásonként indul el  Az utolsó gyűjtéstől számítva  Ne induljon el renderelés közben!  GC.Collect() pályabetöltés után

29 Optimalizálás Overdraw  Mennyiszer van egy pixel kirajzolva  1 jó, 2 ok, 10 elfogadhatatlan  Létező algoritmusok a takart objektumok eldobására (occlusion culling)  Nem igazán használhatjuk őket, mert lassú  Tervezés időben már jól kell csinálni  Z-buffer ugyanúgy eldob, mint PC-n  Előröl hátra kell rajzolni  De persze törölni kell a Z-t

30 Optimalizálás Vertex – pixel arány  Alaptétel: annyira lehet komplex a modell, amennyi pixelen látszik  Könnyű túlzásba esni  vertex-es modellel tele van a net  Jó arány 1 vertex : 50 pixel  Ég, víz, terep mind mehet ez alá bőven

31 Optimalizálás Felbontás  Alapban 800x480  Lehet bármekkora  Nagyobb is…  Kisebb is!  Nem csak a 400x240 jó, mert a hardverben van dedikált és jól működő skálázó: 611x413 is jól néz ki  Lehet más oldalarány is  A kamerát is át kell állítani ebben az esetben

32


Letölteni ppt "A program a „Tudáshasznosulást, tudástranszfert segítő eszköz-, és feltételrendszer kialakítása, fejlesztése a Műegyetemen” (TÁMOP-4.2.1-08/1/KMR-2008-0001)"

Hasonló előadás


Google Hirdetések