Koordinatsystem

I grunden placerar appar för mixad verklighet hologram i din värld som ser ut som och låter verkliga objekt. Detta innebär att exakt positionera och orientera dessa hologram på meningsfulla platser i världen, oavsett om världen är deras fysiska rum eller en virtuell sfär som du har skapat. Windows tillhandahåller olika verkliga koordinatsystem för att uttrycka geometri – dessa kallas spatiala koordinatsystem. Du kan använda dessa system för att resonera kring hologramposition, orientering, blickstråle eller handpositioner.

Stöd för enheter

Funktion HoloLens (första generationen) HoloLens 2 Integrerande headset
Stationär referensram ✔️ ✔️ ✔️
Bifogad referensram ✔️ ✔️ ✔️
Referensram för fas Stöds ännu inte Stöds ännu inte ✔️
Rumsliga fästpunkter ✔️ ✔️ ✔️
Rumslig mappning ✔️ ✔️
Scentolkning ✔️

Skalor för mixad verklighetsupplevelse

Du kan utforma mixed reality-appar för en mängd olika användarupplevelser, från 360-graders videovisning med headsetorientering till fullskaliga appar och spel med rumslig mappning och spatiala fästpunkter:


Upplevelseskala Krav Exempelupplevelse
Endast orientering Headsetorientering (gravitationsjusterad) 360° videovisare
Sittande skala Ovanför plus headsetposition baserat på nollposition Racingspel eller rymdsimulator
Stående skala Ovan plusstegsgolvets ursprung Actionspel där du duckar och duckar på plats
Rumsskala Över plusstegsgränsen polygon Pusselspel där du går runt pusslet
Världsskala Rumsliga fästpunkter (och vanligtvis rumslig mappning) Spel med fiender som kommer från dina riktiga väggar, till exempel RoboRaid

Upplevelsen skalar ovan följer en modell med "kapslingsdockor". Den viktigaste designprincipen för Windows Mixed Reality är följande: ett visst headset har stöd för appar som skapats för en målupplevelseskala och alla mindre skalor.


6DOF-spårning Golvdefinierad 360° spårning Definierade gränser Rumsliga fästpunkter Maximal upplevelse
No - - - - Endast orientering
Ja No - - - Sittande
Ja Ja No - - Stående - framåt
Ja Ja Ja No - Stående - 360°
Ja Ja Ja Ja No Rum
Ja Ja Ja Ja Ja Världen

Referensramen stage stöds ännu inte på HoloLens. En app i rumsskala på HoloLens måste för närvarande använda rumslig mappning eller scentolkning för att hitta användarens golv och väggar.

Rumsliga koordinatsystem

Alla 3D-grafikprogram använder kartesiska koordinatsystem för att resonera kring positionerna och orienteringarna för virtuella objekt. Dessa koordinatsystem upprättar tre vinkelräta axlar: X, Y och Z. Varje objekt som du lägger till i en scen har en XYZ-position i sitt koordinatsystem. Windows kallar ett koordinatsystem som har verklig betydelse i den fysiska världen för ett rumsligt koordinatsystem, som uttrycker sina koordinatvärden i mätare. Det innebär att objekt som placeras två enheter isär på X-, Y- eller Z-axeln visas två meter från varandra när de återges i mixad verklighet. Med vetskapen om detta kan du enkelt rendera objekt och miljöer i verklig skala.

I allmänhet kallas kartesiska koordinatsystem "högerhänta" eller "vänsterhänta" eftersom du kan använda handpositioner för att ange XYZ-axlarnas riktningar. I båda koordinatsystemen pekar den positiva X-axeln åt höger och den positiva Y-axeln pekar uppåt. Skillnaden mellan de två är att I det högerhänta koordinatsystemet pekar Z-axeln mot dig, medan Z-axeln pekar bort från dig i det vänstra koordinatsystemet.

Bild av en persons högra hand som visar det högerhänta koordinatsystemet

