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 exakt placering och orientering av 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, vilket kallas rumsliga koordinatsystem. Du kan använda rumsliga koordinatsystem för att få information om hologramposition, orientering, blick ray eller handpositioner.


Stöd för enheter

Funktion HoloLens (första gen) HoloLens 2 Integrerande headset
Stationär referensram ✔️ ✔️ ✔️
Bifogad referensram ✔️ ✔️ ✔️
Fasram för referens Stöds inte ännu Stöds inte ännu ✔️
Spatial Anchors ✔️ ✔️ ✔️
Rumslig mappning ✔️ ✔️
Scenförståelse ✔️

Skalor för mixad verklighetsupplevelse

Du kan utforma appar för mixad verklighet för en mängd olika användarupplevelser, från 360-gradiga videoanvändare som använder headsetorientering till appar och spel i full skala med hjälp av rumslig mappning och rumsliga fästpunkter:


Upplevelseskalning Krav Exempelupplevelse
Endast orientering Headsetorientering (viktjusterad) 360° videovisningsprogram
Platsskala Över plusläget för headset baserat på nollposition Racingspel eller rymdsimulator
Stående skalning Ovanför plusstegsgolvet Åtgärdsspel där du har sjabbar och sjabbar på plats
Rumsskala Över plusstegsbunden polygon Game game där du går runt i spelet
Världsskala Spatial anchors (och vanligtvis spatial mappning) Spel med spelare som kommer från dina verkliga väggar, till exempel RoboRaid

Upplevelsen som skalas ovan följer en "kapslad" modell. Huvuddesignprincipen för Windows Mixed Reality ett visst headset stöder appar som skapats för en målupplevelseskala och mindre skalor:


6DOF-spårning Golvdefinierad 360°-spårning Definierade gränser Spatial Anchors 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 (Fas) stöds inte ännu på HoloLens. En app i rumsskala HoloLens behöver för närvarande använda rumslig mappning eller scenförståelse för att hitta användarens golv och väggar.

Rumsliga koordinatsystem

Alla 3D-grafikprogram använder kartesiska koordinatsystem för att resonemang om virtuella objekts positioner och orientering. Dessa koordinatsystem upprättar tre perpendiska axlar som objekten ska placeras längs: en X-, Y- och Z-axel.

I mixad verklighethandlar dina appar om virtuella och fysiska koordinatsystem. Windows ett koordinatsystem som har verklig betydelse i den fysiska världen som ett rumsligt koordinatsystem.

Rumsliga koordinatsystem uttrycker sina koordinatvärden i mätare. Det innebär att objekt som placerats två enheter ifrån varandra på Antingen X-, Y- eller Z-axeln visas 2 meter från varandra när de återges i mixad verklighet. Om du vet detta kan du enkelt återge objekt och miljöer i verklig skala.

I allmänhet kan kartesiska koordinatsystem vara antingen högerhänta eller vänsterhänta. Rumsliga koordinatsystem på Windows är alltid högerhänta, vilket innebär att de positiva X-axelpunkterna höger, den positiva Y-axeln pekar uppåt (justerad efter tyngdkraft) och de positiva Z-axelpunkterna mot dig.

I båda typerna av koordinatsystem pekar den positiva X-axeln till höger och den positiva Y-axeln pekar uppåt. Skillnaden är om den positiva Z-axeln pekar mot eller bort från dig. Kom ihåg vilken riktning de positiva Z-axeln pekar genom att peka vänster eller höger hand i den positiva X-riktningen och curla dem till den positiva Y-riktningen. Riktningen dina tumpunkter, antingen mot eller bort från dig, är riktningen som de positiva Z-axelpunkterna för det koordinatsystemet.

Skapa en upplevelse med endast orientering eller plats

Nyckeln till holografisk rendering är att ändra appens vy över dess hologram varje bildruta när användaren flyttar runt, så att den matchar den förutsagda huvudflyttningen. Du kan skapa platsbaserade skalningsupplevelser som respekterar ändringar av användarens huvudposition och huvudorientering med hjälp av en stationär referensram.

En del innehåll måste ignorera uppdateringar av huvudpositionen och alltid hålla fast vid en vald rubrik och avståndet från användaren. Det primära exemplet är 360 graders video: eftersom videon fångas 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 tittar runt. Du kan skapa sådana orienteringsupplevelser med hjälp av en bifogad referensram.

Stationär referensram

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

För platsbaserade upplevelser i en spelmotor som Unityär en stationär referensram det som definierar motorns "ursprung i världen". Objekt som placeras vid en specifik världskoordinat använder den stationära referensramen för att definiera sin position i verkligheten med hjälp av samma koordinater. Innehåll som förblir 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 dess koordinatsystem under appens livslängd. Som apputvecklare i Unity kan du helt enkelt börja placera innehåll baserat på ursprunget, som kommer att finnas vid användarens inledande huvudposition och orientering. Om användaren flyttar till en ny plats och vill fortsätta sin platsskaliga upplevelse kan du senare se ursprunget i världen på den platsen.

