VR Tower Defense játék (TecTacTD)

2016. október 28. 10:05 - tectactd

Frame vadászat

Az elmúlt két nap még mindig a framek vadászásával telt. Most arról olvashattok röviden, hogy mire jutottam és ez nem feltétlenül jelenti azt, hogy mindenhol igazam van... ;)

Egyszerűbb headset nélkül

Ha még nem tetted, kapcsold át a telefonod GearVR Dev módba. Így nem kell felkapnod a fejedre mindig a headset-et, hogy kipróbáld amit alkottál. Emellett maradhat a telefon USB-n és már mehet is a profiling.
Ennek egészen érdekes mellékhatása, hogy cardboard-ban is egészen használhatóak utána a GearVR appok.
Application Manager -> All -> GearVR Service -> Manage Storage és tappoljatok hétszer a VR Service Version-re. Ezután a Developer Mode elérhető lesz egy kapcsolóként.

Fontos, hogy ezeken a kereteken belül maradj, ha folyamatos képet szeretnél látni:

  • 50 – 100 draw call/frame
  • 50k – 100k polygons/frame
  • Amennyire kevés textura csak lehetséges(de lehetnek nagyok)
  • 1-3 ms script execution - Unity Update()
  • + nem árt tudni, hogy ha 60FPS alá esik a framerate, akkor az oculus azonnal stabil 30FPS-re húzza le. Soha ne essetek 60FPS alá! 

1d4b61.jpg

Amik mindenképpen legyenek bekapcsolva a Unity project settingsben:

  • Static batching
  • Dynamic batching
  • GPU skinning
  • Multithreaded Rendering
  • Default Orientation to Landscape Left


A mesh-ek számának csökkentése

A draw call-ok számának csökkentése hozta meg számomra legjelentősebb javulást. A pályán található tile-ok mindegyike egy-egy quad object volt. Ezekből közel 100 darab volt lepakolva.
Feljebb ugye azt írtam, hogy 50-100 draw az ideális gearVR-on, így már csak a tile-ok kirajzolásával a határt feszegettem és a díszítő elemekről, tornyokról és az összes többi object-ről még nem is beszéltünk.
A megoldás pedig nem más lett, mint a Mesh.CombineMeshes hívás.

screenshot_20161028-090133.png

Első körben elkezdtem megírni a saját script-emet hozzá. 1-2 óra alatt sikerült eljutnom odáig, hogy már volt egy egységesített mesh-em minden object-ről, viszont a material-okat még nem kezelte külön. (itt nem csak a tile-okról volt szó, hanem a teljes pályával próbálkoztam) Az pedig nem szép, ha minden ugyanolyan színt kap.

Mivel már éjfél után jártam bőven ezen a ponton, de nem akartam úgy kidőlni, hogy még mindig akad a játék így az asset store-hoz folyamodtam, ahol azonnal meg is lett amit kerestem. Egy kattintással összehúzta a szükséges gameobjecteket és a materialok is megvoltak hozzá.

Visszatérve a tile-ok kérdésére: lett egy olyan tile object-em amin mindegyik rajta volt egyetlen mesh-ként. Így viszont nem működik a tile kijelölés, mert ugye az összeset jelölném ki egyszerre. Szóval megtartottam a régi tile-okat is, csak Start()-nál kikapcsolom a mesh rendert és csak akkor kapcsolom vissza őket, ha ki vannak jelölve. Alatta pedig ott van a korábban egyesített mesh, hogy látszódjona tile-ok helye.

Ugyanez a módszer el lett játszva a turretek-kel is, amiket primitive-ekből építettem. Ahogy rájuk néztem azonnal visszaesett a framerate 30-ra. Szóval ezeket is sikerült optimalizálni a fent linkelt tool-al. Most már egészen stabil a 60FPS.

screenshot_20161028-090212.png

Material-ok változtatása

A kijelölt tile-ok és platformok esetében a material color és emission értékét módosítom script-ben. Mikor bármi változik a Renderer.material-ban akkor egy másolat keletkezik az adott material-ból. A legtöbb helyen azt ajánlják, hogy a sharedMaterial-t módosítsam, viszont esetünkben ez nem járható út, mert ha kijelölök egy platformot, akkor az összes megkapja a kijelölés színt.

A megoldásnak jelen pillanatban az tűnik, hogy létrehoztam egy selection materialt és egyszerűen kicserélem erre mikor fölé megyek a kurzorral. Eddig jónak tűnik, de ezt már nem volt időm alaposabban letesztelni az este.

Szólj hozzá!

A bejegyzés trackback címe:

https://tectactd.blog.hu/api/trackback/id/tr8911845371

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
VR Tower Defense játék (TecTacTD)