Systemen coördineren

Functie HoloLens (eerste generatie) HoloLens 2 Immersive headsets
Stationair referentiekader ✔️ ✔️ ✔️
Bijgevoegd referentieframe ✔️ ✔️ ✔️
Referentiekader voor fase Nog niet ondersteund Nog niet ondersteund ✔️
Ruimtelijke ankers ✔️ ✔️ ✔️
Ruimtelijke toewijzing ✔️ ✔️
Scène-inzicht ✔️

Schalen van mixed reality-ervaring

U kunt Mixed Reality-apps ontwerpen voor een breed scala aan gebruikerservaringen, van videolezers van 360 graden met behulp van headsetstand tot volledige apps en games op wereldschaal met behulp van ruimtelijke toewijzing en ruimtelijke ankers:


Ervaringsschaal Vereisten Voorbeeldervaring
Alleen afdrukstand Stand van headset (met de ernst uitgelijnd) 360° video viewer
Zittend schalen Boven plus headsetpositie op basis van nulpositie Racegame of ruimtesimulator
Permanente schaal Boven plus fase floor origin Actiespel waarin u kunt gamen en spelen
Ruimteschaal Boven de plusfasegrens veelhoek Game van de vert.
Wereldschaal Ruimtelijke ankers (en meestal ruimtelijke toewijzing) Gamen met angst afkomstig van uw echte muren, zoals RoboRaid

De bovenstaande ervaringsschalen volgen een 'nesting model'. Het belangrijkste ontwerpprincipe voor Windows Mixed Reality is dat een bepaalde headset apps ondersteunt die zijn gebouwd voor een doelervaringschaal en alle kleinere schaal:


6DOF-tracering Floor defined 360°-tracering Gedefinieerde grenzen Ruimtelijke ankers Maximale ervaring
Nee - - - - Alleen afdrukstand
Ja Nee - - - Zitten
Ja Ja Nee - - Permanent - Vooruit
Ja Ja Ja Nee - Permanent - 360°
Ja Ja Ja Ja Nee Room
Ja Ja Ja Ja Ja Wereld

Het referentiekader Fase wordt nog niet ondersteund op HoloLens. Een app op ruimteschaal op HoloLens moet momenteel ruimtelijke toewijzing of scènebegrip gebruiken om de vloer en muren van de gebruiker te vinden.

Ruimtelijke coördinaatsystemen

Alle 3D-grafische toepassingen gebruiken Cartesische coördinaatsystemen om te redeneren over de posities en standen van virtuele objecten. Deze coördinatensystemen brengen drie perpenditische assen tot stand om objecten te positioneren: een X-, Y- en Z-as.

In mixed realityredeneren uw apps over virtuele en fysieke coördinatensystemen. Windows roept een coördinaatsysteem aan dat in de fysieke wereld een ruimtelijk coördinaatsysteem heeft.

Systemen voor ruimtelijke coördinaten drukken hun coördinatenwaarden uit in meters. Dit betekent dat objecten die twee eenheden uit elkaar plaatsen op de X-, Y- of Z-as 2 meter naast elkaar worden weergegeven wanneer ze worden weergegeven in mixed reality. Als u dit weet, kunt u eenvoudig objecten en omgevingen in de echte wereld renderen.

Over het algemeen kunnen Cartesische coördinatensystemen rechtshandig of linkshandig zijn. Ruimtelijke coördinatensystemen op Windows zijn altijd rechtshandig, wat betekent dat de positieve x-as naar rechts wijst, de positieve Y-as naar boven wijst (uitgelijnd op de ernst) en de positieve Z-as naar u toe wijst.

In beide soorten coördinaatsystemen wijst de positieve X-as naar rechts en wijst de positieve y-as omhoog. Het verschil is of de positieve Z-as naar u wijst of van u weg wijst. Onthoud in welke richting de positieve Z-as wijst door de vingers van uw linker- of rechterhand in de positieve X-richting te wijzen en deze naar de positieve Y-richting te curlen. De richting van uw vingerafdruk, naar of van u af, is de richting die de positieve Z-as voor dat coördinaatsysteem wijst.

