Ruimtelijke ankers

Een ruimtelijk anker vertegenwoordigt een belangrijk punt in de wereld dat het systeem in de loop van de tijd volgt. Elk anker heeft een aanpasbaar coördinatensysteem, gebaseerd op andere ankers of referentieframes, om ervoor te zorgen dat verankerde hologrammen precies op hun plaats blijven. Het weergeven van een hologram in het coördinatensysteem van een anker geeft u de meest nauwkeurige positie voor dat hologram op een bepaald moment. Dit gaat ten koste van kleine aanpassingen in de loop van de tijd aan de positie van het hologram, omdat het systeem het voortdurend weer op zijn plaats verplaatst op basis van de echte wereld.

U kunt ook ruimtelijke ankers behouden en delen in toepassingssessies en op verschillende apparaten:

  • Door lokale ruimtelijke ankers op schijf op te slaan en ze later weer te laden, kan uw toepassing dezelfde locatie in de echte wereld berekenen voor meerdere toepassingssessies op één HoloLens.
  • Door Azure Spatial Anchors te gebruiken om een cloudanker te maken, kan uw toepassing een ruimtelijk anker delen op meerdere HoloLens-, iOS- en Android-apparaten. Door elk apparaat een hologram te laten weergeven met behulp van hetzelfde ruimtelijke anker, zien gebruikers dat het hologram op dezelfde plaats in de echte wereld wordt weergegeven. Dit maakt realtime gedeelde ervaringen mogelijk.
  • U kunt Azure Spatial Anchors ook gebruiken voor asynchrone hologrampersistentie op HoloLens-, iOS- en Android-apparaten. Door een duurzaam ruimtelijk anker in de cloud te delen, kunnen meerdere apparaten in de loop van de tijd hetzelfde persistente hologram observeren, zelfs als deze apparaten niet tegelijkertijd aanwezig zijn.

Voor ervaringen op staande schaal of ruimteschaal voor aangesloten desktopheadsets die binnen een diameter van 5 meter blijven, kunt u meestal het referentiekader voor het podium gebruiken in plaats van ruimtelijke ankers, wat u één coördinatensysteem biedt om alle inhoud weer te geven. Als gebruikers echter met uw toepassing meer dan 5 meter in HoloLens kunnen rondlopen, bijvoorbeeld op een hele verdieping van een gebouw, hebt u ruimtelijke ankers nodig om inhoud stabiel te houden.

Hoewel ruimtelijke ankers geweldig zijn voor hologrammen die vast moeten blijven in de wereld, kan een anker niet worden verplaatst wanneer een anker is geplaatst. Er zijn alternatieven voor ankers die meer geschikt zijn voor dynamische hologrammen die samen met de gebruiker taggen. U kunt dynamische hologrammen het beste plaatsen met behulp van een stationair referentiekader (de basis voor de wereldcoördinaten van Unity) of een gekoppeld referentiekader.

Aanbevolen procedures

Deze richtlijnen voor ruimtelijke ankers helpen u bij het weergeven van stabiele hologrammen die de echte wereld nauwkeurig volgen.

Ruimtelijke ankers maken waar gebruikers ze plaatsen

Gebruikers zijn doorgaans degenen die expliciet ruimtelijke ankers plaatsen.

Op HoloLens kan een toepassing bijvoorbeeld de gazestraal van de gebruiker snijden met het mesh voor ruimtelijke toewijzing , zodat de gebruiker kan bepalen waar een hologram moet worden aangebracht. Wanneer de gebruiker tikt om dat hologram te plaatsen, maakt u een ruimtelijk anker op het snijpunt en plaatst u het hologram vervolgens aan de oorsprong van het coördinatensysteem van dat anker.

Lokale ruimtelijke ankers zijn eenvoudig en goed te maken. Het systeem combineert interne gegevens als meerdere ankers hun onderliggende sensorgegevens kunnen delen. U wordt aangeraden een nieuw lokaal ruimtelijk anker te maken voor elk hologram dat een gebruiker expliciet plaatst, behalve in de gevallen die hieronder worden beschreven, zoals starre groepen hologrammen.

Verankerde hologrammen altijd weergeven binnen 3 meter van hun anker

Ruimtelijke ankers stabiliseren hun coördinatensysteem in de buurt van de oorsprong van het anker. Als u hologrammen op meer dan 3 meter van de oorsprong weergeeft, kunnen de hologrammen merkbare positionele fouten ondervinden in verhouding tot de afstand tot die oorsprong vanwege hendel-arm-effecten. Dit werkt als de gebruiker zich in de buurt van het anker bevindt, omdat het hologram zich ook ver van de gebruiker bevindt. Met andere woorden, de hoekfout van het verre hologram is klein. Als de gebruiker echter naar dat verre hologram gaat, is het groot in hun mening, waardoor de hendel-armeffecten van de oorsprong van het verre anker duidelijk zijn.

Groepeer hologrammen die een star cluster moeten vormen

Meerdere hologrammen kunnen hetzelfde ruimtelijke anker delen als de toepassing verwacht dat deze hologrammen vaste relaties met elkaar onderhouden.

