Megosztás a következőn keresztül:


A Unity ajánlott beállításai

A Unity olyan alapértelmezett beállításokat biztosít, amelyek általában az összes platform esetében átlagosak. A Unity azonban bizonyos, a vegyes valóságra jellemző viselkedéseket kínál, amelyek a projektbeállításokon keresztül kapcsolhatók.

Performant environment set-up

Gyenge minőségű beállítások

Fontos, hogy a Unity minőségi beállításaitnagyon alacsonyra módosítsa, hogy az alkalmazás a megfelelő keretsebességgel fusson és megfelelően teljesítsen, különösen HoloLens-fejlesztés esetén. A modern headsetek fejlesztéséhez a VR-élményt biztosító asztali gép specifikációitól függően a legalacsonyabb minőségi paraméterek nélkül is el lehet érni a framerate-et.

A Unity 2019 LTS+-ban beállíthatja a projekt minőségi szintjét a Project Gépház> Quality szerkesztésével>, majd az Alapértelmezett beállítással, ha a lefelé mutató nyílra kattint a **Nagyon gyenge minőségű szintre.

Világítási beállítások

A Minőségi jelenet beállításaihoz hasonlóan fontos, hogy optimális világítási beállításokat állítson be a Mixed Reality-alkalmazáshoz. A Unityben a Realtime Global Lighting az, amely általában a legnagyobb hatással lesz a jelenetre. A globális megvilágítás kikapcsolásához lépjen a Window>Rendering>Lighting Gépház> Realtime Global Lighting elemre.

Van egy másik világítási beállítás, a Baked Global Lighting. Ez a beállítás látványos és látványos eredményeket biztosíthat a modern headseteken, de a HoloLens-fejlesztésre nem alkalmazható. A Sült globális megvilágítás csak statikus GameObjects-ekhez van kiszámítva, amelyek nem találhatók a HoloLens-jelenetekben egy ismeretlen és változó környezet természete miatt.

További információért olvassa el a Unity globális megvilágítását.

Feljegyzés

A Realtime Global Illumination jelenetenként van beállítva, így a fejlesztőknek a projekt minden Unity-jelenetéhez menteniük kell ezt a tulajdonságot.

Egybemenő instancing renderelési útvonal

A Mixed Reality-alkalmazásokban a jelenet kétszer jelenik meg: minden szemhez egyszer. A hagyományos 3D fejlesztéshez képest ez gyakorlatilag megduplázza a kiszámítandó munka mennyiségét. Fontos, hogy a Unityben válassza ki a leghatékonyabb megjelenítési útvonalat, hogy cpu- és GPU-időt takarítson meg. Az egybemenő példányos renderelés optimalizálja a Unity renderelési folyamatát vegyes valóságbeli alkalmazásokhoz; javasoljuk, hogy alapértelmezés szerint minden projektnél engedélyezze ezt a beállítást.

A funkció engedélyezése a Unity-projektben

  1. Nyissa meg az OpenXR Gépház (nyissa meg a Project Gépház> XR beépülő modulkezelő>OpenXR szerkesztését).>
  2. A Renderelési mód legördülő menüben válassza a Single Pass Instanced lehetőséget.

Ezzel a megjelenítési megközelítéssel további részletekért olvassa el a Unity alábbi cikkeit.

Feljegyzés

A Single Pass Instanced Rendering egyik gyakori problémája akkor fordul elő, ha a fejlesztők már rendelkeznek olyan egyéni árnyékolókkal, amelyeket nem instancingra írtak. A funkció engedélyezése után a fejlesztők észrevehetik, hogy egyes GameObjects-elemek csak egy szemen belül jelennek meg. Ennek az az oka, hogy a társított egyéni árnyékolók nem rendelkeznek a megfelelő tulajdonságokkal az instancinghoz.

A mélységi puffer megosztásának engedélyezése

Annak érdekében, hogy jobb hologramstabilitást érjen el a felhasználó észlelése alapján, ajánlott engedélyezni a Mélységi puffermegosztás tulajdonságot a Unityben. Ennek bekapcsolásával a Unity megosztja az alkalmazás által készített mélységi térképet a Windows Mixed Reality platformmal. A platform ezután jobban optimalizálhatja a hologram stabilitását kifejezetten a jelenethez az alkalmazás által renderelt bármely adott kerethez.

