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 erhalten Sie jederzeit die genaueste Positionierung für dieses Hologramm. Dies geht auf Kosten von kleinen Anpassungen an der Position des Hologramms im Laufe der Zeit, da das System es basierend auf der realen Welt kontinuierlich wieder an seine Position verschiebt.
Sie können Raumanker auch sitzungsübergreifend beibehalten und gemeinsam nutzen: Indem lokale Raumanker auf dem Datenträger gespeichert und später wieder geladen werden, kann Ihre Anwendung denselben Standort in der realen Welt für mehrere Anwendungssitzungen auf einer einzigen HoloLens berechnen.
Für stehenden Oder Raummaßstab für angebundene Desktop-Headsets, die innerhalb eines Durchmessers von 5 Metern bleiben, können Sie in der Regel anstelle von Raumankern den Bühnenrahmen verwenden, der Ihnen ein einzelnes Koordinatensystem zum Rendern des gesamten Inhalts bietet. Wenn Ihre Anwendung es Benutzern jedoch ermöglicht, mehr als 5 Meter in HoloLens zu wandern und möglicherweise in einer ganzen Etage eines Gebäudes zu arbeiten, benötigen Sie Raumanker, um den Inhalt stabil zu halten.
Raumanker eignen sich zwar hervorragend für Hologramme, die in der Welt fixiert bleiben sollten, aber sobald ein Anker platziert wurde, kann er nicht verschoben werden. Es gibt Alternativen zu Ankern, die besser für dynamische Hologramme geeignet sind, die zusammen mit dem Benutzer taggen. Es empfiehlt sich, dynamische Hologramme mithilfe eines stationären Bezugsrahmens (der Grundlage für die Weltkoordinaten von Unity) oder einem angefügten Bezugsrahmen zu positionieren.
Bewährte Methoden
Diese Richtlinien für Raumanker helfen Ihnen dabei, stabile Hologramme zu rendern, die die reale Welt genau verfolgen.
Erstellen von Raumankern an der Stelle, an der benutzer sie platzieren
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 Raumanker 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 gemeinsam nutzen können. Es wird empfohlen, einen neuen lokalen Raumanker für jedes Hologramm zu erstellen, das ein Benutzer explizit platziert, außer in den unten beschriebenen Fällen, z. B. starre Gruppen von Hologrammen.
Rendern verankerter Hologramme immer innerhalb von 3 Metern von ihrem Anker
Raumanker stabilisieren ihr Koordinatensystem in der Nähe des Ankerursprungs. Wenn Sie Hologramme mehr als 3 Meter vom Ursprung entfernt rendern, können die Hologramme aufgrund von Hebel-Arm-Effekten im Verhältnis zu ihrem Abstand zu diesem Ursprung spürbare Positionsfehler aufweisen. 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 entfernten Hologramms ist klein. Wenn der Benutzer jedoch zu diesem entfernten Hologramm geht, wird es in seiner Ansicht groß sein, sodass die Hebel-Arm-Effekte aus dem entfernten Ankerurursprung offensichtlich sind.
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 aufrechterhalten.
Wenn Sie beispielsweise ein holografisches Sonnensystem in einem Raum animieren, ist es besser, alle Objekte des Sonnensystems an einen einzigen Anker in der Mitte zu binden. Auf diese Weise werden sie sich reibungslos voneinander bewegen. In diesem Fall ist es das Sonnensystem als Ganzes, das verankert ist, obwohl seine Komponenten sich dynamisch um den Anker bewegen.
Der wichtigste Nachteil für die Aufrechterhaltung der Hologrammstabilität ist die Einhaltung der oben genannten 3-Meter-Regel.
Rendern hoch dynamischer Hologramme mithilfe des stationären Bezugsrahmens anstelle eines lokalen Raumankers
Wenn Sie über ein hochdynamisches Hologramm verfügen, z. B. eine Figur, die einen Raum durchläuft, oder eine schwimmende Ui, 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 Referenzrahmen bereitgestellt wird. In Unity erreichen Sie dies, indem Sie Hologramme direkt in Weltkoordinaten ohne WorldAnchor platzieren. Hologramme in einem stationären Bezugsrahmen können abweichungen auftreten, wenn der Benutzer weit vom Hologramm entfernt ist. Bei dynamischen Hologrammen ist dies jedoch weniger wahrscheinlich: Entweder bewegt sich das Hologramm sowieso ständig, oder seine Bewegung hält es ständig in der Nähe des Benutzers, wo die Abweichung minimiert wird.
Ein interessanter Fall dynamischer Hologramme ist ein Objekt, das von einem verankerten Koordinatensystem zu einem anderen animiert. Beispielsweise könnten Sie zwei Schlösser 10 Meter voneinander entfernt haben, jeweils an einem 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. Es kann dann seiner Flugbahn im stationären Bezugsrahmen folgen, während es 10 Meter durch die Luft fliegt. Wenn die Kanonenkugel das andere Schloss erreicht, können Sie sie in das verankerte Koordinatensystem des zweiten Schlosses verschieben, um physikalische Berechnungen mit den starren Körpern dieses Schlosses zu ermöglichen.
Wenn Sie ein hochdynamisches Hologramm geräteübergreifend freigeben, wählen Sie einen Cloud-Raumanker als übergeordnetes Element aus, da stationäre Referenzframes 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 angezeigt wird.
Vermeiden Sie das Erstellen eines Rasters mit Raumankern.
Möglicherweise sind Sie versucht, dass Ihre Anwendung ein reguläres Raster von Raumankern ablöscht, während der Benutzer herumläuft und dynamische Objekte von Anker zu Anker übergehen, während sie sich bewegen. Dies erfordert jedoch mehr Verwaltung für Ihre Anwendung, ohne den Vorteil 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 Reihe von Cloud-Raumankern um einen statischen Raum vorab positionieren, sollten Sie die Raumanker an den Positionen der Schlüssel-Hologramme platzieren, auf die der Benutzer nach dem obigen Prinzip gestoßen ist, anstatt ein beliebiges Ankerraster zu erstellen. Dadurch wird sichergestellt, dass Sie maximale Stabilität für diese Schlüssel-Hologramme erhalten.
Freigeben lokaler Raumanker, die Sie nicht mehr benötigen
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 nach Bedarf entfernt werden.
Dies ist besonders wichtig für lokale Anker, die Sie im Raumankerspeicher gespeichert haben. Die Sensordaten hinter diesen Ankern werden dauerhaft gespeichert, damit Ihre Anwendung diesen Anker in zukünftigen Sitzungen finden kann, wodurch der verfügbare Platz zum Nachverfolgen anderer Anker reduziert wird. Speichern Sie nur lokale Anker, die Sie in zukünftigen Sitzungen erneut finden müssen. Es wird empfohlen, sie aus dem Store zu entfernen, wenn sie für den Benutzer nicht mehr relevant sind.
Bei Raumankern in der Cloud kann Ihr Speicher nach Bedarf 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.