Een ervaring met alleen-oriëntatie of zittend schalen bouwen

De sleutel tot holografische rendering is het wijzigen van de weergave van de hologrammen van elk frame van uw app wanneer de gebruiker zich verplaatst, zodat deze overeenkomen met de voorspelde hoofd beweging. U kunt ervaringen op zitschaal bouwen die wijzigingen in de hoofdpositie en hoofdstand van de gebruiker respecteren met behulp van een stationair referentieframe.

Sommige inhoud moet updates van de hoofdpositie negeren en altijd een bepaalde kop en afstand tot de gebruiker behouden. Het primaire voorbeeld is een video van 360 graden: omdat de video vanuit één vast perspectief wordt vastgelegd, zou dit de afdrukstand voor de positie van de weergave op basis van de inhoud verdraaien, zelfs als de weergavestand verandert wanneer de gebruiker om zich heen kijkt. U kunt dergelijke stand-only ervaringen bouwen met behulp van een bijgevoegd referentieframe.

Stationair referentieframe

Het coördinaatsysteem dat wordt geleverd door een stationair referentieframe, houdt de posities van objecten in de buurt van de gebruiker zo stabiel mogelijk op basis van de wereld, met respect voor wijzigingen in de hoofdpositie van de gebruiker.

Voor ervaringen op zitschaal in een game-engine zoals Unityis een stationair referentieframe definieert de 'world origin' van de engine. Objecten die op een specifieke wereldcoördinaat worden geplaatst, gebruiken het stationaire referentiekader om hun positie in de echte wereld te definiëren met dezelfde coördinaten. Inhoud die in de wereld blijft staan, zelfs wanneer de gebruiker rondloopt, wordt wereldge-vergrendelde inhoud genoemd.

Een app maakt doorgaans één stationair referentiekader bij het opstarten en gebruikt het coördinaatsysteem gedurende de levensduur van de app. Als app-ontwikkelaar in Unity kunt u gewoon beginnen met het plaatsen van inhoud op basis van de oorsprong, die de eerste hoofdpositie en oriëntatie van de gebruiker heeft. Als de gebruiker naar een nieuwe locatie overstapt en de ervaring op zitschaal wil voortzetten, kunt u de oorsprong van de wereld op die locatie recenter vinden.

Naarmate het systeem meer over de omgeving van de gebruiker leert, kan het na een periode bepalen dat de afstanden tussen verschillende punten in de echte wereld korter of langer zijn dan het systeem voorheen denkt. Als u hologrammen rendert in een stationair referentiekader voor een app op HoloLens waar gebruikers buiten een gebied van ongeveer 5 meter breed lopen, kan uw app drift in de waargenomen locatie van deze hologrammen observeren. Als uw ervaring gebruikers meer dan 5 meter heeft, bouwt u een wereldschaalervaring, waarvoor andere technieken nodig zijn om hologrammen stabiel te houden, zoals hieronder wordt beschreven.

Bijgevoegd referentieframe

Een gekoppeld referentieframe wordt verplaatst met de gebruiker terwijl deze rond loopt, met een vaste kop die wordt gedefinieerd wanneer de app het frame voor het eerst maakt. Hierdoor kan de gebruiker gemakkelijk rondkijken naar inhoud die binnen dat referentieframe is geplaatst. Inhoud die op deze gebruiker-relatieve manier wordt weergegeven, wordt inhoud met een body-vergrendelde naam genoemd.