Als u bijvoorbeeld een holografisch zonnestelsel in een kamer bezielt, is het beter om alle objecten van het zonnestelsel aan één anker in het midden te koppelen. Op die manier bewegen ze zich soepel op basis van elkaar. In dit geval is het het zonnestelsel als geheel dat verankerd is, ook al bewegen de onderdelen ervan dynamisch rond het anker.

Het belangrijkste voorbehoud voor het handhaven van de stabiliteit van hologrammen is het volgen van de bovenstaande regel van 3 meter.

Zeer dynamische hologrammen weergeven met behulp van het stationaire referentiekader in plaats van een lokaal ruimtelijk anker

Als u een zeer dynamisch hologram hebt, zoals een teken dat door een ruimte loopt of een zwevende gebruikersinterface die langs de muur in de buurt van de gebruiker volgt, kunt u het beste lokale ruimtelijke ankers overslaan en deze hologrammen rechtstreeks weergeven in het coördinatensysteem dat wordt geleverd door het stationaire referentiekader. In Unity doet u dit door hologrammen rechtstreeks in wereldcoördinaten te plaatsen zonder een WorldAnchor. Hologrammen in een stationair referentiekader kunnen afwijkingen ervaren wanneer de gebruiker zich ver van het hologram bevindt. Maar dit is minder waarschijnlijk merkbaar voor dynamische hologrammen: ofwel het hologram beweegt toch voortdurend of de beweging houdt het constant in de buurt van de gebruiker, waar drift wordt geminimaliseerd.

Een interessant geval van dynamische hologrammen is een object dat van het ene verankerde coördinatensysteem naar het andere animaties maakt. U hebt bijvoorbeeld twee kastelen op 10 meter van elkaar, elk op hun eigen ruimtelijk anker met één kasteel dat een kanonskogel afvuren op het andere kasteel. Wanneer de kanonskogel wordt afgevuurd, kunt u deze weergeven op de juiste locatie in het stationaire referentiekader om samen te vallen met het kanon in het eerste ankercoördinaatsysteem van het eerste kasteel. Het kan dan zijn traject in het stationaire referentiekader volgen terwijl het 10 meter door de lucht vliegt. Als de kanonskogel het andere kasteel bereikt, kun je het verplaatsen naar het verankerde coördinatensysteem van het tweede kasteel om fysica berekeningen mogelijk te maken met de stijve lichamen van dat kasteel.

Als u een zeer dynamisch hologram op verschillende apparaten deelt, kiest u een ruimtelijk anker in de cloud om als bovenliggend element te fungeren, omdat stationaire referentieframes niet tussen apparaten kunnen worden gedeeld. U moet er echter voor zorgen dat het dynamische hologram of de apparaten die het bekijken binnen de straal van 3 meter van het anker blijven, zodat het hologram stabiel lijkt op alle apparaten.

Vermijd het maken van een raster van ruimtelijke ankers

U kunt in de verleiding komen om uw toepassing een gewoon raster van ruimtelijke ankers te laten verwijderen terwijl de gebruiker rondloopt, waarbij dynamische objecten van anker naar anker worden verplaatst terwijl ze zich verplaatsen. Dit omvat echter meer beheer voor uw toepassing, zonder het voordeel van de diepe sensorgegevens die het systeem zelf intern onderhoudt. In deze gevallen bereikt u betere resultaten door uw hologrammen in het stationaire referentiekader te plaatsen, zoals beschreven in de bovenstaande sectie. Wanneer u een set ruimtelijke ankers in de cloud vooraf plaatst rond een statische ruimte, kunt u overwegen om de ruimtelijke ankers te plaatsen op de locaties van de belangrijkste hologrammen die de gebruiker volgens het bovenstaande principe tegenkomt, in plaats van een willekeurig raster van ankers te maken. Dit zorgt ervoor dat u maximale stabiliteit krijgt voor deze sleutel hologrammen.

Lokale ruimtelijke ankers vrijgeven die u niet meer nodig hebt

Terwijl een lokaal ruimtelijk anker actief is, geeft het systeem prioriteit aan het bewaren van de sensorgegevens in de buurt van dat anker. Als u geen ruimtelijk anker meer gebruikt, moet u de toegang tot het bijbehorende coördinatensysteem stoppen. Hierdoor kunnen de onderliggende sensorgegevens indien nodig worden verwijderd.

Dit is met name belangrijk voor lokale ankers die u hebt bewaard in het ruimtelijk ankerarchief. De sensorgegevens achter deze ankers worden permanent bewaard, zodat uw toepassing dat anker in toekomstige sessies kan vinden, waardoor er minder ruimte beschikbaar is om andere ankers te volgen. Alleen lokale ankers behouden die u in toekomstige sessies opnieuw moet zoeken. We raden u aan deze uit de store te verwijderen wanneer ze niet meer zinvol zijn voor de gebruiker.

Voor ruimtelijke ankers in de cloud kan uw opslag worden geschaald naar behoefte van uw scenario. U kunt zoveel cloudankers opslaan als u nodig hebt, en ze vrijgeven wanneer u weet dat uw gebruikers het anker niet meer nodig hebben.

Zie ook