När systemet lär sig mer om användarens miljö kan det med tiden fastställa att avstånden mellan olika punkter i verkligheten är kortare eller längre än systemet tidigare trodde. Om du återger hologram i en stationär referensram för en app på HoloLens där användarna rör sig utanför ett område som är cirka 5 meter brett, kan din app se en avdrift på den observerade platsen för dessa hologram. Om det finns användare som rör sig längre än 5 meter skapar du en upplevelse i världsskala somkräver andra tekniker för att hålla hologram stabilt, enligt beskrivningen nedan.

Bifogad referensram

En bifogad referensram flyttas med användaren när de går runt, med en fast rubrik definierad när appen först skapar ramen. På så sätt kan användaren titta närmare på innehåll som placerats inom referensramen. Innehåll som återges på det här användar relativa sättet kallas brödtextlåst innehåll.

När headsetet inte kan ta reda på var det är i världen ger en bifogad referensram det enda koordinatsystemet som kan användas för att rendera 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 har sittplatsskala eller högre bör innehålla en återställning enbart orientering för att hjälpa användaren att komma igång igen, med ett 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 sittplatsskala på ett integrerande headset och skapa en upplevelse i stående skala kan du använda referensramen för fasen.

Om du vill ge en upplevelse i rumsskala så att användarna kan gå runt inom gränsen på 5 mätare som de har definierat i förväg, kan du även söka efter fasgränser.

Fasram för referens

När användaren först ställer in ett integrerande headset definierar den en fas , som representerar det rum där de kommer att uppleva mixad verklighet. Stadiet definierar minimalt ett ursprung för fasen , ett rumsligt koordinatsystem som är centrerat vid användarens valda golvposition och orientering där de avser att använda enheten. Genom att placera innehåll i det här stadiets koordinatsystem på plan Y=0 kan du se till att dina hologram ser bra ut på golv när användaren står, vilket ger användarna en stående skalningsupplevelse.

Fasbundna gränser

Användaren kan också välja att definiera fasbunden , ett område i rummet som de har rensat för att flytta runt i mixad verklighet. I så fall kan appen skapa en rumsskalningsupplevelse 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 fasramen för referensen ger ett enda fast koordinatsystem där du kan placera golv relativt innehåll, är det den enklaste vägen för att porta program i stående skala och rumsskala som utvecklats för headset för virtuell verklighet. Men precis som med dessa VR-plattformar kan ett enda koordinatsystem bara stabilisera innehåll på ungefär 5 meter (16 fot) innan arm-effekter leder till att innehåll långt från mitten ändras märkbart när systemet justeras. För att gå längre än 5 meter behövs spatiala fästpunkter.

Skapa en upplevelse i världsskala

HoloLens tillåter verkliga upplevelser i världsskala som gör att användarna kan gå längre än 5 meter. Om du vill skapa en app i världsskala behöver du nya tekniker utöver de som används för rumsliga upplevelser.

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

I dag, när du skriver spel, datavisualiseringsappar eller appar för virtuell verklighet, är den vanligaste 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 flyttar dessa objekt förblir deras relativa transformeringar alltid desamma. Den här typen av globalt koordinatsystem fungerar bra när du återger en helt virtuell värld där du känner till all geometri i förväg. VR-appar i rumsskala upprättar i dag vanligtvis den här typen av absolut koordinatsystem i rumsskala med dess ursprung på golv.

Däremot har en enhet med oberoende mixad verklighet, till exempel HoloLens, en dynamisk sensordriven förståelse av världen som kontinuerligt justerar sina kunskaper över tid om användarens omgivning när de går många meter över en hel våning i en byggnad. Om du placerade alla dina hologram i ett enda fast koordinatsystem i världsskala skulle dessa hologram nödvändigtvis avta över tid, antingen baserat på världen eller på varandra.

Till exempel kan headset 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, och lära sig att platserna i själva verket ligger 3,9 meter från varandra. Om dessa hologram ursprungligen hade placerats 4 meter från varandra i ett enda fast koordinatsystem skulle ett av dem då alltid se ut som 0,1 meter från den verkliga världen.

Spatial Anchors

Windows Mixed Reality problemet som beskrivs i föregående avsnitt genom att låta dig skapa spatiala fästpunkter för att markera viktiga punkter i världen där användaren har placerat hologram. En spatial fästpunkt 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 spatiala 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å verkligheten. Genom att placera en spatial fästpunkt på den plats där användaren placerar ett hologram och sedan placerar hologrammet baserat på dess spatiala fästpunkt, kan du se till att hologrammet bibehåller optimal stabilitet, även när användaren roarar över tiotals meter.