A funkció engedélyezése a Unity-projektben

  1. Nyissa meg az OpenXR Gépház (nyissa meg a Project Gépház> XR beépülő modulkezelő>OpenXR szerkesztését).>
  2. Válassza a Mélység 16 bit lehetőséget a Mélység beküldési mód legördülő menüből.

A 16 bites mélységi pufferbeállítás különösen ajánlott a HoloLens fejlesztéséhez. Ha a 24 biteshez képest 16 biteset választ, az jelentősen csökkenti a sávszélességre vonatkozó követelményeket, mivel kevesebb adatot kell áthelyezni/feldolgozni. Igaz, az optimalizálás bizonyos költségekkel jár. Győződjön meg arról, hogy tisztában van az alábbi Fontos mezőkben említett következményekkel.

Annak érdekében, hogy a Windows Mixed Reality platform optimalizálja a hologram stabilitását, a mélységi pufferre támaszkodik, hogy pontos legyen, és megfeleljen a képernyőn megjelenő renderelt hologramoknak. Így ha a mélységi pufferek megosztása be van kapcsolva, a szín renderelésekor fontos, hogy a mélységet is renderelje. A Unityben a legtöbb átlátszatlan vagy TransparentCutout-anyag alapértelmezés szerint mélységet jelenít meg, de a transzparens és szöveges objektumok nem renderelik a mélységet, bár ez az árnyékolóktól és más tényezőktől függ.

Ha a Mixed Reality Toolkit Standard shaderrel jeleníti meg a mélységet transzparens objektumok esetében:

  1. Válassza ki az MRTK Standard árnyékolót használó átlátszó anyagot, és nyissa meg az Inspector szerkesztőablakot
  2. Válassza a Javítás most gombot a mélységi puffermegosztási figyelmeztetésben. Ez manuálisan is elvégezhető, ha a Renderelési módot egyénire állítja, majd a Módot Transzparens értékre állítja, végül pedig a Mélységi írás beállítást bekapcsolva

Fontos

A fejlesztőknek óvakodjanak a Z-harctól, amikor megváltoztatják ezeket az értékeket a kamera közeli/távoli sík beállításaival együtt. A Z-Fighting akkor fordul elő, amikor két gameobject ugyanabba a képpontba próbál renderelni, és a mélységi puffer (azaz a z mélység) hűségének korlátozása miatt a Unity nem tudja felismerni, hogy melyik objektum van a másik előtt. A fejlesztők két játékobjektum között villódzó villódzást fognak megfigyelni, miközben ugyanazért a z-mélységért harcolnak. Ez 24 bites mélységi formátumra váltással oldható meg, mivel minden objektumhoz nagyobb értéktartomány lesz kiszámítva a kamerából származó z-mélység alapján.

Javasoljuk azonban, különösen a HoloLens fejlesztése esetén, hogy a kamera közeli és távoli síkjait kisebb tartományra módosítsa, és megtartsa a 16 bites mélységi formátumot. A z mélység nem lineárisan van leképezve a közeli és távoli kamerasíkok mentén található értékek tartományára. Ez módosítható a jelenet fő Kamera kiválasztásával, és az Inspector alatt módosítsa a Közeli és távol vágósík értékeit a tartományuk csökkentése érdekében (például 1000 m-ről 100 m-re vagy más x értékre stb.)

Fontos

A Unity nem hoz létre rajzsablon-puffert 16 bites mélységi formátum használatakor. Így egyes Unity felhasználói felületi effektusok és más rajzsablonhoz szükséges effektusok csak akkor működnek, ha 24 bites mélységi formátum van kiválasztva, amely létrehoz egy 8 bites rajzsablonpuffert.

Az IL2CPP létrehozása