Wanneer de headset niet kan achterhalen waar deze zich in de wereld is, biedt een bijgevoegd referentieframe het enige coördinatensysteem dat kan worden gebruikt om hologrammen weer te geven. Hierdoor is het ideaal voor het weergeven van de terugvalinterface om de gebruiker te laten weten dat het apparaat ze niet ter wereld kan vinden. Apps die op zittend of hoger zijn geschaald, moeten een terugval in stand-only bevatten om de gebruiker te helpen weer op weg te gaan, met een gebruikersinterface die vergelijkbaar is met de gebruikersinterface die wordt weergegeven in Mixed Reality start.

Een ervaring op schaal of ruimte bouwen

Als u verder wilt gaan dan zittend schalen op een immersive headset een permanente schaalervaring wilt bouwen,kunt u het referentieframe gebruiken.

Als u een ervaring op ruimteschaalwilt bieden, zodat gebruikers kunnen rondlopen binnen de 5 meter grens die ze vooraf hebben gedefinieerd, kunt u ook controleren op fasegrenzen.

Referentieframe voor fase

Bij het instellen van een immersive headset definieert de gebruiker een fase ,die de ruimte vertegenwoordigt waarin ze te maken krijgen met mixed reality. De fase definieert minimaal de oorsprong van een fase,een ruimtelijk coördinaatsysteem dat is gecentreerd op de gekozen vloerpositie en de voorwaartse stand waar de gebruiker het apparaat wil gebruiken. Door inhoud in dit fasecoördinatensysteem te plaatsen op het Y=0-verdiepingsvlak, kunt u ervoor zorgen dat uw hologrammen op de vloer verschijnen wanneer de gebruiker zich staande heeft, zodat gebruikers een permanente schaalervaring hebben.

Fasegrens

De gebruiker kan eventueel ook fasegrens definiëren,een gebied binnen de ruimte dat hij/zij heeft geweerd om zich in de mixed reality. Als dat het zo is, kan de app een ervaring op ruimteschaal bouwen met behulp van deze grenzen om ervoor te zorgen dat hologrammen altijd worden geplaatst waar de gebruiker ze kan bereiken.

Omdat het referentieframe voor fases één vast coördinaatsysteem biedt waarin u relatieve inhoud van de vloer kunt plaatsen, is dit het eenvoudigste pad voor het over dragen van toepassingen op schaal en op ruimteschaal die zijn ontwikkeld voor virtual reality-headsets. Net als bij deze VR-platformen kan één coördinaatsysteem de inhoud echter alleen stabiliseren in eendiameter van ongeveer 5 meter (16 voet), voordat de lever-arm-effecten ertoe leiden dat inhoud ver van het midden aanzienlijk verschuift naarmate het systeem zich aanpast. Ruimtelijke ankers zijn nodig om verder te gaan dan 5 meter.

Een wereldschaalervaring bouwen

HoloLens biedt echte ervaringen op wereldschaal waarmee gebruikers meer dan 5 meter kunnen lopen. Als u een app op wereldschaal wilt bouwen, hebt u nieuwe technieken nodig die niet worden gebruikt voor ervaringen op ruimteschaal.

Waarom één strikt coördinaatsysteem niet meer dan 5 meter kan worden gebruikt

Tegenwoordig is het bij het schrijven van games, apps voor gegevensvisualisatie of virtual reality gebruikelijk om één coördinaatsysteem voor een absolute wereld tot stand te brengen waar alle andere coördinaten betrouwbaar aan kunnen worden terug gebracht. In die omgeving kunt u altijd een stabiele transformatie vinden die een relatie tussen twee objecten in die wereld definieert. Als u deze objecten niet zou verplaatsen, zouden de relatieve transformaties altijd hetzelfde blijven. Dit soort globaal coördinaatsysteem werkt goed bij het weergeven van een zuivere virtuele wereld waarin u van tevoren alle geometrie kent. Vr-apps op kamerschaal bepalen tegenwoordig doorgaans dit soort absolute coördinatensysteem op kamerschaal met de oorsprong op de vloer.