Den här kontinuerliga justeringen av rumsliga fästpunkter baserat på varandra är den viktigaste skillnaden mellan koordinatsystem från spatiala fästpunkter och stationära referensramar:

  • Hologram placeras 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 avge sig baserat på världen för att säkerställa att hologram bredvid användaren ser stabila ut.

  • Hologram som placeras i referensfasen behåller också en fast relation till varandra. Till skillnad från den stationära ramen förblir fasramen alltid fast på plats baserat på dess definierade fysiska ursprung. Innehåll som återges i stegets koordinatsystem utanför dess gräns på 5 mätare visas dock bara som stabilt medan användaren står inom den gränsen.

  • Hologram placeras med en spatial fästpunkt kan av glida baserat på hologram som placerats med en annan spatial fästpunkt. Detta gör Windows att förbättra förståelsen för positionen för varje spatial fästpunkt, även om till exempel en fästpunkt behöver justera sig själv åt vänster och en annan fästpunkt behöver 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 stegramen för referens och spatiala fästpunkter stabilitet nära deras ursprung. Detta hjälper dessa hologram att vara exakt på plats över tid, men det innebär också att hologram som återges för långt bort från deras koordinatsystems ursprung får allt allvarligare lever-arm-effekter. Det beror på att små justeringar av positionen och orienteringen för fasen eller fästpunkten förstoras proportionellt mot avståndet från den fästpunkten.

En bra tumregel är att se till att allt du återger baserat på ett avlägsna spatialt fästpunkts koordinatsystem ligger inom cirka 3 meter från dess ursprung. För ett närliggande stadium är det ok att återge avlägsna innehåll, eftersom eventuella större positionsfel endast påverkar små hologram som inte flyttas mycket i användarens vy.

Spatial fästpunktspersistence

Spatial Anchors kan också tillåta att din app kommer ihåg en viktig plats även när appen pausas eller enheten stängs av.

Du kan spara de spatiala fästpunkter som din app skapar och sedan läsa in dem igen senare genom att spara dem i appens spatiala fästpunktslager. 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 filnamnet för din fästpunkt. Om du vill associera andra data med den fästpunkten, till exempel en 3D-modell som användaren placerade på den platsen, sparar du den i appens lokala lagring och associerar den med den nyckel som du har valt.

Genom att bevara fästpunkter i butiken kan användarna placera enskilda hologram eller placera en arbetsyta där en app placerar sina olika hologram och sedan hitta de hologrammen senare, där de förväntar sig dem, över många användningsområden för din app.

Du kan också använda Azure Spatial Anchors för asynkron hologrampersistence på HoloLens-, iOS- och Android-enheter. Genom att dela en beständig rumslig molnankare kan flera enheter se samma beständiga hologram över tid, även om enheterna inte är tillsammans samtidigt.

Delning av spatial fästpunkt

Din app kan också dela en spatial fästpunkt i realtid med andra enheter, vilket möjliggör delad realtidsupplevelse.

Med hjälp av Azure Spatial Anchorskan din app dela en spatial fästpunkt över flera HoloLens-, iOS- och Android-enheter. Genom att varje enhet återger ett hologram med samma spatiala fästpunkt ser alla användare hologrammet på samma plats i verkligheten.

Undvik huvudlåst innehåll

Vi avråder starkt från att återge huvudlåst innehåll som finns kvar på en fast punkt på skärmen (till exempel en HUD). I allmänhet är huvudlåst innehåll osäkert för användarna 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. Till exempel bör markörer vanligtvis pushas 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 miljöer, kanske det inte är möjligt för ett headset att använda inifrån och ut-spårning för att hitta sig själva på rätt sätt i världen. Detta kan leda till att hologram antingen inte visas eller visas på felaktiga platser om de hanteras felaktigt. Nu diskuterar vi de villkor där detta kan inträffa, hur det påverkar användarupplevelsen och tips för att på bästa sätt hantera den här situationen.

Headset kan inte spåras på grund av otillräcklig sensordata

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

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

När detta inträffar kan headset inte spåra sin position med tillräcklig noggrannhet för att återge världslåsta hologram. Du kan inte ta reda på var en spatial fästpunkt, stationär ram eller fasram baseras på enheten. Du kan dock fortfarande återge innehåll som är låst med brödtext i den bifogade referensramen.

Din app bör berätta för användaren hur den ska få tillbaka positionell spårning, vilket återger innehåll som är låst till grundinnehåll som beskriver några tips, till exempel att upptäcka sensorerna och aktivera fler lampor.

Headset spårar felaktigt på grund av dynamiska förändringar i miljön

Enheten kan inte spåras korrekt om det finns många dynamiska förändringar i miljön, till exempel när många går omkring i rummet. I det här fallet kan hologrammen verka hoppa eller förfalla 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 använder det här scenariot.

Headset 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 man har flyttat saker och så vidare på en vägg, kan det hända att vissa hologram flyttas från sina ursprungliga platser. De tidigare hologrammen 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 rummets funktioner. I det här scenariot rekommenderar vi att användarna byter ut hologram som de har fäst i världen om de inte visas där det förväntas.

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

Ibland kan ett hem eller ett 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 visningsfält. I sådana scenarier kan enheten ibland bli förvirrad mellan de identiska delarna och markera dem som desamma i sin interna representation. Detta kan göra att hologrammen från vissa områden visas på andra platser. Enheten kan ofta börja förlora spårning eftersom den interna representationen av miljön har skadats. I det här fallet rekommenderar vi att du återställer systemets miljöförståelse. Återställning av kartan leder till förlust av alla placering av spatiala fästpunkter. Detta gör att headsetet spåras väl i de unika områdena i miljön. Problemet kan dock uppstå igen om enheten blir förvirrad mellan de identiska områdena igen.

Se även