Dela via


Rekommenderade inställningar för Unity

Unity tillhandahåller en uppsättning standardalternativ som i allmänhet är det genomsnittliga fallet för alla plattformar. Unity erbjuder dock vissa beteenden som är specifika för mixad verklighet som kan växlas genom projektinställningar.

Konfiguration av prestandamiljö

Inställningar av låg kvalitet

Det är viktigt att ändra Unity Quality-inställningarna till Mycket låg så att programmet körs och fungerar bra vid rätt ramhastighet, särskilt för HoloLens-utveckling. För utveckling av uppslukande headset, beroende på specifikationerna för skrivbordet som driver VR-upplevelsen, kan man fortfarande uppnå framerate utan parametrar med lägsta kvalitet.

I Unity 2019 LTS+ kan du ange projektets kvalitetsnivå genom att gå till Redigera>projekt Inställningar> Kvalitet och ange Standard genom att klicka på nedåtpilen till nivån **Mycket låg kvalitet.

Belysningsinställningar

Precis som sceninställningarna för kvalitet är det viktigt att ange optimala belysningsinställningar för ditt Mixed Reality-program. I Unity är den belysningsinställning som vanligtvis har störst prestandapåverkan på din scen global belysning i realtid. Du kan inaktivera global belysning genom att gå till Windows>Rendering>Lighting Inställningar> Realtime Global Illumination.

Det finns en annan belysningsinställning, Baked Global Illumination. Den här inställningen kan ge högpresterande och visuellt slående resultat på uppslukande headset, men den gäller inte för HoloLens-utveckling. Bakad global belysning beräknas endast för statiska GameObjects, som inte finns i HoloLens-scener på grund av en okänd och föränderlig miljö.

Mer information finns i Global belysning från Unity .

Kommentar

Global belysning i realtid anges per scen och därför måste utvecklare spara den här egenskapen för varje Unity-scen i sitt projekt.

Sökväg för enkel pass-instancing-återgivning

I Mixed Reality-program återges scenen två gånger: en gång för varje öga. Jämfört med traditionell 3D-utveckling fördubblar detta effektivt mängden arbete som behöver beräknas. Det är viktigt att välja den mest effektiva renderingsvägen i Unity för att spara både cpu- och GPU-tid. Rendering med enkel passinstans optimerar Unity-renderingspipelinen för appar med mixad verklighet. Vi rekommenderar att du aktiverar den här inställningen som standard för varje projekt.

Så här aktiverar du den här funktionen i ditt Unity-projekt

  1. Öppna OpenXR Inställningar (gå till Redigera>Project Inställningar> XR Plugin Management>OpenXR).
  2. Välj Enkel direktinstans i listrutan Återgivningsläge.

Läs följande artiklar från Unity för mer information om den här återgivningsmetoden.

Kommentar

Ett vanligt problem med enkel passinstansåtergivning uppstår om utvecklare redan har befintliga anpassade skuggor som inte har skrivits för instancing. När du har aktiverat den här funktionen kan utvecklare märka att vissa GameObjects endast renderas i ett öga. Det beror på att de associerade anpassade skuggningarna inte har rätt egenskaper för instancing.

Aktivera djupbuffertdelning

För att uppnå bättre hologramstabilitet från användarens uppfattning rekommenderar vi att du aktiverar egenskapen Djupbuffertdelning i Unity. Genom att aktivera detta delar Unity djupkartan som skapats av ditt program med Windows Mixed Reality-plattformen. Plattformen kan sedan bättre optimera hologramstabilitet specifikt för din scen för alla angivna ramar som återges av ditt program.

Så här aktiverar du den här funktionen i ditt Unity-projekt

  1. Öppna OpenXR Inställningar (gå till Redigera>Project Inställningar> XR Plugin Management>OpenXR).
  2. Välj Djup 16 bitar i den nedrullningsbara menyn Djupöverföringsläge .

16-bitars djupbuffertinställningen rekommenderas särskilt för HoloLens-utveckling. Om du väljer 16-bitars jämfört med 24-bitars minskar bandbreddskraven avsevärt eftersom mindre data måste flyttas/bearbetas. Som sagt, optimeringen kommer med viss kostnad. Se till att du förstår de konsekvenser som anges i rutorna Viktigt nedan.