Bild av en persons vänstra hand som visar det vänsterhänta koordinatsystemet

Rumsliga koordinatsystem i Windows (och därför Windows Mixed Reality) är alltid högerhänta.

[! ANTECKNINGAR]

  • Unity och Unreal använder det vänsterhänta koordinatsystemet.
  • Även om vänster- och högerhänta koordinater är de vanligaste systemen, finns det andra koordinatsystem som används i 3D-programvara. Det är till exempel inte ovanligt att 3D-modelleringsprogram använder ett koordinatsystem där Y-axeln pekar mot eller bort från visningsprogrammet och Z-axeln pekar uppåt.

Skapa en orienteringsbaserad eller sittande skalningsupplevelse

Nyckeln till holografisk återgivning ändrar appens vy över sina hologram varje bildruta när användaren rör sig, så att den matchar deras förutsagda huvudrörelse. Du kan skapa upplevelser i sittande skala som respekterar ändringar i användarens huvudposition och huvudorientering med hjälp av en stationär referensram.

En del innehåll måste ignorera uppdateringar av huvudpositionen, som alltid är fasta vid en vald rubrik och avstånd från användaren. Det primära exemplet är en 360-graders video: eftersom videon hämtas från ett enda fast perspektiv skulle det förstöra illusionen att visningspositionen flyttas baserat på innehållet, även om visningsorienteringen ändras när användaren ser sig omkring. Du kan skapa sådana orienteringsfunktioner med hjälp av en bifogad referensram.

Stationär referensram

Koordinatsystemet som tillhandahålls av en stationär referensram fungerar för att hålla positionerna för objekt nära användaren så stabila som möjligt baserat på världen, samtidigt som ändringar i användarens huvudposition respekteras.

För upplevelser i sittande skala i en spelmotor som Unity är en stationär referensram det som definierar motorns "världs ursprung". Objekt som placeras på en specifik världskoordinat använder den stationära referensramen för att definiera sin position i verkligheten med samma koordinater. Innehåll som finns kvar i världen, även när användaren går runt, kallas för världslåst innehåll.

En app skapar vanligtvis en stationär referensram vid start och använder sitt koordinatsystem under appens livslängd. Som apputvecklare i Unity kan du bara börja placera innehåll baserat på ursprunget, som kommer att ligga på användarens ursprungliga huvudposition och orientering. Om användaren flyttar till en ny plats och vill fortsätta sin upplevelse i sittande skala kan du senarelägga ursprunget till världen på den platsen.

Med tiden, när systemet lär sig mer om användarens miljö, kan det avgöra att avstånden mellan olika punkter i verkligheten är kortare eller längre än vad systemet tidigare trodde. Om du renderar hologram i en stationär referensram för en app på HoloLens där användare vandrar bortom ett område som är cirka 5 meter brett, kan din app observera drift på den observerade platsen för dessa hologram. Om användarna vandrar över 5 meter skapar du en upplevelse i världsskala som kräver andra tekniker för att hålla hologram stabila enligt beskrivningen nedan.

Bifogad referensram

En bifogad referensram flyttas med användaren när de går runt, med en fast rubrik som definieras när appen först skapar ramen. På så sätt kan användaren bekvämt se sig omkring på innehåll som placerats inom referensramen. Innehåll som återges på det här användarrelativa sättet kallas kroppslåst innehåll.

När headsetet inte kan ta reda på var det finns i världen tillhandahåller en bifogad referensram det enda koordinatsystemet, som kan användas för att återge hologram. Detta gör det idealiskt för att visa återställningsgränssnittet för att berätta för användaren att deras enhet inte kan hitta dem i världen. Appar som är i sittande skala eller högre bör innehålla en reserv för endast orientering för att hjälpa användaren att komma igång igen, med användargränssnitt som liknar det som visas i Mixed Reality hem.

Skapa en upplevelse i stående skala eller rumsskala

