Raumanker

Ein Raumanker stellt einen wichtigen Punkt in der Welt dar, den das System im Laufe der Zeit verfolgt. Jeder Anker verfügt über ein anpassbares Koordinatensystem, das auf anderen Ankern oder Bezugsrahmen basiert, um sicherzustellen, dass verankerte Hologramme genau an Ort und Stelle bleiben. Durch das Rendern eines Hologramms im Koordinatensystem eines Ankers können Sie dieses Hologramm jederzeit präzise positionieren. Dies geht auf Kosten kleiner Anpassungen im Laufe der Zeit an die Position des Hologramms, da das System es kontinuierlich basierend auf der realen Welt wieder an seinen Platz bringt.

Sie können raumbezogene Anker auch über Anwendungssitzungen hinweg und geräteübergreifend beibehalten und freigeben:

  • Durch speichern sie lokale Raumanker auf dem Datenträger und laden sie später wieder zurück, kann Ihre Anwendung denselben Standort in der realen Welt für mehrere Anwendungssitzungen auf einer einzelnen HoloLens berechnen.
  • Mithilfe von Azure Spatial Anchors zum Erstellen eines Cloudankers kann Ihre Anwendung einen Raumanker für mehrere HoloLens-, iOS- und Android-Geräte gemeinsam nutzen. Wenn jedes Gerät ein Hologramm mit demselben Raumanker rendert, wird das Hologramm an derselben Stelle in der realen Welt angezeigt. Dies ermöglicht gemeinsame Erfahrungen in Echtzeit.
  • Sie können Azure Spatial Anchors auch für die asynchrone Hologrammpersistenz auf HoloLens-, iOS- und Android-Geräten verwenden. Durch die gemeinsame Nutzung eines dauerhaften Raumankers in der Cloud können mehrere Geräte im Laufe der Zeit dasselbe persistente Hologramm beobachten, auch wenn diese Geräte nicht gleichzeitig vorhanden sind.

Für Funktionen im Stand- oder Raummaßstab für tethered Desktop-Headsets, die innerhalb eines Durchmessers von 5 Metern bleiben, können Sie in der Regel den Bühnenrahmen anstelle von Raumankern verwenden, wodurch Sie ein einzelnes Koordinatensystem zum Rendern aller Inhalte erhalten. Wenn Ihre Anwendung es Benutzern jedoch ermöglicht, mehr als 5 Meter in HoloLens zu wandern und möglicherweise in einer gesamten Etage eines Gebäudes zu arbeiten, benötigen Sie Raumanker, um den Inhalt stabil zu halten.

Obwohl Raumanker ideal für Hologramme sind, die in der Umgebung verankert bleiben sollen, kann ein Anker nach der Positionierung nicht mehr bewegt werden. Es gibt Alternativen zu Ankern, die für dynamische Hologramme, die zusammen mit dem Benutzer taggen, besser geeignet sind. Es ist am besten, dynamische Hologramme mithilfe eines stationären Bezugsrahmens (die Grundlage für die Weltkoordinaten von Unity) oder einem angefügten Bezugsrahmen zu positionieren.

Bewährte Methoden

Diese Richtlinien für Raumanker helfen Ihnen, stabile Hologramme zu rendern, die die reale Welt präzise nachverfolgen.

Erstellen von Raumankern, wo sie vom Benutzer platziert werden

In der Regel sind Benutzer diejenigen, die Raumanker explizit platzieren.

Beispielsweise kann eine Anwendung auf HoloLens den Blickstrahl des Benutzers mit dem räumlichen Zuordnungsgitter schneiden, damit der Benutzer entscheiden kann, wo ein Hologramm platziert werden soll. Wenn der Benutzer tippt, um dieses Hologramm zu platzieren, erstellen Sie einen räumlichen Anker am Schnittpunkt, und platzieren Sie das Hologramm dann am Ursprung des Koordinatensystems dieses Ankers.

Lokale Raumanker sind einfach und leistungsfähig zu erstellen. Das System kombiniert interne Daten, wenn mehrere Anker ihre zugrunde liegenden Sensordaten freigeben können. Es wird empfohlen, einen neuen lokalen Raumanker für jedes Hologramm zu erstellen, das ein Benutzer explizit platziert, mit Ausnahme der unten beschriebenen Fälle, z. B. starre Gruppen von Hologrammen.

Verankerte Hologramme immer innerhalb von 3 Metern von ihrem Anker rendern

Raumanker stabilisieren ihr Koordinatensystem in der Nähe des Ankerursprungs. Wenn Sie Hologramme mehr als 3 Meter vom Ursprung entfernt rendern, können bei den Hologrammen aufgrund von Hebel-Arm-Effekten im Verhältnis zu ihrem Abstand zu diesem Ursprung erkennbare Positionsfehler auftreten. Dies funktioniert, wenn der Benutzer in der Nähe des Ankers steht, da das Hologramm ebenfalls weit vom Benutzer entfernt ist. Mit anderen Worten, der Winkelfehler des fernen Hologramms ist klein. Wenn der Benutzer jedoch zu diesem fernen Hologramm geht, wird es in seiner Ansicht groß sein, wodurch die Hebelarmeffekte des fernen Ankerursprungs offensichtlich werden.

Gruppieren von Hologrammen, die einen starren Cluster bilden sollen

Mehrere Hologramme können denselben Raumanker verwenden, wenn die Anwendung erwartet, dass diese Hologramme feste Beziehungen zueinander unterhalten.

