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å en anledning till hologramposition , orientering , blick ray eller handpositioner.


Stöd för enheter

Funktion HoloLens (första generationen) HoloLens 2 Integrerande headset
Stationär referensram ✔️ ✔️ ✔️
Bifogad referensram ✔️ ✔️ ✔️
Fasram för referens Stöds ännu inte Stöds ännu inte ✔️
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 graders videoanvändare med hjälp av headsetorientering till fullständiga appar och spel i världsskala med hjälp av rumslig mappning och rumsliga fästpunkter:


Upplevelseskala Krav Exempelupplevelse
Endast orientering Headsetorientering (viktjusterad) 360°-videovisare
Platsskala Över pluspositionen för headset baserat på nollposition Racingspel eller rymdsimulator
Stående skalning Ovan plus steg för golv ursprung Åtgärdsspel där du ödsla och sjala på plats
Rumsskala Över plusstegsbundna polygoner Game game där du går runt i spelet
Världsskala Spatial Anchors (och vanligtvis spatial mappning) Spel med dräkter som kommer från dina verkliga väggar, till exempel RoboRaid

Upplevelsen som skalas ovan följer en "kapslad" modell. Huvudprincipen för design av Windows Mixed Reality ett visst headset stöder appar som skapats för en målupplevelseskala och alla 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 stöds inte ännu på HoloLens. En app i rumsskala på HoloLens 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 ta hjälp av virtuella objekts positioner och orientering. Dessa koordinatsystem upprättar tre lodräta axlar längs vilka objekten ska placeras: en X-, Y- och Z-axel.

I mixad verklighet handlar dina appar om virtuella och fysiska koordinatsystem. Windows ett koordinatsystem som har en 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 isär 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änt eller vänsterhänt. Rumsliga koordinatsystem på Windows är alltid högerhänt, vilket innebär att de positiva X-axelpunkterna höger, de 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 åt 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 på antingen vänster eller höger hand i positiv X-riktning och curling dem till positiv Y-riktning. Riktningen dina tumpunkter, antingen mot eller bort från dig, är riktningen som de positiva Z-axelpunkterna för det koordinatsystemet.

Skapa en orienterings- eller platsskalningsupplevelse

Nyckeln till holografisk rendering är att ändra appens vy över dess hologram varje bildruta när användaren rör sig runt så att den matchar den förväntade 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 hålla fast vid en vald rubrik och alltid 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 en illusion av 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 skalningsupplevelser i en spelmotor som Unity är en stationär referensram det som definierar motorns "world origin". 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 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 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 nyare ursprung i världen på den platsen.

När systemet med tiden lär sig mer om användarens miljö kan det 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 observera en fördrering på den observerade platsen för dessa hologram. Om du upplever att användare rör sig längre än 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 definierad när appen först skapar ramen. På så sätt kan användaren titta närmare på innehåll som placeras inom referensramen. Innehåll som återges på det här användar relativa sättet kallas för brödtextlå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 rendera hologram. Detta gör det idealiskt för att visa återställningsgränssnitt för att berätta för användaren att deras enhet inte kan hitta dem i världen. Appar som är i storleksstorlek eller högre bör innehålla en återställning endast 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 steget.

För att ge enrumsskalningsupplevelse så att användarna kan gå runt inom gränsen på 5 meter som de har fördefinierat, 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 han eller hon en fas som representerar det rum där de kommer att uppleva mixad verklighet. Steget definierar minimalt en fas ursprung, ett rumsligt koordinatsystem som är centrerat vid användarens valda golvposition och orientering där de planerar att använda enheten. Genom att placera innehållet i det här stadiets koordinatsystem på plan Y=0 kan du se till att dina hologram ser bra ut på marken när användaren står, vilket ger användarna en upplevelse i stående skala.

Fasbundna gränser

Användaren kan också välja att definiera fasbundna gränser, ett område i rummet som användaren 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 portning av 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) och 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 strikt koordinatsystem inte kan användas utöver 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 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.

En enhet med oberoende mixad verklighet, till exempel HoloLens, har däremot en dynamisk sensordriven förståelse av världen och justerar kontinuerligt sin kunskap över tiden i användarnas miljöer när de går många meter över en hel våning i en byggnad. Om du i en världsskala skulle ha placerat alla dina hologram i ett enda fast koordinatsystem skulle dessa hologram nödvändigtvis avta med tiden, 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 ifrån varandra och sedan förfina den förståelsen genom att 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 löser 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 mätare.

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 referensramen behåller alla en fast relation till varandra. Men när användaren går långa avstånd kan den ramens koordinatsystem fördr ände baseras på världen för att säkerställa att hologram bredvid användaren ser stabila ut.

  • Hologram 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 fasens koordinatsystem utanför dess 5-mätargräns ser dock bara stabilt ut när användaren står inom den gränsen.

  • Hologram som placeras med en spatial fästpunkt kan fördr på grund av hologram som placerats med en annan spatial fästpunkt. Detta gör Windows att förbättra sin förståelse för positionen för varje spatial fästpunkt, även om till exempel en fästpunkt måste justera sig själv åt vänster och en annan 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 stegramen för referens och spatiala fästpunkter stabiliteten 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 kommer att uppleva allt allvarligare 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 ursprung i närliggande steg är det ok att återge avlägsna innehåll, eftersom eventuella större positionsfel endast påverkar små hologram som inte skiftar mycket i användarens vy.

Spatial fästpunktspersistence

Spatial Anchors kan också göra det möjligt för din app att komma 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 på disk 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 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 en beständig rumslig fästpunkt i molnet kan flera enheter se samma beständiga hologram över tid, även om dessa enheter inte finns 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 Anchors kan 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 besvärligt 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. Markörer bör till exempel 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 lyor, 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 är täckta 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 återställningsinnehåll som beskriver några tips, till exempel att upptäcka sensorerna och aktivera fler lampor.

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

Enheten kan inte spåras korrekt om det finns många dynamiska ändringar i miljön, till exempel om många personer går runt i rummet. I det här fallet kan det verka som om hologrammet hoppar eller avar sig 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 på väggar, vägg och så vidare, kan det hända att vissa hologram verkar ha flyttats 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 du uppmuntrar användarna att ersätta 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 börja förlora spårning ofta eftersom dess interna representation 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 identiska områden igen.

Se även