Om du vill gå bortom sittande skala på ett uppslukande headset och skapa en upplevelse i stående skala kan du använda referensramen för scenen.

För att ge en upplevelse i rumsskala, så att användarna kan gå runt inom den 5-metersgräns som de fördefinierade, kan du även söka efter fasgränser .

Referensram för steg

När användaren först konfigurerar ett uppslukande headset definierar den en fas som representerar rummet där de kommer att uppleva mixad verklighet. Fasen definierar minimalt ett fas ursprung, ett rumsligt koordinatsystem centrerat på användarens valda golvposition och framåtriktad orientering där de avser att använda enheten. Genom att placera innehåll i det här stadiets koordinatsystem på Y=0-planet kan du se till att dina hologram visas bekvämt på golvet när användaren står, vilket ger användarna en stående skalningsupplevelse.

Steggräns

Användaren kan också välja att definiera fasgränsar, ett område i rummet som de har rensat ut för att flytta runt i mixad verklighet. I så fall kan appen skapa en upplevelse i rumsskala med hjälp av dessa gränser för att säkerställa att hologram alltid placeras där användaren kan nå dem.

Eftersom scenramen för referens tillhandahåller ett enda fast koordinatsystem där du kan placera golvrelativt innehåll, är det den enklaste vägen för portning av stående skalnings- och rumsskalningsprogram som utvecklats för virtual reality-headset. Men som med dessa VR-plattformar kan ett enda koordinatsystem bara stabilisera innehållet i ungefär 5 meter (16 fot) diameter, innan hävstångsarmeffekter orsakar innehåll långt från mitten för att skifta märkbart när systemet justeras. För att gå längre än 5 meter behövs rumsliga fästpunkter.

Skapa en upplevelse i världsskala

HoloLens möjliggör verkliga upplevelser i världsskala som låter användarna vandra bortom 5 meter. För att skapa en app i världsskala behöver du nya tekniker utöver de som används för upplevelser i rumsskala.

Varför ett enda stelt koordinatsystem inte kan användas längre än 5 meter

När du i dag skriver spel, datavisualiseringsappar eller appar för virtuell verklighet är den typiska metoden att upprätta ett absolut världskoordinatsystem som alla andra koordinater på ett tillförlitligt sätt kan mappa tillbaka till. I den miljön kan du alltid hitta en stabil transformering som definierar en relation mellan två objekt i den världen. Om du inte flyttade objekten förblir deras relativa transformeringar alltid desamma. Den här typen av globalt koordinatsystem fungerar bra när du återger en rent virtuell värld där du känner till all geometri i förväg. Vr-appar i rumsskala etablerar idag vanligtvis den här typen av absoluta koordinatsystem i rumsskala med sitt ursprung på golvet.

Däremot har en untethered mixed reality-enhet som HoloLens en dynamisk sensordriven förståelse för världen och justerar kontinuerligt sin kunskap över tid av användarens omgivning när de går många meter över en hel våning i en byggnad. Om du placerar alla dina hologram i ett enda stelt koordinatsystem i världsskala skulle dessa hologram nödvändigtvis glida över tid, antingen baserat på världen eller på varandra.

Headsetet kan till exempel för närvarande tro att två platser i världen är 4 meter från varandra, och sedan förfina den förståelsen senare och lära sig att platserna i själva verket är 3,9 meter från varandra. Om dessa hologram ursprungligen hade placerats 4 meter från varandra i ett enda stelt koordinatsystem, skulle en av dem alltid visas 0,1 meter från den verkliga världen.

Rumsliga fästpunkter

Windows Mixed Reality löser problemet som beskrivs i föregående avsnitt genom att du kan skapa spatiala fästpunkter för att markera viktiga punkter i världen där användaren har placerat hologram. Ett rumsligt ankare representerar en viktig punkt i världen som systemet bör hålla reda på över tid.

