Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La compréhension des scènes renvoie une représentation sémantique des entités de scène ainsi que de leurs formes géométriques sur HoloLens 2 (HoloLens 1ère génération n’est pas pris en charge).
Voici quelques cas d’usage attendus de cette technologie :
- Placer des objets sur la surface la plus proche d’un certain type (par exemple, mur et sol)
- Construire un maillage de navigation pour les jeux de style de plateforme
- Fournir une géométrie conviviale du moteur physique sous forme de quads
- Accélérer le développement en évitant d’avoir à écrire des algorithmes similaires
Scene Understanding est introduit en tant que fonctionnalité expérimentale dans MRTK 2.6. Il est intégré à MRTK en tant qu’observateur spatial appelé WindowsSceneUnderstandingObserver. Scene Understanding fonctionne à la fois avec le pipeline XR hérité et le pipeline sdk XR (OpenXR (à partir de MRTK 2.7) et plug-in Windows XR). Dans les deux cas, le WindowsSceneUnderstandingObserver est utilisé.
Remarque
L’utilisation de La compréhension de scène dans la communication à distance est uniquement prise en charge dans MRTK 2.7.3 et versions ultérieures. Seuls les projets utilisant OpenXR sont pris en charge. Les projets utilisant le pipeline XR hérité ou le plug-in XR Windows ne sont pas pris en charge.
Vue d’ensemble de l’observateur
Lorsque vous y êtes invité, le WindowsSceneUnderstandingObserver renvoie SpatialAwarenessSceneObject avec des attributs utiles pour que l’application comprenne son environnement. La fréquence d’observation, le type d’objet retourné (par exemple, mur, plancher) et les autres comportements de l’observateur dépendent de la configuration de l’observateur via le profil. Par instance, si le masque d’occlusion est souhaité, l’observateur doit être configuré pour générer des quads. La scène observée peut être enregistrée en tant que fichier sérialisé qui peut être chargé ultérieurement pour recréer la scène en mode lecture de l’éditeur.
Installation
Importante
Scene Understanding est pris en charge uniquement sur HoloLens 2 et Unity 2019.4 et versions ultérieures.
- Vérifiez que la plateforme est définie sur UWP dans les paramètres de build.
- Acquérir le package Scene Understanding via Mixed Reality Feature Tool.
Utilisation de La compréhension des scènes
Le moyen le plus rapide de commencer à utiliser La compréhension de la scène consiste à case activée l’exemple de scène.
Exemple de scène De compréhension de la scène
Dans Unity, utilisez le Explorer Project pour ouvrir le fichier de scène dans Examples/Experimental/SceneUnderstanding/Scenes/SceneUnderstandingExample.unity et appuyez sur Lecture !
Importante
S’applique uniquement à MRTK 2.6.0 : lorsque vous utilisez l’outil de fonctionnalité Mixed Reality ou que vous effectuez une importation via UPM, importez l’exemple Demos - SpatialAwareness avant d’importer l’exemple Experimental - SceneUnderstanding en raison d’un problème de dépendance. Pour plus d’informations, consultez ce problème GitHub .
La scène illustre les éléments suivants :
- Visualisation des objets de scène observés avec dans l’interface utilisateur de l’application pour la configuration de l’observateur
- Exemple de
DemoSceneUnderstandingControllerscript qui montre comment modifier les paramètres de l’observateur et écouter les événements pertinents - Enregistrement des données de scène sur l’appareil pour le développement hors connexion
- Chargement des données de scène précédemment enregistrées (fichiers .bytes) pour prendre en charge le workflow de développement dans l’éditeur
Importante
Par défaut, la ShouldLoadFromFile propriété de l’observateur est définie sur false. Pour voir la visualisation d’un exemple de salle sérialisée, reportez-vous à la section configuration du service observateur ci-dessous et définissez la propriété sur true dans l’éditeur.
Remarque
L’exemple de scène est basé sur le pipeline XR hérité. Si vous utilisez le pipeline du Kit de développement logiciel (SDK) XR, vous devez modifier les profils en conséquence. Le profil Scene Understanding Spatial Awareness System fourni (DemoSceneUnderstandingSystemProfile) et les profils Scene Understanding Observer (DefaultSceneUnderstandingObserverProfile et DemoSceneUnderstandingObserverProfile) fonctionnent pour les deux pipelines.
Remarque
L’exemple de scène enregistre un There is no active AsyncCoroutineRunner when an action is posted. avertissement dans certaines circonstances en raison de l’ordre d’initialisation/d’exécution du thread. Si vous pouvez confirmer que le AsyncCoroutineRunner composant est attaché au GameObject « Demo Controller » et que le composant/GameObject reste activé/actif dans la scène (cas par défaut), l’avertissement peut être ignoré en toute sécurité.
Toutefois, lors de la création d’une scène avec Scene Understanding, veillez à créer un GameObject vide à la racine et à y attacher le AsyncCoroutineRunner script, sinon Scene Understanding risque de ne pas fonctionner correctement.
Configuration du service d’observateur
Sélectionnez l’objet de jeu « MixedRealityToolkit » et case activée l’inspecteur.
Ces options permettent de configurer le WindowsSceneUnderstandingObserver.
Exemple de script
L’exemple de script DemoSceneUnderstandingController.cs illustre les principaux concepts de l’utilisation du service Scene Understanding.
- Abonnement aux événements Scene Understanding
- Gestion des événements Scene Understanding
- Configuration de au moment de l’exécution
WindowsSceneUnderstandingObserver
Les bascules du panneau de la scène modifient le comportement de l’observateur de compréhension de scène en appelant des fonctions publiques de cet exemple de script.
L’activation de l’option Instanciation prefabs illustre la création d’objets dont la taille s’adapte à tous les objets SpatialAwarenessSceneObject, soigneusement regroupés sous un objet parent.
Notes d’application générées
Générez et déployez sur HoloLens de manière standard. Une fois en cours d’exécution, un certain nombre de boutons doivent apparaître pour jouer avec les fonctionnalités.
Notez qu’il y a des problèmes lors de la création de requêtes à l’observateur. Une configuration incorrecte d’une demande d’extraction entraîne que votre charge utile d’événement ne contient pas les données attendues. Par exemple, si l’on ne demande pas de quads, aucune texture de masque d’occlusion n’est présente. Comme sage, aucun maillage de monde n’apparaît si l’observateur n’est pas configuré pour demander des maillages. Le DemoSceneUnderstandingController script prend en charge certaines de ces dépendances, mais pas toutes.
Les fichiers de scène enregistrés sont accessibles via le portail de l’appareil à l’adresse User Folders/LocalAppData/[APP_NAME]/LocalState/PREFIX_yyyyMMdd_hhmmss.bytes. Ces fichiers de scène peuvent être utilisés dans l’éditeur en les spécifiant dans le profil d’observateur trouvé dans l’inspecteur.