Ancres spatialesSpatial anchors

Une ancre spatiale représente un point important dans le monde où le système effectue le suivi au fil du temps.A spatial anchor represents an important point in the world that the system tracks over time. Chaque ancre a un système de coordonnéesréglable, basé sur d’autres ancres ou images de référence, pour garantir que les hologrammes ancrés restent précisément en place.Each anchor has an adjustable coordinate system, based on other anchors or frames of reference, to ensure anchored holograms stay precisely in place. Le rendu d’un hologramme dans le système de coordonnées d’un ancrage vous donne le positionnement le plus précis de cet hologramme à un moment donné.Rendering a hologram in an anchor's coordinate system gives you the most precise positioning for that hologram at any given time. Il s’agit du coût des petits ajustements au fil du temps jusqu’à la position de l’hologramme, car le système le replace continuellement en place en fonction du monde réel.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.

Vous pouvez également conserver et partager des ancres spatiales entre les sessions d’application et entre les appareils :You can also persist and share spatial anchors across application sessions and across devices:

  • En enregistrant les ancres spatiales locales sur le disque et en les chargeant ultérieurement, votre application peut calculer le même emplacement dans le monde réel sur plusieurs sessions d’application sur une même HoloLens.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.
  • En utilisant des ancres spatiales Azure pour créer une ancre Cloud, votre application peut partager une ancre spatiale sur plusieurs appareils HoloLens, iOS et Android.By using Azure Spatial Anchors to create a cloud anchor, your application can share a spatial anchor across multiple HoloLens, iOS, and Android devices. Si chaque appareil effectue le rendu d’un hologramme à l’aide de la même ancre spatiale, les utilisateurs voient l’hologramme apparaître au même endroit dans le monde réel.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. Cette technique autorise les expériences partagées en temps réel.This allows for real-time shared experiences.
  • Vous pouvez également utiliser des ancres spatiales Azure pour la persistance des hologrammes asynchrones sur les appareils HoloLens, iOS et Android.You can also use Azure Spatial Anchors for asynchronous hologram persistence across HoloLens, iOS, and Android devices. En partageant une ancre spatiale Cloud durable, plusieurs appareils peuvent observer le même hologramme persistant dans le temps, même si ces appareils ne sont pas présents simultanément.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.

Pour les expériences à échelle permanente ou à l’échelle de l’espace pour les casques de bureau attachés qui restent dans un diamètre de 5 mètres, vous pouvez généralement utiliser le cadre de la phase de référence au lieu des ancres spatiales, ce qui vous permet de restituer tout le contenu.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. Toutefois, si votre application permet aux utilisateurs d’aller au-delà de 5 mètres dans HoloLens, peut-être en fonctionnement tout au long d’un étage d’un bâtiment, vous aurez besoin d’ancres spatiales pour garantir la stabilité du contenu.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.

Bien que les ancres spatiales soient idéales pour les hologrammes qui doivent rester fixes dans le monde, une fois placée, une ancre ne peut pas être déplacée.While spatial anchors are great for holograms that should remain fixed in the world, once an anchor is placed, it can't be moved. Il existe des alternatives aux ancres qui sont plus appropriées pour les hologrammes dynamiques qui balisent avec l’utilisateur.There are alternatives to anchors that are more appropriate for dynamic holograms that tag along with the user. Il est préférable de positionner des hologrammes dynamiques à l’aide d’un cadre stationnaire de référence (la Fondation pour les coordonnées universelles de Unity) ou d’un cadre de référence attaché.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.

Meilleures pratiquesBest practices

Les recommandations ci-après sur les ancres spatiales vous aident à afficher des hologrammes stables qui suivent avec précision le monde réel.These spatial anchor guidelines will help you render stable holograms that accurately track the real world.

Créer les ancres spatiales là où les utilisateurs les placentCreate spatial anchors where users place them

En règle générale, les utilisateurs sont ceux qui placent explicitement des ancres spatiales.Typically, users are the ones explicitly placing spatial anchors.

Par exemple, sur HoloLens, une application peut croiser le point de regard de l’utilisateur avec le maillage de mappage spatial pour permettre à l’utilisateur de décider où placer un hologramme.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. Quand l’utilisateur appuie sur pour placer cet hologramme, créez une ancre spatiale au point d’intersection, puis placez l’hologramme à l’origine du système de coordonnées de cette ancre.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.