När enheten lär sig om världen kan dessa rumsliga fästpunkter justera sin position baserat på varandra efter behov för att säkerställa att varje fästpunkt förblir exakt där den placerades baserat på den verkliga världen. Genom att placera ett rumsligt fästpunkt på den plats där användaren placerar ett hologram och sedan placera hologrammet baserat på dess rumsliga fästpunkt, kan du se till att hologrammet bibehåller optimal stabilitet, även när användaren strövar över tiotals meter.

Denna kontinuerliga justering av rumsliga fästpunkter baserade på varandra är den viktigaste skillnaden mellan koordinatsystem från rumsliga fästpunkter och stationära referensramar:

  • Hologram placerade i den stationära referensramen har alla en fast relation till varandra. Men när användaren går långa avstånd kan den ramens koordinatsystem glida baserat på världen för att säkerställa att hologram bredvid användaren verkar stabila.

  • Hologram som placeras i referensramen för scenen har också en fast relation till varandra. Till skillnad från den stationära ramen förblir scenramen alltid fast på plats baserat på dess definierade fysiska ursprung. Innehåll som återges i fasens koordinatsystem utanför gränsen på 5 meter visas dock bara stabilt medan användaren står inom den gränsen.

  • Hologram som placeras med ett rumsligt fästpunkt kan glida baserat på hologram som placeras med hjälp av ett annat rumsligt fästpunkt. Detta gör att Windows kan förbättra sin förståelse av positionen för varje rumslig fästpunkt, även om till exempel ett fästpunkt behöver justera sig åt vänster och ett annat fästpunkt måste justeras åt höger.

Till skillnad från en stationär referensram, som alltid optimerar för stabilitet nära användaren, säkerställer fasramen för referens och rumsliga fästpunkter stabilitet nära deras ursprung. Detta hjälper dessa hologram att hålla sig exakt på plats över tid, men det innebär också att hologram som återges för långt bort från deras koordinatsystems ursprung kommer att uppleva allt allvarligare effekter på spakarmen. Detta beror på att små justeringar av fasens eller fästpunktens position och orientering förstoras proportionellt mot avståndet från fästpunkten.

En bra tumregel är att se till att allt du renderar baserat på ett avlägset rumsligt fästpunkts koordinatsystem ligger inom cirka 3 meter från dess ursprung. För ett närliggande steg är återgivningen av avlägset innehåll OK, eftersom eventuella ökade positionsfel endast påverkar små hologram som inte kommer att skifta mycket i användarens vy.

Rumslig fästpunktspersistence

Rumsliga fästpunkter kan också göra det möjligt för din app att komma ihåg en viktig plats även när appen har stängts av eller enheten har stängts av.

Du kan spara de rumsliga fästpunkter som appen skapar och sedan läsa in dem igen senare genom att spara dem i appens spatiala fästpunktsarkiv. När du sparar eller läser in en fästpunkt anger du en strängnyckel som är meningsfull för din app för att identifiera fästpunkten senare. Tänk på den här nyckeln som filnamn för fästpunkten. Om du vill associera andra data med fästpunkten, till exempel en 3D-modell som användaren placerade på den platsen, sparar du dem i appens lokala lagring och associerar dem med den nyckel du valde.

Genom att spara fästpunkter i butiken kan användarna placera enskilda hologram eller placera en arbetsyta runt vilken en app placerar sina olika hologram och sedan hitta dessa hologram senare där de förväntar sig dem, över många användningar av din app.

Du kan också använda Azure Spatial Anchors för asynkron hologrampersistence på HoloLens-, iOS- och Android-enheter. Genom att dela ett varaktigt rumsligt molnankare kan flera enheter observera samma bevarade hologram över tid, även om enheterna inte finns tillsammans samtidigt.

Rumslig fästpunktsdelning

Din app kan också dela ett rumsligt ankare i realtid med andra enheter, vilket möjliggör delade upplevelser i realtid.