För att Windows Mixed Reality-plattformen ska optimera hologramstabiliteten förlitar den sig på att djupbufferten är korrekt och matchar eventuella renderade hologram på skärmen. Med djupbuffertdelning på är det därför viktigt när du återger färg för att även återge djup. I Unity återger de flesta ogenomskinliga eller TransparentCutout-material som standard djup, men transparenta objekt och textobjekt återges inte djup, även om detta är beroende av skuggningar och andra faktorer.

Om du använder Mixed Reality Toolkit Standard Shader för att återge djup för transparenta objekt:

  1. Välj det transparenta material som använder MRTK Standard-skuggningen och öppna fönstret Inspector-redigeraren
  2. Välj knappen Åtgärda nu i djupbuffertdelningsvarningen. Detta kan också utföras manuellt genom att ange återgivningsläget till Anpassat. Ange sedan Läget till Transparent och ange slutligen Djupskrivning till

Viktigt!

Utvecklare bör akta sig för Z-fighting när de ändrar dessa värden tillsammans med kamerans nästan/långt-planinställningar. Z-Fighting inträffar när två gameobjects försöker rendera till samma pixel och på grund av begränsningar i återgivningen av djupbufferten (dvs. z djup) kan Unity inte urskilja vilket objekt som ligger framför det andra. Utvecklare kommer att notera ett flimrande mellan två spelobjekt när de kämpar för samma z-djupvärde. Detta kan lösas genom att växla till 24-bitars djupformat eftersom det kommer att finnas ett större intervall med värden för varje objekt att beräkna på för deras z-djup från kameran.

Det rekommenderas dock, särskilt för HoloLens utveckling, att ändra kamerans när och fjärran plan till ett mindre intervall istället och behålla 16-bitars djupformatet. Z-djupet är icke-linjärt mappat till intervallet med värden längs de närmaste och fjärran kameraplan. Detta kan ändras genom att välja Main Kamera i din scen och under Inspector ändrar du värdena för nära och långt urklippsplan för att minska deras intervall (dvs. från 1 000 m till 100 m eller annat x-värde osv.)

Viktigt!

Unity skapar ingen stencilbuffert när du använder 16-bitars djupformat. Därför fungerar inte vissa Unity-gränssnittseffekter och andra stencil-obligatoriska effekter om inte 24-bitars djupformat har valts, vilket skapar en 8-bitars stencilbuffert.

Byggnad för IL2CPP

Unity har inaktuellt stöd för .NET-skriptserverdelen och rekommenderar därför att utvecklare använder IL2CPP för sina UWP Visual Studio-versioner. Även om detta medför olika fördelar kan det vara långsammare att skapa en Visual Studio-lösning från Unity för IL2CPP än den gamla .NET-metoden. Därför rekommenderar vi starkt att du följer metodtipsen för att skapa IL2CPP för att spara på iterationstiden för utveckling.

  1. Utnyttja inkrementell byggnad genom att skapa projektet till samma katalog varje gång och återanvända de fördefinierade filerna där
  2. Inaktivera programgenomsökningar mot skadlig kod för dina projekt- och byggmappar
    • Öppna virus- och hotskydd i din Windows 10-inställningsapp
    • Välj Hantera Inställningar under Inställningar för skydd mot virus och hot
    • Välj Lägg till eller ta bort undantag under avsnittet Undantag
    • Välj Lägg till ett undantag och välj mappen som innehåller unity-projektkoden och kompileringsutdata
  3. Använda en SSD för att skapa

Mer information finns i Optimera byggtider för IL2CPP .

Kommentar

Dessutom kan det vara fördelaktigt att konfigurera en cacheserver, särskilt för Unity-projekt med en stor mängd tillgångar (exklusive skriptfiler) eller ständigt föränderliga scener/tillgångar. När du öppnar ett projekt lagrar Unity kvalificerade tillgångar i ett internt cacheformat på utvecklardatorn. Objekt måste importeras på nytt och bearbetas på nytt när de ändras. Den här processen kan göras en gång och sparas på en cacheserver och därför delas med andra utvecklare för att spara tid, i stället för att alla utvecklare bearbetar återimporten av nya ändringar lokalt.

Publiceringsegenskaper

Holografisk välkomstskärm

HoloLens har en processor och GPU i mobilklass, vilket innebär att appar kan ta lite längre tid att läsa in. Medan appen läses in ser användarna bara svart, så de kanske undrar vad som händer. För att lugna dem under inläsningen kan du lägga till en holografisk välkomstskärm.

