Dela via


Kamerainstallation i Unity

När du använder 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. För att helt optimera den visuella kvaliteten och hologramstabiliteten bör du dock ange de kamerainställningar som beskrivs nedan.

HoloLens vs VR-uppslukande 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 någon 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 kamerans bakgrund ska vara transparent (i HoloLens återges svart som transparent) i stället för en Skybox-textur:
    1. Välj huvudkameran på hierarkipanelen
    2. Leta reda på kamerakomponenten i panelen Inspector och ändra listrutan Rensa flaggor från Skybox till Solid Color
    3. Välj färgväljaren Bakgrund och ändra RGBA-värdena till (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.

Namnområde: Microsoft.MixedReality.Toolkit.CameraSystem
Typ: MixedRealityCameraSystem

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

CoreServices.CameraSystem.IsOpaque;

Kamerainstallation

Oavsett vilken typ av upplevelse du utvecklar är huvudkameran alltid den primära stereorenderingskomponenten som är kopplad till enhetens huvudmonterade skärm. Det blir enklare att lägga ut appen om du föreställer dig att användarens startposition är (X: 0, Y: 0, Z: 0). Eftersom huvudkameran spårar förflyttning av användarens huvud kan användarens startposition ställas in 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 till 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 för att lägga till och automatiskt konfigurera Mixed Reality Toolkit i ditt Unity-projekt. Det går också att arbeta direkt med klassen MixedRealityPlayspace från MRTK för Unity och ställa in målskalan World:

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å huvudkamerans underordnade objekt
  2. Leta reda på komponenten Transformera i panelen Kontroll och ändra Position till (X: 0, Y: 0, Z: 0)

Installation av VR-kamera

Windows Mixed Reality har stöd för 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å vidare och skapa appar i världsskala som låter användare 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å:

Rumsskala eller stående upplevelser

Kommentar

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 panelen Hierarki expanderar du MixedRealityPlayspace GameObject och letar reda på huvudkamerans underordnade objekt
  2. Leta reda på komponenten Transformera i 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ålskalan 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å huvudkamerans underordnade objekt
  2. Leta reda på komponenten Transformera i 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 MainCamera-taggen. 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

Om du delar 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-uppslukande headset kan ta hand om positionell reprojection när en djupbuffert tillhandahålls, justera 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 det mesta innehållet. 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 verifiera inställningarna i Unity.

Använda urklippsplan

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

  1. Välj huvudkameran hierarkipanelen
  2. I panelen Kontroll letar du reda på kamerakomponenten Urklippsplan och ändrar textrutan 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ärldsuppkomst till användarens aktuella huvudposition genom att anropa XR. InputTracking.Recenter-metoden i äldre XR eller metoden XRInputSubsystem.TryRecenter i XR SDK.

Teleportering

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

MRTK tillhandahåller ett in-box teleporteringssystem som automatiskt fungerar över ledade händer och styrenheter.

Återprojectionlägen

Både HoloLens och uppslukande headset återskapar varje bildruta som appen renderar för att justera för eventuella felprediction av användarens faktiska huvudposition när fotoner genereras.

Som standard:

  • VR-uppslukande headset tar hand om positionell reprojection om appen tillhandahåller en djupbuffert för en viss ram. Uppslukande headset justerar också dina hologram för felprediction i både position och orientering. Om det inte finns någon djupbuffert korrigerar systemet bara felpredictions i orienteringen.
  • Holoographic-headset som HoloLens 2 tar hand om positionell reprojection oavsett om appen tillhandahåller sin djupbuffert eller inte. Positionell reprojection är möjligt 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 någon hjälp för omprojection-läget. Mer information finns i 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ärnbyggnadsblocken. Härifrån kan du fortsätta till nästa byggblock:

Eller hoppa till funktioner och API:er för Mixed Reality-plattformen:

Du kan alltid gå tillbaka till Unity-utvecklingspunkterna när som helst.

Se även