Kamerainstallation i Unity

När du bär ett headset för mixad verklighet blir det centrum för din holografiska värld. Unity Camera-komponenten hanterar automatiskt stereoskopisk återgivning och följer din huvudrörelse och rotation. Men för att optimera den visuella kvaliteten och hologramstabiliteten helt bör du ange de kamerainställningar som beskrivs nedan.

HoloLens vs VR-integrerande headset

Standardinställningarna för Unity Camera-komponenten är för traditionella 3D-program, som behöver en skybox-liknande bakgrund eftersom de inte har en verklig värld.

  • När du kör på ett uppslukande headset återger du allt som användaren ser, och därför vill du förmodligen behålla skyboxen.
  • Men när du kör på ett holografiskt headset som HoloLens bör den verkliga världen visas bakom allt som kameran renderar. Ange att kamerabakgrunden ska vara transparent (i HoloLens renderas svart som transparent) i stället för en Skybox-struktur:
    1. Välj huvudkameran på hierarkipanelen
    2. Leta upp komponenten Kamera i panelen Kontroll och ändra listrutan Clear Flags (Rensa flaggor) från Skybox till Enfärgad
    3. Välj färgväljaren Bakgrund och ändra RGBA-värdena till (0, 0, 0, 0, 0)
      1. Om du anger detta från kod kan du använda Unitys Color.clear

MRTK hanterar specifika kamerainställningar automatiskt, baserat på konfigurationen i kamerasystemprofilen.

Namespace:Microsoft.MixedReality.Toolkit.CameraSystem
Typ:MixedRealityCameraSystem

För att kontrollera kamerans ogenomskinlighet har MixedRealityCamera-systemet en IsOpaque egenskap.

CoreServices.CameraSystem.IsOpaque;

Kamerakonfiguration

Oavsett vilken typ av upplevelse du utvecklar är huvudkameran alltid den primära stereoåtergivningskomponenten som är kopplad till enhetens huvudmonterade bildskärm. Det blir enklare att lägga ut din app om du föreställer dig användarens startposition som (X: 0, Y: 0, Z: 0). Eftersom huvudkameran spårar förflyttning av användarens huvud kan användarens startposition anges genom att ange startpositionen för huvudkameran.

Det centrala valet du behöver göra är om du utvecklar för HoloLens eller VR-uppslukande headset. När du har fått det går du vidare till det installationsavsnitt som gäller.

Installation av HoloLens-kamera

För HoloLens-appar måste du använda fästpunkter för alla objekt som du vill låsa i scenmiljön. Vi rekommenderar att du använder obundet utrymme för att maximera stabiliteten och skapa fästpunkter i flera rum.

Följ den här stegvisa självstudien om du vill lägga till och automatiskt konfigurera Mixed Reality Toolkit i Unity-projektet. Det går också att arbeta direkt med klassen MixedRealityPlayspace från MRTK för Unity och ställa in målskalanWorld:

Fönstret MRTK-inställningar

MRTK bör hantera spelytans och kamerans position automatiskt, men det är bra att dubbelkolla:

MRTK-spelyta

  1. Från hierarkipanelen expanderar du MixedRealityPlayspace GameObject och letar upp det underordnade objektet Main Camera
  2. Leta upp transform-komponenten på panelen Kontroll och ändra position till (X: 0, Y: 0, Z: 0)

INSTALLATION av VR-kamera

Windows Mixed Reality stöder appar i en mängd olika upplevelseskalor, från appar med endast orientering och sittande skalning upp via appar i rumsskala. På HoloLens kan du gå längre och skapa appar i världsskala som låter användarna gå längre än 5 meter och utforska en hel våning i en byggnad och bortom.

Ditt första steg i att skapa en mixad verklighetsupplevelse i Unity är att avgöra vilken upplevelseskala appen ska rikta in sig på:

Upplevelser i rumsskala eller stående

Anteckning

Om du skapar för HL2 rekommenderar vi att du skapar en upplevelse på ögonnivå eller överväger att använda Scene Understanding för att resonera om scenens golv.

Använd klassen MixedRealityPlayspace från MRTK för Unity och ange målskalan till antingen Rum eller Stående:

Fönstret MRTK-inställningar

MRTK bör hantera spelytans och kamerans position automatiskt, men det är bra att dubbelkolla:

MRTK-spelyta

  1. Från hierarkipanelen expanderar du MixedRealityPlayspace GameObject och letar upp det underordnade objektet Main Camera
  2. Leta upp transform-komponenten på panelen Kontroll och ändra position till (X: 0, Y: 0, Z: 0)