Een niet-thered mixed reality-apparaat, zoals HoloLens, heeft daarentegen een dynamisch sensorgestuurd inzicht in de wereld, en past zijn kennis voortdurend aan in de loop van de tijd van de omgeving van de gebruiker terwijl deze vele meters door een hele verdieping van een gebouw loopt. Als u in een wereldschaalervaring al uw hologrammen in één strikt coördinatensysteem zou plaatsen, zouden deze hologrammen noodzakelijkerwijs in de tijd veranderen, op basis van de wereld of naar elkaar.

De headset kan momenteel bijvoorbeeld van mening zijn dat twee locaties in de wereld 4 meter uit elkaar liggen en dat inzicht later verfijnen, door te leren dat de locaties in feite 3,9 meter uit elkaar liggen. Als deze hologrammen in eerste instantie vier meter uit elkaar waren geplaatst in één strikt coördinaatsysteem, zou een van de hologrammen altijd 0,1 meter van de echte wereld worden verwijderd.

Ruimtelijke ankers

Windows Mixed Reality het probleem dat in de vorige sectie is beschreven, op door u ruimtelijke ankers te laten maken om belangrijke punten in de wereld te markeren waar de gebruiker hologrammen heeft geplaatst. Een ruimtelijk anker vertegenwoordigt een belangrijk punt in de wereld dat het systeem in de afgelopen tijd moet bijhouden.

Naarmate het apparaat meer over de wereld leert, kunnen deze ruimtelijke ankers hun positie waar nodig op elkaar gebaseerd aanpassen om ervoor te zorgen dat elk anker precies blijft waar het is geplaatst op basis van de echte wereld. Door een ruimtelijk anker te plaatsen op de locatie waar de gebruiker een hologram plaatst en dat hologram vervolgens te positioneren op basis van het ruimtelijke anker, kunt u ervoor zorgen dat het hologram optimale stabiliteit behoudt, zelfs wanneer de gebruiker over tientallen meters roamt.

Deze continue aanpassing van ruimtelijke ankers op basis van elkaar is het belangrijkste verschil tussen coördinatensystemen van ruimtelijke ankers en stationaire referentieframes:

  • Hologrammen in het stationaire referentieframe worden geplaatst, houden allemaal een strikte relatie met elkaar aan. Als de gebruiker echter lange afstanden loopt, kan het coördinatensysteem van dat frame op basis van de wereld veranderen om ervoor te zorgen dat hologrammen naast de gebruiker stabiel lijken.

  • Hologrammen die in het referentiefaseframe zijn geplaatst, houden ook een strikte relatie met elkaar. In tegenstelling tot het stationaire frame blijft het faseframe altijd vast op basis van de gedefinieerde fysieke oorsprong. Inhoud die wordt weergegeven in het coördinatensysteem van de fase buiten de grens van 5 meter, ziet er echter alleen stabiel uit wanneer de gebruiker zich binnen die grens blijft.

  • Hologrammen met behulp van één ruimtelijk anker kan driften op basis van hologrammen die zijn geplaatst met behulp van een ander ruimtelijk anker. Hierdoor kunnen Windows inzicht krijgen in de positie van elk ruimtelijk anker, zelfs als het ene anker zich bijvoorbeeld naar links moet aanpassen en een ander anker naar rechts moet worden aangepast.

In tegenstelling tot een stationair referentiekader, dat altijd optimaliseert voor stabiliteit in de buurt van de gebruiker, zorgen het faseframe van referentie- en ruimtelijke ankers voor stabiliteit in de buurt van hun oorsprong. Dit helpt deze hologrammen nauwkeurig in de tijd te blijven, maar het betekent ook dat hologrammen die te ver van de oorsprong van hun coördinaatsysteem worden gerenderd, steeds ernstigere lever-arm-effecten zullen ervaren. Dit komt doordat kleine aanpassingen aan de positie en oriëntatie van de fase of het anker evenredig worden vergroot met de afstand van dat anker.