Genom att använda Azure Spatial Anchors kan din app dela ett rumsligt ankare på flera HoloLens-, iOS- och Android-enheter. Genom att låta varje enhet återge ett hologram med samma rumsliga fästpunkt ser alla användare att hologrammet visas på samma plats i den verkliga världen.

Undvik huvudlåst innehåll

Vi avråder starkt från att återge huvudlåst innehåll, som finns kvar på en fast plats i displayen (till exempel en HUD). I allmänhet är huvudlåst innehåll obekvämt för användare och känns inte som en naturlig del av deras värld.

Huvudlåst innehåll bör vanligtvis ersättas med hologram som är kopplade till användaren eller placeras i själva världen. Markörer bör till exempel i allmänhet skjutas ut i världen och skalas naturligt för att återspegla objektets position och avstånd under användarens blick.

Hantera spårningsfel

I vissa miljöer, till exempel mörka korridorer, kanske det inte är möjligt för ett headset som använder inifrån och ut-spårning att hitta sig själv korrekt i världen. Detta kan leda till att hologram antingen inte visas eller visas på felaktiga platser om de hanteras felaktigt. Vi diskuterar nu villkoren för detta, dess inverkan på användarupplevelsen och tips för att hantera den här situationen på bästa sätt.

Headsetet kan inte spåras på grund av otillräckliga sensordata

Ibland kan headsetets sensorer inte ta reda på var headsetet finns. Detta kan inträffa i följande fall:

  • Rummet är mörkt
  • Om sensorerna täcks av hår eller händer
  • Om omgivningen inte har tillräckligt med struktur.

När detta händer kan headsetet inte spåra sin position med tillräcklig noggrannhet för att återge världslåst hologram. Du kan inte ta reda på var en rumslig fästpunkt, stationär ram eller fasram baseras på enheten. Du kan dock fortfarande återge kroppslåst innehåll i den bifogade referensramen.

Din app bör tala om för användaren hur du får tillbaka positionsspårning, återger lite kroppslåst innehåll som beskriver några tips, till exempel att upptäcka sensorerna och aktivera fler lampor.

Headsetet spårar felaktigt på grund av dynamiska ändringar i miljön

Enheten kan inte spåras korrekt om det finns många dynamiska förändringar i miljön, till exempel många människor som går runt i rummet. I det här fallet kan hologramen verka hoppa eller glida när enheten försöker spåra sig själv i den här dynamiska miljön. Vi rekommenderar att du använder enheten i en mindre dynamisk miljö om du stöter på det här scenariot.

Headsetet spårar felaktigt eftersom miljön har ändrats avsevärt över tid

När du börjar använda ett headset i en miljö där möbler, vägghängningar och så vidare har flyttats, är det möjligt att vissa hologram kan verka skiftade från sina ursprungliga platser. De tidigare hologrammet kan också hoppa runt när användaren rör sig i det nya utrymmet eftersom systemets förståelse för ditt utrymme inte längre är sann. Systemet försöker sedan mappa om miljön samtidigt som man försöker stämma av funktionerna i rummet. I det här scenariot rekommenderar vi att användarna ersätter hologram som de fäster i världen om de inte visas där de förväntas.

Headsetet spårar felaktigt på grund av identiska utrymmen i en miljö

Ibland kan ett hem eller annat utrymme ha två identiska områden. Till exempel två identiska konferensrum, två identiska hörnområden, två stora identiska affischer som täcker enhetens synfält. I sådana scenarier kan enheten ibland bli förvirrad mellan identiska delar och markera dem som samma i sin interna representation. Detta kan göra att hologram från vissa områden visas på andra platser. Enheten kan börja förlora spårning ofta eftersom den interna representationen av miljön har skadats. I det här fallet rekommenderar vi att du återställer systemets miljötolkning. Om du återställer kartan går alla rumsliga fästpunkter förlorade. Detta gör att headsetet spårar bra i de unika områdena i miljön. Problemet kan dock återkomma om enheten blir förvirrad mellan identiska områden igen.

Se även