A Unity elavulttá tette a .NET-szkriptek háttérrendszerének támogatását, ezért azt javasolja a fejlesztőknek, hogy az IL2CPP-t használják a UWP Visual Studio-buildjeikhez. Bár ez számos előnnyel jár, az IL2CPP-hez készült Unity visual Studio-megoldás létrehozása lassabb lehet, mint a régi .NET-módszer. Ezért erősen ajánlott követni az IL2CPP készítésének ajánlott eljárásait, hogy időt takarítson meg a fejlesztési iterációban.

  1. Használja ki a növekményes építést úgy, hogy a projektet minden alkalommal ugyanarra a könyvtárra építi, és ott használja újra az előre elkészített fájlokat
  2. Kártevőirtó szoftvervizsgálatok letiltása a projekthez és a buildmappákhoz
    • A Vírus és fenyegetésvédelem megnyitása a Windows 10 beállításalkalmazásában
    • Válassza a Gépház kezelése lehetőséget a Vírus > veszélyforrások elleni védelem beállításai alatt
    • A Kizárások szakaszban válassza a Kizárások hozzáadása vagy eltávolítása lehetőséget
    • Válassza a Kizárás hozzáadása lehetőséget, és válassza ki a Unity-projektkódot és a kimeneteket tartalmazó mappát
  3. SSD használata az épülethez

További információért olvassa el az IL2CPP buildelési idejének optimalizálását.

Feljegyzés

Emellett hasznos lehet gyorsítótár-kiszolgálót beállítani, különösen olyan Unity-projektek esetében, amelyek nagy mennyiségű objektummal rendelkeznek (a szkriptfájlok kivételével), vagy folyamatosan módosítják a jeleneteket/objektumokat. Projekt megnyitásakor a Unity a megfelelő objektumokat belső gyorsítótárformátumban tárolja a fejlesztői gépen. Az elemeket újra kell importálni, és módosításkor újra kell feldolgozni. Ez a folyamat egyszer elvégezhető, és menthető egy Gyorsítótár-kiszolgálón, és így megosztva más fejlesztőkkel, hogy időt takarítson meg, ahelyett, hogy minden fejlesztő helyben dolgozza fel az új módosítások újraimportálását.

Közzétételi tulajdonságok

Holografikus kezdőképernyő

A HoloLens mobilosztályú CPU-val és GPU-val rendelkezik, ami azt jelenti, hogy az alkalmazások betöltése egy kicsit tovább tarthat. Amíg az alkalmazás be van töltve, a felhasználók csak fekete színt fognak látni, így felmerülhet bennük a kérdés, hogy mi történik. Ha meg szeretné nyugtázni őket a betöltés során, hozzáadhat egy holografikus kezdőképernyőt.

A holografikus kezdőképernyő váltása:

  1. Ugrás a Project Gépház> Player lap szerkesztésére>
  2. Válassza a Windows Áruház lapfület, és nyissa meg a Splash Image szakaszt
  3. Alkalmazza a képet a Windows Holographic Holographic > Splash Image tulajdonság alatt.
    • A Unity fröccsenő képernyő megjelenítése beállítás összesítése engedélyezi vagy letiltja a Unity márkájú kezdőképernyőt. Ha nem rendelkezik Unity Pro-licenccel, a Unity márkájú kezdőképernyő mindig megjelenik.
    • Holografikus fröccsenő kép alkalmazása esetén mindig megjelenik, hogy engedélyezve vagy letiltva van-e a Unity fröccsenő képernyő megjelenítése jelölőnégyzet. Egyéni holografikus kezdőkép megadása csak Unity Pro-licenccel rendelkező fejlesztők számára érhető el.
A Unity kezdőképernyőjének megjelenítése Holografikus kezdőkép Működés
Be Egyik sem Az alapértelmezett Unity kezdőképernyő megjelenítése 5 másodpercig vagy az alkalmazás betöltéséig, attól függően, hogy melyik hosszabb.
Be Egyéni Az egyéni kezdőképernyő megjelenítése 5 másodpercig vagy az alkalmazás betöltéséig, attól függően, hogy melyik hosszabb.
Kikapcsolva Egyik sem Áttetsző fekete (semmi) megjelenítése az alkalmazás betöltéséig.
Kikapcsolva Egyéni Az egyéni kezdőképernyő megjelenítése 5 másodpercig vagy az alkalmazás betöltéséig, attól függően, hogy melyik hosszabb.