Een goede vuistregel is ervoor te zorgen dat alles wat u rendert op basis van het coördinatensysteem van een ver ruimtelijk anker, zich binnen ongeveer drie meter van de oorsprong ervan belandt. Voor een nabijgelegen fase-oorsprong is het weergeven van verafgelegen inhoud ok, omdat een toegenomen positionele fout alleen invloed heeft op kleine hologrammen die niet veel in de weergave van de gebruiker verschuiven.

Persistentie van ruimtelijk anker

Ruimtelijke ankers kunnen er ook voor zorgen dat uw app een belangrijke locatie onthoudt, zelfs nadat uw app is uitgeschakeld of het apparaat is afgesloten.

U kunt opslaan op schijf de ruimtelijke ankers die door uw app worden gemaakt en deze later opnieuw laden door ze vast te houden in de ruimtelijke ankeropslag van uwapp. Bij het opslaan of laden van een anker geeft u een tekenreekssleutel op die zinvol is voor uw app om het anker later te identificeren. U kunt deze sleutel zien als de bestandsnaam voor uw anker. Als u andere gegevens wilt koppelen aan dat anker, zoals een 3D-model dat de gebruiker op die locatie heeft geplaatst, moet u deze opslaan in de lokale opslag van uw app en deze koppelen aan de sleutel die u hebt gekozen.

Door ankers vast te houden in de store, kunnen uw gebruikers afzonderlijke hologrammen plaatsen of een werkruimte plaatsen waarin een app de verschillende hologrammen zal plaatsen, en deze hologrammen later vinden op de plek waar ze ze verwachten, bij veel gebruik van uw app.

U kunt Ook Azure Spatial Anchors voor asynchrone hologrammen persistentie op HoloLens-, iOS- en Android-apparaten. Door een duurzaam ruimtelijk anker in de cloud te delen, kunnen meerdere apparaten in de tijd hetzelfde persistente hologram observeren, zelfs als deze apparaten niet tegelijk aanwezig zijn.

Delen van ruimtelijk anker

Uw app kan ook een ruimtelijk anker in realtime delen met andere apparaten, waardoor realtime gedeelde ervaringen mogelijk zijn.

Met behulp van Azure Spatial Anchorskan uw app een ruimtelijk anker delen op meerdere HoloLens-, iOS- en Android-apparaten. Door elk apparaat een hologram te laten renderen met hetzelfde ruimtelijke anker, zien alle gebruikers dat het hologram op dezelfde plaats in de echte wereld wordt weergegeven.

Head-locked inhoud voorkomen

Het wordt sterk afgeraden om head-locked inhoud weer te geven, die op een vaste plek in de weergave (zoals een HUD) blijft. Over het algemeen is head-locked content niet erg voor gebruikers en lijkt het niet op een natuurlijk deel van hun wereld.

Head-locked inhoud moet doorgaans worden vervangen door hologrammen die zijn gekoppeld aan de gebruiker of in de wereld zelf worden geplaatst. Cursors moeten bijvoorbeeld in het algemeen naar de wereld worden geslingereerd en op natuurlijke wijze worden geschaald om de positie en afstand van het object onder de staring van de gebruiker weer te geven.

Traceringsfouten verwerken

In sommige omgevingen, zoals donkere kleding, is het mogelijk dat een headset met behulp van inside-out tracering zichzelf op de juiste manier in de wereld kan vinden. Dit kan ertoe leiden dat hologrammen niet worden weergegeven of op onjuiste plaatsen worden weergegeven als ze onjuist worden verwerkt. We bespreken nu de voorwaarden waarin dit kan gebeuren, de invloed ervan op de gebruikerservaring en tips om deze situatie het beste te kunnen afhandelen.

Headset kan niet worden bij houden vanwege onvoldoende sensorgegevens

Soms kunnen de sensoren van de headset niet achterhalen waar de headset is. Dit kan gebeuren als:

  • De ruimte is donker
  • Als de sensoren zijn bedekt met haar of handen
  • Als de omgeving niet voldoende structuur heeft.