Wenn Sie beispielsweise ein holografisches Sonnensystem in einem Raum animieren, ist es besser, alle Objekte des Sonnensystems an einen einzelnen Anker in der Mitte zu binden. Auf diese Weise werden sie sich reibungslos voneinander abhängig bewegen. In diesem Fall ist das Sonnensystem als Ganzes verankert, obwohl sich seine Komponenten dynamisch um den Anker bewegen.

Die wichtigste Einschränkung, um die Stabilität des Hologramms aufrechtzuerhalten, ist die Einhaltung der oben genannten 3-Meter-Regel.

Hochdynamische Hologramme mit dem stationären Bezugsrahmen anstatt mit einem lokalen Raumanker rendern

Wenn Sie über ein hochdynamisches Hologramm verfügen, z. B. einen Charakter, der um einen Raum läuft, oder eine schwebende Benutzeroberfläche, die entlang der Wand in der Nähe des Benutzers folgt, ist es am besten, lokale Raumanker zu überspringen und diese Hologramme direkt im Koordinatensystem zu rendern, das vom stationären Bezugsrahmen bereitgestellt wird. In Unity erreichen Sie dies, indem Sie Hologramme direkt in Weltkoordinaten ohne WorldAnchor platzieren. Hologramme in einem stationären Referenzrahmen können driften, wenn der Benutzer weit vom Hologramm entfernt ist. Bei dynamischen Hologrammen ist dies jedoch weniger wahrscheinlich: Entweder bewegt sich das Hologramm ständig oder seine Bewegung hält es ständig in der Nähe des Benutzers, wo die Drift minimiert wird.

Ein interessanter Fall von dynamischen Hologrammen ist ein Objekt, das von einem verankerten Koordinatensystem zum anderen animiert wird. Zum Beispiel können Sie zwei Burgen im Abstand von 10 Metern haben, jede auf ihrem eigenen Raumanker, wobei eine Burg eine Kanonenkugel auf das andere Schloss abfeuert. Wenn die Kanonenkugel abgefeuert wird, können Sie sie an der entsprechenden Stelle im stationären Bezugsrahmen rendern, um mit der Kanone im verankerten Koordinatensystem des ersten Schlosses zusammenzufallen. Im stationären Bezugsrahmen kann sie dann ihrer Flugbahn folgen, wenn sie 10 Meter durch die Luft fliegt. Wenn die Kanonenkugel die andere Burg erreicht, können Sie sie in das verankerte Koordinatensystem des zweiten Schlosses verschieben, um physikalische Berechnungen mit den starren Körpern des Schlosses zu ermöglichen.

Wenn Sie ein hochdynamisches Hologramm geräteübergreifend nutzen, wählen Sie einen raumbasierten Cloudanker als übergeordnetes Element aus, da stationäre Referenzrahmen nicht geräteübergreifend freigegeben werden können. Sie sollten jedoch sicherstellen, dass das dynamische Hologramm oder die Geräte, die es anzeigen, innerhalb des 3-Meter-Radius des Ankers bleiben, damit das Hologramm auf allen Geräten stabil erscheint.

Vermeiden der Erstellung eines Rasters von Raumankern

Möglicherweise sind Sie versucht, dass Ihre Anwendung ein reguläres Raster von Raumankern abgibt, während der Benutzer herumläuft und dynamische Objekte von Anker zu Anker überwechselt, während sie sich bewegen. Dies erfordert jedoch mehr Verwaltung für Ihre Anwendung, ohne den Nutzen der tiefen Sensordaten, die das System selbst intern verwaltet. In diesen Fällen erzielen Sie bessere Ergebnisse, indem Sie Ihre Hologramme im stationären Bezugsrahmen platzieren, wie im obigen Abschnitt beschrieben. Wenn Sie eine Gruppe von Raumankern der Cloud im Voraus um einen statischen Raum positionieren, sollten Sie die Raumanker an den Positionen der Schlüsselhologramme platzieren, die der Benutzer gemäß dem oben genannten Prinzip findet, anstatt ein beliebiges Raster von Ankern zu erstellen. Dadurch wird sichergestellt, dass Sie die maximale Stabilität für diese Schlüsselhologramme erhalten.

Freigeben lokaler Raumanker, die nicht länger benötigt werden

Während ein lokaler Raumanker aktiv ist, priorisiert das System die Beibehaltung der Sensordaten, die sich in der Nähe dieses Ankers befinden. Wenn Sie keinen Raumanker mehr verwenden, beenden Sie den Zugriff auf das Koordinatensystem. Dadurch können die zugrunde liegenden Sensordaten bei Bedarf entfernt werden.

Dies ist besonders wichtig für lokale Anker, die Sie im Räumlichen Ankerspeicher beibehalten haben. Die Sensordaten hinter diesen Ankern werden dauerhaft aufbewahrt, damit Ihre Anwendung diesen Anker in zukünftigen Sitzungen finden kann, wodurch der verfügbare Platz zum Nachverfolgen anderer Anker verringert wird. Speichern Sie nur lokale Anker, die Sie in zukünftigen Sitzungen erneut finden müssen. Es wird empfohlen, sie aus dem Speicher zu entfernen, wenn sie für den Benutzer nicht mehr aussagekräftig sind.

Bei Cloudraumankern kann Ihr Speicher entsprechend den Anforderungen Ihres Szenarios skaliert werden. Sie können so viele Cloudanker speichern, wie Sie benötigen, und sie freigeben, wenn Sie wissen, dass Ihre Benutzer den Anker nicht mehr benötigen.

Weitere Informationen