További információért olvassa el a Unity kezdőképernyős dokumentációját .

Veszteség nyomon követése

A vegyes valóság headset attól függ, hogy a környezet látható-e körülötte, hogy világzárolt koordináta-rendszereket hozzon létre, amelyek lehetővé teszik a hologramok pozíciójának megőrzését. Ha a headset nem tudja megtalálni magát a világon, a headset azt mondják, hogy elvesztette a nyomon követés. Ezekben az esetekben a világzárt koordinátarendszerektől , például a térbeli szakaszoktól, a térbeli horgonyoktól és a térbeli leképezéstől függő funkciók nem működnek.

Ha a nyomon követés megszakad, a Unity alapértelmezett viselkedése az, hogy leállítja a hologramok renderelését, szünetelteti a játék ciklusát, és megjelenít egy elveszett nyomkövetési értesítést, amely kényelmesen követi a felhasználók tekintetét. Az egyéni értesítések nyomkövetési veszteség kép formájában is megadhatóak. Az olyan alkalmazások esetében, amelyek a teljes felhasználói élmény nyomon követésétől függenek, elegendő, ha a Unity ezt teljes egészében kezeli, amíg vissza nem nyeri a nyomkövetést. A fejlesztők a veszteség nyomon követése során megjelenítendő egyéni rendszerképet adhatnak meg.

Az elveszett kép nyomon követésének testreszabása:

  1. Ugrás a Project Gépház> Player lap szerkesztésére>
  2. Válassza ki a Windows Áruház lapon, és nyissa meg a Splash Image szakaszt
  3. Alkalmazza a rendszerképet a Windows Holographic > Tracking Loss Image tulajdonság alatt.

Automatikus szüneteltetés letiltása

Előfordulhat, hogy egyes alkalmazások nem igényelnek nyomon követést (például a csak tájolású alkalmazásokat , például a 360 fokos videómegjelenítőket), vagy előfordulhat, hogy a nyomon követés elveszése közben folyamatos feldolgozást kell folytatniuk. Letilthatja a nyomkövetési viselkedés alapértelmezett elvesztését, de ön felelős az objektumok elrejtéséért/letiltásáért, amelyek nem jelennek meg megfelelően a nyomkövetési veszteséges forgatókönyvekben. A legtöbb esetben az egyetlen olyan tartalom, amelyet ebben az esetben javasolt megjeleníteni, a fő kamera köré középre zárt, testre zárt tartalom.

Az automatikus szüneteltetési viselkedés letiltása:

  1. Ugrás a Project Gépház> Player szerkesztése>lapra
  2. Válassza a Windows Áruház lapfület, és nyissa meg a Splash Image szakaszt
  3. Módosítsa a Windows Holographic > on Tracking Loss Pause és Show Image jelölőnégyzetet.

Veszteségesemények nyomon követése

Ha egyéni viselkedést szeretne meghatározni a nyomon követés elvesztésekor, kezelje a globális nyomkövetési veszteségeseményeket.

Képességek

Ahhoz, hogy egy alkalmazás kihasználhassa bizonyos funkciók előnyeit, deklarálnia kell a megfelelő képességeket a jegyzékben. A jegyzék-deklarációk a Unityben is végrehajthatók, így minden jövőbeli projektexportálás részét képezik.

A képességek a Következővel engedélyezhetők a Mixed Reality-alkalmazásokhoz:

  1. Ugrás a Project Gépház> Player lap szerkesztésére>
  2. Válassza a Windows Áruház lapfület, nyissa meg a Közzététel Gépház szakaszt, és keresse meg a Képességek listát

A holografikus alkalmazásokhoz gyakran használt API-k engedélyezésének lehetőségei a következők:

Funkció Képességeket igénylő API-k
SpatialPerception SurfaceObserver
Webkamera PhotoCapture és VideoCapture
PicturesLibrary / VideosLibrary PhotoCapture vagy VideoCapture (a rögzített tartalom tárolásakor)
Mikrofon VideoCapture (hangrögzítéskor), DictationRecognizer, GrammarRecognizer és KeywordRecognizer
InternetClient DictationRecognizer (és a Unity Profiler használata)

Lásd még