RaumankerSpatial anchors

Ein räumlicher Anker stellt einen wichtigen Punkt in der Welt dar, den das System über einen Zeitraum nachverfolgt.A spatial anchor represents an important point in the world that the system tracks over time. Jeder Anker verfügt über ein anpassbares Koordinatensystem, das auf anderen Anker oder Frames basiert, um sicherzustellen, dass die verankerten Hologramme genau vorhanden sind.Each anchor has an adjustable coordinate system, based on other anchors or frames of reference, to ensure anchored holograms stay precisely in place. Durch das Rendern eines holograms im Koordinatensystem eines Ankers erhalten Sie jeweils die präzisere Positionierung für dieses Hologramm.Rendering a hologram in an anchor's coordinate system gives you the most precise positioning for that hologram at any given time. Dies ist der Aufwand für kleine Anpassungen im Zeitverlauf bis zur Position des Hologramms, da das System das System ständig auf der realen Welt wieder auf den Stand bringt.This comes at the cost of small adjustments over time to the hologram's position as the system continually moves it back into place based on the real world.

Sie können auch räumliche Anker für Anwendungs Sitzungen und Geräte übergreifend beibehalten und freigeben:You can also persist and share spatial anchors across application sessions and across devices:

  • Indem lokale räumliche Anker auf einem Datenträger gespeichert und später wieder geladen werden, kann die Anwendung denselben Speicherort in der realen Welt über mehrere Anwendungs Sitzungen hinweg in einem einzelnen hololens berechnen.By saving local spatial anchors to disk and loading them back later, your application can calculate the same location in the real world across multiple application sessions on a single HoloLens.
  • Durch die Verwendung von Azure Spatial Anchor zum Erstellen eines cloudankers kann Ihre Anwendung einen räumlichen Anker für mehrere hololens-, IOS-und Android-Geräte freigeben.By using Azure Spatial Anchors to create a cloud anchor, your application can share a spatial anchor across multiple HoloLens, iOS, and Android devices. Wenn jedes Gerät ein – Hologramm mithilfe desselben räumlichen Ankers erstellt, sehen Benutzer, dass das – Hologramm an derselben Stelle in der realen Welt angezeigt wird.By having each device render a hologram using the same spatial anchor, users will see the hologram appear at the same place in the real world. Dies ermöglicht gemeinsame Erfahrungen in Echtzeit.This allows for real-time shared experiences.
  • Sie können auch räumliche Azure-Anker für die asynchrone – Hologramm-Persistenz über hololens-, IOS-und Android-Geräte verwenden.You can also use Azure Spatial Anchors for asynchronous hologram persistence across HoloLens, iOS, and Android devices. Durch die gemeinsame Nutzung eines permanenten clouddiensts können mehrere Geräte im Lauf der Zeit dasselbe persistente Hologramm beobachten, auch wenn diese Geräte nicht gleichzeitig vorhanden sind.By sharing a durable cloud spatial anchor, multiple devices can observe the same persisted hologram over time, even if those devices aren't present together at the same time.

Für den Einsatz von Desktop-Headsets, die sich in einem Fünfdimensionalen Durchmesser befinden, können Sie in der Regel den stagingframe von Reference anstelle räumlicher Anker verwenden, der ein einzelnes Koordinatensystem bereitstellt, in dem der gesamte Inhalt dargestellt werden kann.For standing-scale or room-scale experiences for tethered desktop headsets that will stay within a 5-meter diameter, you can typically use the stage frame of reference instead of spatial anchors, which provides you a single coordinate system in which to render all content. Wenn Ihre Anwendung jedoch Benutzern ermöglicht, mehr als 5 Meter in hololens zu bewegen, was vielleicht in der gesamten Etage eines Gebäudes betrieben wird, benötigen Sie räumliche Anker, um Inhalte stabil zu halten.However, if your application lets users wander beyond 5 meters in HoloLens, perhaps operating throughout an entire floor of a building, you'll need spatial anchors to keep content stable.

