Rekommenderade inställningar för Unity

Unity tillhandahåller en uppsättning standardalternativ som vanligtvis är det genomsnittliga fallet för alla plattformar. Unity erbjuder dock vissa beteenden som är specifika för mixad verklighet och som kan bläddras igenom projektinställningar.

Konfigurera en performant miljö

Lågkvalitetsinställningar

Det är viktigt att ändra inställningarna för Unity-kvalitet till Mycket låg så att ditt program körs och presterar bra med lämplig bildfrekvens, särskilt för HoloLens utveckling. För utveckling på integrerande headset kan man, beroende på specifikationerna för skrivbordet som driver VR-upplevelsen, fortfarande uppnå bildfrekvens utan parametrar av lägsta kvalitet.

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

Belysningsinställningar

Precis som med Kvalitetssceninställningar är det viktigt att ange optimala ljusinställningar för ditt Mixed Reality program. I Unity är den belysningsinställning som vanligtvis har störst prestandapåverkan på din scen i realtid global behållning. Du kan stänga av global miljö genom att gå tillWindowRenderingLighting>>Inställningar>Realtime Global Eng.

Det finns en annan belysningsinställning, Baked Global Entens. Den här inställningen kan ge resultat med goda och visuella resultat på integrerande headset, men gäller inte för HoloLens utveckling. Baked Global Scenes 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 Unity .

Anteckning

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

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 för användaren. Jämfört med traditionell 3D-utveckling fördubblar detta i praktiken mängden arbete som behöver beräknas. Det är viktigt att välja den mest effektiva återgivningsvägen i Unity för att spara både CPU- och GPU-tid. Rendering med enkelinstans optimerar Unity-återgivningspipelinen för Mixed Reality appar och 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 din Unity Project

  1. Open Player XR Inställningar (gå till Redigera>Project Inställningar>PlayerXR> Inställningar)
  2. Välj Single Pass Instanced från listrutan Stereo renderingsmetod (kryssrutan Virtual Reality Supported (Virtual Reality Stöds ) måste vara markerad)

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

Anteckning

Ett vanligt problem med Single Pass Instanced Rendering inträffar om utvecklare redan har befintliga anpassade skuggare som inte är skrivna för instancing. När du har aktivera den här funktionen kan utvecklare se att vissa GameObjects endast återges med ett öga. Det beror på att de associerade anpassade skuggarna inte har lämpliga egenskaper för instancing.

Se Single Pass Stereo Rendering för information HoloLens Från Unity för att lösa det här problemet

Aktivera delning av djupbuffert

För att uppnå bättre hologramstabilitet från användarens uppfattning rekommenderar vi att du aktiverar egenskapen Delning av djupbuffert i Unity. Genom att aktivera detta delar Unity djupkartan som produceras av ditt program med Windows Mixed Reality plattformen. Plattformen kan sedan optimera hologramstabiliteten specifikt för din scen för en viss bildruta som återges av ditt program.

Så här aktiverar du den här funktionen i din Unity Project

  1. Open Player XR Inställningar (gå till Redigera>Project Inställningar>PlayerXR> Inställningar)
  2. Markera kryssrutan för Aktivera delning av djupbuffert under VIRTUAL Reality-WINDOWS MIXED REALITY>(kryssrutanVirtual Reality Stöds måste vara markerad)

Vi rekommenderar dessutom att du väljer 16-bitars djup under inställningen Djupformat i den här panelen, särskilt för HoloLens Development. Om du väljer 16-bitars jämfört med 24-bitars minskar bandbreddskraven avsevärt eftersom mindre data behöver flyttas/bearbetas.

För att Windows Mixed Reality-plattformen ska optimera hologramstabiliteten förlitar den sig på att djupbufferten är korrekt och matchar alla renderade hologram på skärmen. Med delning av djupbufferten på är det därför viktigt att även rendera djup när du återger färg. I Unity återger de flesta Täckande eller TransparentCutout-material djup som standard, men transparenta objekt och textobjekt återger inte djup även om detta är skuggarberoende osv.

Om du använder Mixed Reality Toolkit Standard-skuggaren för att rendera djup för transparenta objekt:

  1. Välj det transparenta material som använder MRTK Standard-skuggaren och öppna fönstret Inspector-redigeraren
  2. Välj knappen Åtgärda nu i varningen om delning av djupbuffert. Detta kan också utföras manuellt genom att ange Renderingsläge till Anpassat. ställ sedan in LägeTransparent och slutligen På för Djupskrivning

Viktigt

Utvecklare bör vara försiktig med Z-strider när de ändrar dessa värden tillsammans med kamerans när-/fjärranplansinstä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 är framför det andra. Utvecklarna kommer att märka en reducering mellan två spelobjekt när de bekä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 värdeintervall för varje objekt att beräkna på för z-djup från kameran.