Så här växlar du den holografiska välkomstskärmen:

  1. Gå till sidan Redigera>project Inställningar Player>
  2. Välj fliken Windows Store och öppna avsnittet Välkomstbild
  3. Använd bilden under egenskapen Windows Holographic Holographic > Splash Image .
    • Om du hämtar alternativet Visa Unity-välkomstskärm aktiveras eller inaktiveras välkomstskärmen i Unity. Om du inte har en Unity Pro-licens visas alltid välkomstskärmen med Unity-märket.
    • Om en Holographic Splash Image används visas den alltid om kryssrutan Visa Unity Splash Screen är aktiverad eller inaktiverad. Att ange en anpassad holografisk välkomstbild är bara tillgängligt för utvecklare med en Unity Pro-licens.
Visa Unity-välkomstskärmen Holographic Splash Image Funktionssätt
Ingen Visa standardskärmen för Unity-välkomstskärmen i 5 sekunder eller tills appen har lästs in, beroende på vilket som är längre.
Anpassat Visa anpassad välkomstskärm i 5 sekunder eller tills appen har lästs in, beroende på vilket som är längre.
Av Ingen Visa transparent svart (ingenting) tills appen har lästs in.
Av Anpassat Visa anpassad välkomstskärm i 5 sekunder eller tills appen har lästs in, beroende på vilket som är längre.

Mer information finns i Dokumentation om Välkomstskärmen i Unity.

Spåra förlust

Ett headset för mixad verklighet är beroende av att se miljön runt den för att konstruera världslåst koordinatsystem, vilket gör att hologram kan förbli på plats. När headsetet inte kan hitta sig själv i världen sägs headsetet ha förlorat spårningen. I dessa fall fungerar inte funktioner som är beroende av världslåst koordinatsystem, till exempel rumsliga faser, rumsliga fästpunkter och rumslig mappning.

Om spårningen går förlorad är Unitys standardbeteende att sluta återge hologram, pausa spelloopen och visa en spårningsförlust som bekvämt följer användarnas blick. Anpassade meddelanden kan också tillhandahållas i form av en spårningsförlustbild. För appar som är beroende av spårning för hela upplevelsen räcker det att låta Unity hantera detta helt tills spårningen har återtagits. Utvecklare kan ange en anpassad avbildning som ska visas under spårningsförlust.

Så här anpassar du den förlorade spårningsavbildningen:

  1. Gå till sidan Redigera>project Inställningar Player>
  2. Välj på fliken Windows Store och öppna avsnittet Välkomstbild
  3. Använd avbildningen under egenskapen Windows Holographic > Tracking Loss Image .

Avaktivering av automatisk paus

Vissa appar kanske inte kräver spårning (t.ex. endast orienteringsappar , till exempel 360-graders videovisningsprogram) eller så kan de behöva fortsätta bearbetningen utan avbrott när spårningen går förlorad. Du kan välja bort standardförlusten av spårningsbeteendet, men du ansvarar för att dölja/inaktivera objekt, vilket inte skulle återges korrekt i ett spårningsförlustscenario. I de flesta fall är det enda innehåll som rekommenderas att återges i det fallet kroppslåst innehåll, centrerat runt huvudkameran.

Så här avregistrerar du dig från automatiskt pausbeteende:

  1. Gå till sidan Redigera>projekt Inställningar Player>
  2. Välj fliken Windows Store och öppna avsnittet Välkomstbild
  3. Ändra kryssrutan Windows Holographic > On Tracking Loss Pause och Visa bild .

Spåra förlusthändelser

Om du vill definiera anpassat beteende när spårning går förlorad hanterar du de globala spårningsförlusthändelserna.

Funktioner

För att en app ska kunna dra nytta av vissa funktioner måste den deklarera lämpliga funktioner i sitt manifest. Manifestdeklarationerna kan göras i Unity så att de ingår i varje framtida projektexport.

Funktioner kan aktiveras för ett Mixed Reality-program genom att:

  1. Gå till sidan Redigera>project Inställningar Player>
  2. Välj fliken Windows Store, öppna avsnittet Publicera Inställningar och leta efter listan Funktioner

De tillämpliga funktionerna för att aktivera de vanliga API:erna för holografiska appar är:

Kapacitet API:er som kräver kapacitet
SpatialPerception SurfaceObserver
Webbkamera PhotoCapture och VideoCapture
PicturesLibrary/VideosLibrary PhotoCapture respektive VideoCapture (vid lagring av det insamlade innehållet)
Mikrofon VideoCapture (vid inspelning av ljud), DictationRecognizer, GrammarRecognizer och KeywordRecognizer
InternetClient DictationRecognizer (och för att använda Unity Profiler)

Se även