Sittande upplevelser

Använd klassen MixedRealityPlayspace från MRTK för Unity och ange Målskala till Sittande:

Fönstret MRTK-inställningar

MRTK bör hantera spelytans och kamerans position automatiskt, men det är bra att dubbelkolla:

MRTK-spelyta

  1. Från panelen Hierarki expanderar du MixedRealityPlayspace GameObject och letar reda på det underordnade huvudkameraobjektet
  2. Leta reda på komponenten Transformera på panelen Kontroll och ändra Position till (X: 0, Y: 0, Z: 0)

Konfigurera kamerans bakgrund

Om du använder MRTK konfigureras och hanteras kamerans bakgrund automatiskt. För XR SDK- eller Legacy WSA-projekt rekommenderar vi att du ställer in kamerans bakgrund på helsvart på HoloLens och behåller skyboxen för VR.

Använda flera kameror

När det finns flera kamerakomponenter i scenen vet Unity vilken kamera som ska användas för stereoskopisk rendering baserat på vilken GameObject som har taggen MainCamera. I äldre XR använder den också den här taggen för att synkronisera huvudspårning. I XR SDK drivs huvudspårning av ett TrackedPoseDriver-skript som är kopplat till kameran.

Dela djupbuffertar

Genom att dela appens djupbuffert till Windows ger varje ram din app en av två ökningar i hologramstabilitet, baserat på vilken typ av headset du återger för:

  • VR-integrerande headset kan ta hand om positionsreprojektion när en djupbuffert tillhandahålls, vilket justerar dina hologram för felprediction i både position och orientering.
  • HoloLens-headset har några olika metoder. HoloLens 1 väljer automatiskt en fokuspunkt när en djupbuffert tillhandahålls, vilket optimerar hologramstabiliteten längs planet som korsar mest innehåll. HoloLens 2 stabiliserar innehållet med hjälp av Djup LSR (se Kommentarer).

MRTK:s konfigurationsdialogruta försöker ange inställningar för djupbuffert för både XR SDK och äldre WSA, men det är bra att kontrollera flikarna och kontrollera inställningarna i Unity.

Använda klippplan

Att återge innehåll som är för nära användaren kan vara obekvämt i mixad verklighet. Du kan justera de närliggande och avlägsna klippplanerna på kamerakomponenten.

  1. Välj huvudkameranhierarkipanelen
  2. Leta upp kamerakomponentenUrklippsplan i panelen Kontroll och ändra textrutan Near (Nära) från 0,3 till 0,85. Innehåll som återges ännu närmare kan leda till användarens obehag och bör undvikas enligt riktlinjerna för återgivningsavstånd.

Senaste kameran

Om du skapar en upplevelse i sittande skala kan du senare använda Unitys världsprung på användarens aktuella huvudposition genom att anropa XR. InputTracking.Recenter-metoden i äldre XR eller XRInputSubsystem.TryRecenter-metoden i XR SDK.

Teleportering

Den här funktionen är vanligtvis reserverad för VR-upplevelser:

MRTK tillhandahåller ett inkorgsteleporteringssystem som automatiskt fungerar över ledade händer och styrenheter.

Återprojektionslägen

Både HoloLens och integrerande headset kommer att återskapa varje ram som appen renderar för att justera för eventuella felprediction av användarens faktiska huvudposition när fotoner genereras.

Som standard:

  • VR-integrerande headset tar hand om positionell reprojection om appen tillhandahåller en djupbuffert för en viss ram. Integrerande headset justerar också hologram för felprediction i både position och orientering. Om det inte finns någon djupbuffert korrigerar systemet bara felpredictions i orienteringen.
  • Holografiska headset som HoloLens 2 tar hand om positionell reprojection oavsett om appen tillhandahåller sin djupbuffert eller inte. Positionell reprojection är möjlig utan djupbuffertar på HoloLens eftersom rendering ofta är gles med en stabil bakgrund som tillhandahålls av den verkliga världen.

MRTK har för närvarande inte hjälpkomponenter för återprojektionsläget. Mer information finns på någon av de andra flikarna.

Nästa kontrollpunkt för utveckling

Om du följer unity-utvecklingsresan som vi har lagt fram är du mitt uppe i att utforska MRTK-kärnbyggstenarna. Härifrån kan du fortsätta till nästa byggblock:

Eller gå vidare till Mixed Reality plattformsfunktioner och API:er:

Du kan alltid gå tillbaka till unity-utvecklingskontrollpunkterna när som helst.

Se även