Les ancres spatiales locales sont faciles à créer.Local spatial anchors are easy and performant to create. Le système combine les données internes si plusieurs ancres peuvent partager leurs données de capteur sous-jacentes.The system combines internal data if multiple anchors can share their underlying sensor data. Nous vous recommandons de créer une ancre spatiale locale pour chaque hologramme qu’un utilisateur place explicitement, sauf dans les cas présentés ci-dessous, tels que des groupes rigides d’hologrammes.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.

Toujours afficher les hologrammes ancrés à une distance maximale de 3 mètres de leur ancreAlways render anchored holograms within 3 meters of their anchor

Les ancres spatiales stabilisent leur système de coordonnées près de leur origine.Spatial anchors stabilize their coordinate system near the anchor's origin. Si vous affichez des hologrammes de plus de 3 mètres à partir de l’origine, les hologrammes peuvent rencontrer des erreurs de position perceptibles proportionnelles à leur distance par rapport à cette origine en raison des effets de levier-ARM.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. Cela fonctionne si l’utilisateur est proche de l’ancre, car l’hologramme est également éloigné de l’utilisateur.This works if the user stands near the anchor, since the hologram is far away from the user, too. En d’autres termes, l’erreur angulaire de l’hologramme distant est faible.In other words, the angular error of the distant hologram will be small. Toutefois, si l’utilisateur parcourt l’hologramme distant, celui-ci est volumineux dans sa vue, ce qui rend les effets de levier-bras de l’origine de l’ancrage lointain évident.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.

Regrouper les hologrammes qui doivent former un cluster rigideGroup holograms that should form a rigid cluster

Plusieurs hologrammes peuvent partager la même ancre spatiale si l’application s’attend à ce que ces hologrammes maintiennent les relations fixes les unes avec les autres.Multiple holograms can share the same spatial anchor if the application expects those holograms to maintain fixed relationships with one another.

Par exemple, si vous animez un système solaire holographique dans une pièce, il est préférable de lier tous les objets du système solaire à une seule ancre au centre.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. De cette façon, elles se déplaceront en douceur les unes sur les autres.That way, they'll move smoothly based on each other. Dans ce cas, il s’agit du système solaire dans son ensemble qui est ancré, même si ses composants sont déplacés de manière dynamique autour de l’ancre.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.

La principale restriction pour maintenir la stabilité des hologrammes consiste à suivre la règle de 3 mètres ci-dessus.The key caveat to maintain hologram stability is to follow the 3-meter rule above.

Afficher les hologrammes hautement dynamiques à l’aide du cadre de référence stationnaire au lieu d’une ancre spatiale localeRender highly dynamic holograms using the stationary frame of reference instead of a local spatial anchor

Si vous avez un hologramme très dynamique, tel qu’un personnage qui se trouve autour d’une pièce ou d’une interface utilisateur flottante qui suit le long du mur près de l’utilisateur, il est préférable d’ignorer les ancres spatiales locales et de rendre ces hologrammes directement dans le système de coordonnées fourni par le cadre de référence stationnaire.If 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. Dans Unity, vous obtenez cela en plaçant des hologrammes directement en coordonnées universelles sans WorldAnchor.In Unity, you achieve this by placing holograms directly in world coordinates without a WorldAnchor. Les hologrammes dans un cadre stationnaire peuvent être dérives lorsque l’utilisateur est éloigné de l’hologramme.Holograms in a stationary frame of reference might experience drift when the user is far from the hologram. Toutefois, cela est moins susceptible d’être perceptible pour les hologrammes dynamiques : l’hologramme se déplace constamment tout de même ou son mouvement le maintient constamment à proximité de l’utilisateur, où la dérive est réduite.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.