Als dit gebeurt, kan de headset zijn positie niet volgen met voldoende nauwkeurigheid om wereldge vergrendelde hologrammen weer te geven. U kunt niet achterhalen waar een ruimtelijk anker, stationair frame of faseframe is gebaseerd op het apparaat. U kunt echter nog steeds met de body vergrendelde inhoud in het bijgevoegde referentieframe renderen.

Uw app moet de gebruiker laten weten hoe positietracking kan worden teruggeplaatst en er wat inhoud wordt weergeven die is vergrendeld met de hoofd- en terugvalfunctie. Hier worden enkele tips beschreven, zoals het blootleggen van de sensoren en het in-/uitschakelen van meer lampen.

Headset houdt de gegevens onjuist bij vanwege dynamische wijzigingen in de omgeving

Het apparaat kan niet goed worden bij te houden als er veel dynamische wijzigingen in de omgeving zijn, zoals veel mensen die in de ruimte rond lopen. In dit geval lijken de hologrammen te springen of te driften wanneer het apparaat zichzelf probeert bij te houden in deze dynamische omgeving. We raden u aan het apparaat in een minder dynamische omgeving te gebruiken als u dit scenario hebt.

Headset houdt de gegevens onjuist bij omdat de omgeving na een periode aanzienlijk is gewijzigd

Wanneer u begint met het gebruik van een headset in een omgeving waar de oren, wandgehingen, en meer zijn verplaatst, is het mogelijk dat sommige hologrammen worden verschoven van hun oorspronkelijke locaties. De eerdere hologrammen kunnen ook rondspringen wanneer de gebruiker zich in de nieuwe ruimte verplaatst, omdat het begrip van uw ruimte niet meer waar is. Het systeem probeert vervolgens de omgeving opnieuw toe te wijsen terwijl ook wordt geprobeerd de functies van de ruimte af te stemmen. In dit scenario is het raadzaam om gebruikers aan te moedigen hologrammen te vervangen die ze in de wereld hebben vastgemaakt als ze niet worden weergegeven zoals verwacht.

Headset houdt onjuiste sporen bij vanwege identieke ruimten in een omgeving

Soms kan een huis of een andere ruimte twee identieke gebieden hebben. Bijvoorbeeld twee identieke vergaderruimten, twee identieke hoekgebieden, twee grote identieke posters die het weergaveveld van het apparaat aandeden. In dergelijke scenario's kan het apparaat soms in de war raken tussen de identieke onderdelen en deze als hetzelfde markeren in de interne weergave. Dit kan ertoe leiden dat de hologrammen van sommige gebieden op andere locaties worden weergegeven. Het apparaat kan het bijhouden vaak verliezen omdat de interne weergave van de omgeving is beschadigd. In dit geval is het raadzaam om de omgevingskennis van het systeem opnieuw in te stellen. Het opnieuw instellen van de kaart leidt tot verlies van alle plaatsingen van ruimtelijk ankers. Hierdoor wordt de headset goed bij te houden in de unieke gebieden van de omgeving. Het probleem kan zich echter opnieuw voordoen als het apparaat opnieuw wordt verward tussen de identieke gebieden.

Zie ook

In de kern plaatsen mixed reality-apps hologrammen in uw wereld die eruit zien als echte objecten en klinken. Dit omvat het nauwkeurig positioneren en oriënteren van deze hologrammen op zinvolle plaatsen in de wereld, of de wereld nu hun fysieke ruimte is of een virtuele realm die u hebt gemaakt. Windows biedt verschillende coördinatensystemen uit de echte wereld voor het uitdrukken van geometrie, wat ook wel ruimtelijke coördinatensystemen wordt genoemd. U kunt systemen voor ruimtelijke coördinaten gebruiken om te redeneren over de positie, richting, starings ray of handposities van hologrammen.


Ondersteuning voor apparaten