Obwohl Raumanker ideal für Hologramme sind, die in der Umgebung verankert bleiben sollen, kann ein Anker nach der Positionierung nicht mehr bewegt werden.While spatial anchors are great for holograms that should remain fixed in the world, once an anchor is placed, it can't be moved. Es gibt Alternativen zu ankern, die für dynamische Hologramme geeignet sind, die mit dem Benutzer versehen werden.There are alternatives to anchors that are more appropriate for dynamic holograms that tag along with the user. Es ist am besten, dynamische Hologramme mithilfe eines stationären Frame Rahmens (Grundlage der Weltkoordinaten von Unity) oder eines angefügten Frame Bilds zu positionieren.It's best to position dynamic holograms using a stationary frame of reference (the foundation for Unity's world coordinates) or an attached frame of reference.

Empfohlene MethodenBest practices

Diese Richtlinien für Raumanker helfen Ihnen, stabile Hologramme zu rendern, die die reale Welt präzise nachverfolgen.These spatial anchor guidelines will help you render stable holograms that accurately track the real world.

Erstellen von Raumankern, wo sie vom Benutzer platziert werdenCreate spatial anchors where users place them

Normalerweise platzieren Benutzer explizit räumliche Anker.Typically, users are the ones explicitly placing spatial anchors.

Beispielsweise kann eine Anwendung auf hololens den Blick Strahl des Benutzers mit dem räumlichen Mapping -Mesh überschneiden, damit der Benutzer entscheiden kann, wo ein Hologram platziert werden soll.For example, on HoloLens, an application can intersect the user's gaze ray with the spatial mapping mesh to let the user decide where to place a hologram. Wenn der Benutzer tippt, um dieses – Hologramm zu platzieren, erstellen Sie am schnittspunkt einen räumlichen Anker, und platzieren Sie dann das – Hologramm am Ursprung des Koordinatensystems dieses Ankers.When the user taps to place that hologram, create a spatial anchor at the intersection point, and then place the hologram at the origin of that anchor's coordinate system.

Lokale räumliche Anker sind einfach und leistungsfähig zum Erstellen.Local spatial anchors are easy and performant to create. Das System kombiniert interne Daten, wenn mehrere Anker ihre zugrunde liegenden Sensordaten gemeinsam nutzen können.The system combines internal data if multiple anchors can share their underlying sensor data. Wir empfehlen die Erstellung eines neuen lokalen räumlichen Ankers für jedes – Hologramm, das ein Benutzer explizit platziert, außer in den unten beschriebenen Fällen, wie z. b. bei festen Gruppen von holograms.We recommend creating a new local spatial anchor for each hologram that a user explicitly places, except in cases outlined below, such as rigid groups of holograms.

Verankerte Hologramme immer innerhalb von 3 Metern von ihrem Anker rendernAlways render anchored holograms within 3 meters of their anchor

Raumanker stabilisieren ihr Koordinatensystem in der Nähe des Ankerursprungs.Spatial anchors stabilize their coordinate system near the anchor's origin. Wenn Sie Hologramme aus dem Ursprungs Bereich auf mehr als 3 Meter rendernen, treten möglicherweise spürbare Positionsfehler auf, die relativ zu ihrer Entfernung von diesem Ursprung liegen.If you render holograms more than 3 meters from the origin, the holograms might experience noticeable positional errors in proportion to their distance from that origin because of lever-arm effects. Dies funktioniert, wenn der Benutzer in der Nähe des Ankers steht, da das – Hologramm auch weit entfernt ist.This works if the user stands near the anchor, since the hologram is far away from the user, too. Anders ausgedrückt: der Angular-Fehler des entfernten holograms ist klein.In other words, the angular error of the distant hologram will be small. Wenn der Benutzer jedoch zu diesem entfernten Hologram geht, ist er in seiner Ansicht groß, sodass die Auswirkungen der Hebel-Arm aus dem Ursprung des Ursprungs Ankers offensichtlich werden.However, if the user walks up to that distant hologram, it will be large in their view, making the lever-arm effects from the faraway anchor origin obvious.

Gruppieren von Hologrammen, die einen starren Cluster bilden sollenGroup holograms that should form a rigid cluster

Mehrere holograms können denselben räumlichen Anker gemeinsam verwenden, wenn die Anwendung erwartet, dass diese Hologramme eine fixierte Beziehung untereinander aufrechterhalten.Multiple holograms can share the same spatial anchor if the application expects those holograms to maintain fixed relationships with one another.

Wenn Sie z. b. ein Holographic-Sonnensystem in einem Raum animieren, ist es besser, alle Objekte des Sonnensystems mit einem einzigen Anker in der Mitte zu verbinden.For example, if you're animating a holographic solar system in a room, it's better to tie all of the solar system objects to a single anchor in the center. Auf diese Weise werden Sie problemlos auf der Grundlage der anderen verschoben.That way, they'll move smoothly based on each other. In diesem Fall ist es das Sonnensystem als Ganzes, das verankert ist, auch wenn die Komponenten Teile sich dynamisch um den Anker bewegen.In this case, it's the solar system as a whole that is anchored, even though its component parts are moving dynamically around the anchor.

Der Schlüssel für die Beibehaltung der – Hologramm-Stabilität besteht darin, die drei Meter lange Regel zu befolgen.The key caveat to maintain hologram stability is to follow the 3-meter rule above.

Hochdynamische Hologramme mit dem stationären Bezugsrahmen anstatt mit einem lokalen Raumanker rendernRender highly dynamic holograms using the stationary frame of reference instead of a local spatial anchor

Wenn Sie über ein sehr dynamisches Hologram verfügen, z. b. ein Zeichen, das um einen Raum geht, oder eine unverankerte Benutzeroberfläche, die entlang der Wand in der Nähe des Benutzersfolgt, empfiehlt es sich, lokale räumliche Anker zu überspringen und diese Hologramme direkt im Koordinatensystem zu erzeugenIf you have a highly dynamic hologram, such as a character walking around a room or a floating UI that follows along the wall near the user, it's best to skip local spatial anchors, and render those holograms directly in the coordinate system provided by the stationary frame of reference. In Unity erreichen Sie dies, indem Sie holograms direkt in Weltkoordinaten ohne worldanchor platzieren.In Unity, you achieve this by placing holograms directly in world coordinates without a WorldAnchor. Bei holograms in einem stationären Verweis Rahmen kann es zu Abweichungen kommen, wenn der Benutzer weit vom Hologram abweicht.Holograms in a stationary frame of reference might experience drift when the user is far from the hologram. Dies ist jedoch weniger wahrscheinlich für dynamische Hologramme erkennbar: entweder wird das – Hologramm ständig ständig verschoben, oder die Bewegung hält den Benutzer ständig in der Nähe, wo Abweichungen minimiert werden.But this is less likely to be noticeable for dynamic holograms: either the hologram is constantly moving anyway or its motion constantly keeps it close to the user where drift will be minimized.

Ein interessanter Fall von dynamischen Hologrammen ist ein Objekt, das von einem verankerten Koordinatensystem zum anderen animiert wird.One interesting case of dynamic holograms is an object that is animating from one anchored coordinate system to another. Beispielsweise können Sie über zwei Burgen verfügen, die zehn Meter voneinander entfernt sind, und jeweils auf Ihrem eigenen räumlichen Anker, wobei eine Burg einen Cannonball auf der anderen Burg auslöst.For example, you might have two castles 10 meters apart, each on their own spatial anchor with one castle firing a cannonball at the other castle. Wenn der Cannonball ausgelöst wird, können Sie ihn an der entsprechenden Stelle im stationären Verweis Verweis an die Kanone im verankerten Koordinatensystem der ersten Burg Rendering.When the cannonball is fired, you can render it at the appropriate location in the stationary frame of reference to coincide with the cannon in the first castle's anchored coordinate system. Im stationären Bezugsrahmen kann sie dann ihrer Flugbahn folgen, wenn sie 10 Meter durch die Luft fliegt.It can then follow its trajectory in the stationary frame of reference as it flies 10 meters through the air. Wenn der Cannonball das andere Schloss erreicht, können Sie ihn in das verankerte Koordinatensystem der zweiten Burg verschieben, um die Physik Berechnungen mit den starren Texten dieser Burg zuzulassen.As the cannonball reaches the other castle, you can move it into the second castle's anchored coordinate system to allow for physics calculations with that castle's rigid bodies.

Wenn Sie ein äußerst dynamisches Hologramm für Geräte freigeben, wählen Sie einen räumlichen Anker in der Cloud aus, der als übergeordnetes Element fungiert, da die Rahmen der Referenz nicht auf allen Geräten freigegeben werden können.If you're sharing a highly dynamic hologram across devices, pick some cloud spatial anchor to act as their parent because stationary frames of reference cannot be shared across devices. Sie sollten jedoch sicherstellen, dass entweder das dynamische – Hologramm oder die Geräte, die Sie anzeigen, im 3-Meter-Radius des Ankers bleiben, sodass das – Hologramm auf allen Geräten stabil erscheint.However, you should ensure either the dynamic hologram or the devices viewing it stay within the anchor's 3-meter radius so the hologram appears stable on all devices.

Vermeiden der Erstellung eines Rasters von RaumankernAvoid creating a grid of spatial anchors

Möglicherweise ist es verlockend, dass Ihre Anwendung ein reguläres Raster räumlicher Anker ablegen soll, während der Benutzer durchläuft, um dynamische Objekte vom Anker zum Anker zu bewegen, während Sie sich bewegen.You may be tempted to have your application drop a regular grid of spatial anchors as the user walks around, transitioning dynamic objects from anchor to anchor as they move around. Dies umfasst jedoch mehr Verwaltung für Ihre Anwendung, ohne dass die Tiefensensor Daten, die das System selbst intern verwaltet, genutzt werden.However, this involves more management for your application, without the benefit of the deep sensor data that the system itself maintains internally. In diesen Fällen erzielen Sie bessere Ergebnisse, indem Sie Ihre Hologramme im stationären Frame des Verweises platzieren, wie im obigen Abschnitt beschrieben.For these cases, you'll achieve better results by placing your holograms in the stationary frame of reference as described in the section above. Wenn Sie einen Satz von cloudbasierten Ankern in einem statischen Raum vorpositionieren, erwägen Sie, die räumlichen Anker an den Standorten der wichtigen Hologramme zu platzieren, über die der Benutzer gemäß dem oben genannten Prinzip verfügt, anstatt ein beliebiges Raster von Ankern zu erstellen.When you're pre-positioning a set of cloud spatial anchors around a static space, consider placing the spatial anchors at the locations of the key holograms the user comes across per the principle above rather than creating an arbitrary grid of anchors. Dadurch wird sichergestellt, dass Sie die maximale Stabilität für diese Schlüsselhologramme erhalten.This ensures that you'll get maximum stability for those key holograms.

Freigeben lokaler Raumanker, die nicht länger benötigt werdenRelease local spatial anchors you no longer need

Obwohl ein lokaler räumlicher Anker aktiv ist, priorisiert das System die Beibehaltung der Sensordaten, die sich in der Nähe des Ankers befinden.While a local spatial anchor is active, the system prioritizes keeping the sensor data that is near that anchor. Wenn Sie keinen räumlichen Anker mehr verwenden, können Sie nicht mehr auf das Koordinatensystem zugreifen.If you're no longer using a spatial anchor, stop accessing its coordinate system. Dadurch können die zugrunde liegenden Sensordaten bei Bedarf entfernt werden.This allows its underlying sensor data to be removed as necessary.

Dies ist besonders wichtig für lokale Anker, die Sie im räumlichen Anker Speicher beibehalten haben.This is especially important for local anchors you've persisted to the spatial anchor store. Die Sensordaten hinter diesen ankern werden permanent aufbewahrt, damit Ihre Anwendung diesen Anker in zukünftigen Sitzungen finden kann, wodurch der zum Nachverfolgen anderer Anker verfügbare Speicherplatz reduziert wird.The sensor data behind these anchors will be kept around permanently to allow your application to find that anchor in future sessions, which reduces the space available to track other anchors. Speichern Sie nur lokale Anker, die Sie in zukünftigen Sitzungen erneut finden müssen.Only persist local anchors that you need to find again in future sessions. Wir empfehlen, Sie aus dem Speicher zu entfernen, wenn Sie für den Benutzer nicht mehr sinnvoll sind.We recommend removing them from the store when they're no longer meaningful to the user.

Bei Cloudraumankern kann Ihr Speicher entsprechend den Anforderungen Ihres Szenarios skaliert werden.For cloud spatial anchors, your storage can scale as your scenario requires. Sie können beliebig viele cloudananker speichern und freigeben, wenn Sie wissen, dass die Benutzer den Anker nicht mehr benötigen.You can store as many cloud anchors as you need, releasing them when you know that your users won't need the anchor again.

Siehe auchSee also