Un cas intéressant d’hologrammes dynamiques est un objet qui s’anime d’un système de coordonnées ancré à un autre.One interesting case of dynamic holograms is an object that is animating from one anchored coordinate system to another. Par exemple, vous pouvez avoir deux mètres de 10 Castles séparés, chacun sur leur propre ancrage spatial avec un Castle déclenchant un Cannonball à l’autre Castle.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. Lorsque le Cannonball est activé, vous pouvez le rendre à l’emplacement approprié dans le cadre stationnaire de référence pour coïncider avec le Canon dans le système de coordonnées d’ancrage du premier Castle.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. Il peut ensuite suivre sa trajectoire dans le cadre stationnaire de référence quand il parcourt 10 mètres dans l’air.It can then follow its trajectory in the stationary frame of reference as it flies 10 meters through the air. À mesure que le Cannonball atteint l’autre Castle, vous pouvez le déplacer dans le second système de coordonnées d’ancrage Castle pour permettre les calculs physiques avec les corps rigides de ce Castle.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.

Si vous partagez un hologramme hautement dynamique sur plusieurs appareils, choisissez une ancre spatiale Cloud qui joue le rôle de parent, car les images fixes de référence ne peuvent pas être partagées entre les appareils.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. Toutefois, vous devez vous assurer que l’hologramme dynamique ou les appareils qui l’affichent restent dans le rayon de 3 mètres de l’ancre, de sorte que l’hologramme semble stable sur tous les appareils.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.

Éviter de créer une grille d’ancres spatialesAvoid creating a grid of spatial anchors

Vous pouvez être tenté de faire en sorte que votre application supprime une grille normale d’ancres spatiales à mesure que l’utilisateur se déplace, en transférant les objets dynamiques depuis l’ancrage jusqu’au point d’ancrage.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. Toutefois, cela implique davantage de gestion pour votre application, sans l’avantage des données de capteur profondes que le système lui-même gère en interne.However, this involves more management for your application, without the benefit of the deep sensor data that the system itself maintains internally. Dans ce cas, vous obtiendrez de meilleurs résultats en plaçant vos hologrammes dans le cadre stationnaire de référence, comme décrit dans la section ci-dessus.For these cases, you'll achieve better results by placing your holograms in the stationary frame of reference as described in the section above. Lorsque vous prépositionnez un ensemble d’ancres spatiales Cloud autour d’un espace statique, envisagez de placer les ancres spatiales aux emplacements des hologrammes de clé que l’utilisateur passe en fonction de la règle ci-dessus, au lieu de créer une grille arbitraire d’ancres.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. Ainsi, vous obtenez une stabilité maximale pour ces hologrammes clés.This ensures that you'll get maximum stability for those key holograms.

Libérer les ancres spatiales locales dont vous n’avez plus besoinRelease local spatial anchors you no longer need

Lorsqu’une ancre spatiale locale est active, le système établit une priorité pour conserver les données de capteur qui se trouvent à proximité de cette ancre.While a local spatial anchor is active, the system prioritizes keeping the sensor data that is near that anchor. Si vous n’utilisez plus d’ancre spatiale, arrêtez l’accès à son système de coordonnées.If you're no longer using a spatial anchor, stop accessing its coordinate system. Cela permet de supprimer les données de capteur sous-jacentes si nécessaire.This allows its underlying sensor data to be removed as necessary.

Cela est particulièrement important pour les ancres locales que vous avez conservées dans le magasin d’ancrage spatial.This is especially important for local anchors you've persisted to the spatial anchor store. Les données de capteur sous-jacentes sont conservées de manière permanente pour permettre à votre application de trouver cette ancre dans les sessions ultérieures, ce qui réduit l’espace disponible pour effectuer le suivi d’autres points d’ancrage.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. Conservez uniquement les ancres locales dont vous avez besoin pour retrouver les futures sessions.Only persist local anchors that you need to find again in future sessions. Nous vous recommandons de les supprimer du magasin lorsqu’ils ne sont plus significatifs pour l’utilisateur.We recommend removing them from the store when they're no longer meaningful to the user.

Pour les ancres spatiales cloud, votre stockage peut évoluer en fonction de votre scénario.For cloud spatial anchors, your storage can scale as your scenario requires. Vous pouvez stocker autant d’ancres Cloud que vous le souhaitez, les libérant quand vous savez que vos utilisateurs n’ont pas besoin de l’ancre.You can store as many cloud anchors as you need, releasing them when you know that your users won't need the anchor again.

Voir aussiSee also