Vi rekommenderar dock, särskilt för HoloLens utveckling, att ändra kamerans när- och fjärranplan till ett mindre intervall i stället och behålla 16-bitars djupformatet. Z-djupet är icke-linjärt mappat till intervallet med värden längs nära och långt kameraplan. Detta kan ändras genom att välja huvudkameran i scenen och ändra värdena för Near Far C upp urklippsplanet under & Kontroll för att minska deras intervall (från 1 000 m till 100 m eller ett annat x-värde osv.)

Viktigt

Unity skapar inte någon stencilbuffert när 16-bitars djupformat används. Därför fungerar inte vissa Unity-gränssnittseffekter och andra stenciler som krävs såvida inte 24-bitars djupformat har valts, vilket skapar en 8-bitars stencilbuffert.

Byggnad för IL2CPP

Unity har inaktuellt stöd för .NET-skript backend och rekommenderar därför att utvecklare använder IL2CPP för sina UWP Visual Studio-byggen. Även om det ger olika fördelar kan det ta längre tid 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å utvecklings iterationstiden.

  1. Utnyttja den inkrementella byggnaden genom att skapa projektet i samma katalog varje gång, och återanvända de förbyggda filerna där
  2. Inaktivera programsökningar mot skadlig kod för dina projektbyggmappar &
    • Öppna Skydd & mot virushot under din Windows 10 inställningsapp
    • Välj Hantera Inställningar under Inställningar för skydd & mot virushot
    • 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 din Unity-projektkod och byggutdata
  3. Använda en SSD för att skapa

Mer information finns i Optimera byggtider för IL2CPP .

Anteckning

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 kvalificerande tillgångar i ett internt cacheformat på utvecklardatorn. Objekt måste importeras på nya sätt och bearbetas på samma sätt när de ändras. Den här processen kan göras en gång och sparas i en cacheserver och delas därför med andra utvecklare för att spara tid, i stället för varje utvecklare som bearbetar omimporten av nya ändringar lokalt.

Publiceringsegenskaper

Holographic-välkomstskärm

HoloLens har en processor och GPU i mobilklass, vilket innebär att apparna kan ta lite längre tid att läsa in. När appen läses in ser användarna bara svarta, så de undrar kanske vad som händer. För att försäkra dig om 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>Play
  2. Välj fliken Windows Store och öppna avsnittet Välkomstbild
  3. Tillämpa bilden under egenskapen Windows Holographic Holographic > Splash Image.
    • Om du ändrar 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 i Unity.
    • Om en holografisk välkomstbild används visas den alltid om kryssrutan Visa Unity välkomstskärm är aktiverad eller inaktiverad. Att ange en anpassad holografisk välkomstbild är bara tillgängligt för utvecklare med en Unity Pro licens.
Välkomstskärm för Visa Unity Holographic Splash Image Beteende
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 (inget) 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 dokumentationen för Välkomstskärmen i Unity .

Spårningsförlust

Ett headset för mixad verklighet är beroende av att se miljön runt den för att konstruera världslåsta koordinatsystem , vilket gör att hologram förblir på plats. När headsetet inte kan hitta sig självt i världen ska headset ha förlorat spårning. I dessa fall fungerar inte funktioner som är beroende av världslåsta koordinatsystem, till exempel rumsliga faser, spatiala fästpunkter och spatial mappning.

Om spårningen går förlorad är Unitys standardbeteende att sluta återge hologram, pausa spelloopen och visa ett meddelande om förlorad spårning som följer användarnas blick. Anpassade meddelanden kan också tillhandahållas i form av en spårningsavbildning för förlust. 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 vid spårning av förlust.

Så här anpassar du spårningen av den förlorade avbildningen:

  1. Gå till sidan>Redigera Project Inställningar>Play
  2. Välj på Windows Store och öppna avsnittet Välkomstbild
  3. Tillämpa bilden under egenskapen Windows Holographic > Tracking Loss Image.

Avanmäla dig från automatisk paus

Vissa appar kanske inte kräver spårning (t.ex . orienteringsbaserade appar som 360-graders videovisare) eller måste fortsätta bearbeta utan avbrott medan spårningen går förlorad. Du kan välja bort standardbeteendet för spårningsförlust, men du ansvarar för att dölja/inaktivera objekt, vilket inte skulle renderas korrekt i ett scenario med spårningsförlust. I de flesta fall är det enda innehåll som rekommenderas att återges i så fall innehåll som är låst med brödtext, centrerat runt huvudkameran.

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

  1. Gå till sidan Edit>Project Inställningar>Play
  2. Välj fliken Windows Store och öppna avsnittet Välkomstbild
  3. Ändra kryssrutan Windows Holographic On Tracking Loss Pause and Show Image (Pausa och Visa bild) i Holographic > On Tracking Loss (Spåra förlust).

Spåra förlusthändelser

Om du vill definiera anpassat beteende när spårning går förlorat kan du hantera globala spårningsförlusthändelser.

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>Play
  2. Välj fliken Windows Store, öppna avsnittet Inställningar och leta efter listan Funktioner

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

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

Se även