Dela via


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 placera 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 rumsliga koordinatsystem. Du kan använda dessa system för att resonera om hologramposition, orientering, blickstråle eller handpositioner.

Stöd för enheter

Funktion HoloLens (första generationen) HoloLens 2 Uppslukande headset
Stationär referensram ✔️ ✔️ ✔️
Bifogad referensram ✔️ ✔️ ✔️
Referensram för steg Stöds inte än Stöds inte än ✔️
Spatiala fästpunkter ✔️ ✔️ ✔️
Rumslig mappning ✔️ ✔️
Scentolkning ✔️

Skalor för mixad verklighetsupplevelse

Du kan utforma Appar för mixad verklighet för ett brett spektrum av användarupplevelser, från 360-graders videovisning med headsetorientering till full världsliga appar och spel med hjälp av rumslig mappning och rumsliga fästpunkter:


Upplevelseskala Krav Exempelupplevelse
Endast orientering Headsetorientering (gravitationsjusterad) 360° videovisningsprogram
Sittande skala Ovanför plus headsetposition baserat på nollläge Racingspel eller rymdsimulator
Stående skala Ovan plus steg golv ursprung Actionspel där du duckar och duckar på plats
Rumsskala Över plusstegsbunden polygon Pusselspel där du går runt i pusslet
Världsskala Spatiala 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 "kapslade dockor". Den viktigaste designprincipen för Windows Mixed Reality är följande: ett givet 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 Spatiala fästpunkter Maximal upplevelse
Nej - - - - Endast orientering
Ja Nej - - - Sittande
Ja Ja Nej - - Stående – framåt
Ja Ja Ja Nej - Stående - 360°
Ja Ja Ja Ja Nej Rum
Ja Ja Ja Ja Ja Värld

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 koordinatsystemet. Windows anropar ett koordinatsystem som har verklig betydelse i den fysiska världen ett rumsligt koordinatsystem som uttrycker sina koordinatvärden i meter. Det innebär att objekt som placerats två enheter isär på X-, Y- eller Z-axeln visas två 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 kallas kartesiska koordinatsystem "högerhänta" eller "vänsterhänta" eftersom du kan använda handpositioner för att ange riktningarna för XYZ-axlarna. 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 i det vänstra koordinatsystemet pekar bort från dig.

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ärmed 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å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 för visningspositionen att flytta 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ärldsprung". Objekt som placeras vid 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 vara användarens första huvudposition och orientering. Om användaren flyttar till en ny plats och vill fortsätta sin plats-skala upplevelse, kan du nyare världs ursprung 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 din upplevelse får användare att vandra 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 enkelt se sig omkring på innehåll som placerats inom referensramen. Innehåll som återges på det här användarrelativa sättet kallas för 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 reservgrä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-hemmet.

Skapa en upplevelse i stående skala eller rumsskala

Om du vill gå längre än 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 också söka efter fasgränser .

Referensram för steg

När du först konfigurerar ett uppslukande headset definierar användaren en fas som representerar rummet där de kommer att uppleva mixad verklighet. Fasen definierar minimalt ett stadiums ursprung, ett rumsligt koordinatsystem centrerat på användarens valda golvposition och framåtorientering där de tänker 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 visas bekvämt på golvet när användaren står, vilket ger användarna en upplevelse i stående skala.

Steggräns

Användaren kan också välja att definiera steggränsningar, 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 program i stående skala och rumsskala som utvecklats för virtual reality-headset. Men precis som med dessa VR-plattformar kan ett enda koordinatsystem bara stabilisera innehållet i ungefär 5 meter (16 fot) diameter, innan hävstångsarmseffekter orsakar innehåll långt från mitten 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 gör att användarna kan vandra längre än 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 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 typiska metoden att upprätta ett absolut världskoordinatsystem som alla andra koordinater på ett tillförlitligt sätt kan mappas 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 av världen och justerar kontinuerligt sin kunskap över tid för 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 till varandra.

Till exempel kan headsetet 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 och lära sig att platserna i själva verket är 3,9 meter ifrå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.

Spatiala 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 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 rumsliga fästpunkter justera sin position baserat på varandra efter behov för att säkerställa att varje fästpunkt stannar exakt där den placerades baserat på verkligheten. 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.

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

  • Hologram som placeras i den stationära referensramen håller alla en fast relation till varandra. Men när användaren går långa sträckor 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 steg 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 hjälp av ett rumsligt fästpunkt kan glida baserat på hologram som placeras med 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 till 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 scenramen 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 hävstångsarmeffekter. Det 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 stadium är återgivning 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.

Spatial fästpunktspersistence

Spatiala fästpunkter kan också göra det möjligt för din app att komma ihåg en viktig plats även efter att 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 rumsliga 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 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 som du har valt.

Genom att bevara 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 de hologram som de förväntar sig senare, över många användningar av din app.

Undvik huvudlåst innehåll

Vi avråder starkt från att återge huvudlåst innehåll, som förblir 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. Till exempel bör markörer 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 inte headsetets sensorer 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 scenbildruta 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 positioneringsspårning, återger viss återställning av kroppslåst innehåll som beskriver några tips, till exempel att avslöja 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 som går runt i rummet. I det här fallet kan hologrammet 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 blanksteg 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 dess interna representation av miljön har skadats. I det här fallet rekommenderar vi att du återställer systemets miljöförststånd. 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 uppstå igen om enheten blir förvirrad mellan de identiska områdena igen.

Se även