Table of Contents

Diagnostic et réparation : Problème d'affichage du contenu dans l'application

"Je peux voir le monde réel, mais le contenu virtuel n'apparaît pas." C'est l'un des problèmes les plus courants dans le développement AR. Ce problème peut provenir de plusieurs étapes, de la localisation Mega elle-même à votre logique de rendu.

Ce guide vous aidera à diagnostiquer et résoudre ce problème de manière systématique.

Processus de diagnostic : De l'extérieur vers l'intérieur

Suivre le principe "d'abord l'extérieur, puis l'intérieur" permet de localiser le problème efficacement. Suivez les étapes suivantes dans l'ordre :

Étape 1 : Vérifier l'état de la localisation Mega avec des outils externes (sans modifier le code)

Avant de plonger dans le code de votre application, vérifiez d'abord que le service de localisation Mega lui-même fonctionne correctement. C'est l'étape la plus cruciale, car elle vous permet de déterminer si le problème vient de la localisation Mega elle-même ou de l'intégration dans votre application (rendu, etc.).

  1. Utiliser Mega Toolbox (application mobile)

    • Installez l'application Mega Toolbox sur votre téléphone de test (si ce n'est pas déjà fait).
    • Ouvrez l'application et accédez à l'outil Vérification et diagnostic sur site.
    • Connectez-vous avec votre compte et sélectionnez la même bibliothèque de localisations que celle utilisée par votre application.
    • Amenez le téléphone à l'emplacement exact où votre application ne parvient pas à afficher le contenu.
    • Observez le résultat :
      • Si Toolbox se localise avec succès (l'état affiché est Found) : Félicitations ! Le service de localisation Mega fonctionne correctement. Le problème se situe à l'intérieur de votre application, en particulier dans la logique de rendu et d'affichage du contenu. Passez à l'étape 2.
      • Si Toolbox échoue à se localiser (l'état affiché est NotFound ou autre) : Le problème vient du service de localisation lui-même. Consultez la section suivante pour une analyse approfondie.
  2. Utiliser la simulation sur PC (si des données EIF ont été enregistrées)

    • Si vous avez enregistré des données EIF pour ce scénario, vous pouvez les rejouer sur l'éditeur Unity sur PC à l'aide de l'outil de validation de session.
    • Observez le résultat :
      • Si la localisation réussit lors du rejeu (l'état affiché est Found) : Le problème vient de votre code d'application ou de l'environnement spécifique à l'appareil.
      • Si la localisation échoue lors du rejeu (l'état affiché est NotFound ou autre) : Le problème vient du service de localisation lui-même. Consultez la section suivante pour une analyse approfondie.

Étape 2 : Vérifier la logique de rendu et de contenu à l'intérieur de l'application

Si l'étape 1 confirme que le service de localisation Mega fonctionne correctement, alors le problème se situe dans le code de votre application. Vérifiez les points suivants :

  1. Le contenu est-il placé sous le bon nœud ? :

    • Avez-vous correctement placé les objets 3D sous les nœuds MegaBlocks > Block_* générés automatiquement par l'outil ?
    • Vérifiez la hiérarchie entre le contenu et les nœuds Block pour vous assurer que la position de rendu du contenu virtuel est correcte lors de l'exécution.
  2. Le Block Root du MegaTracker est-il correctement configuré ? :

    • Développez AR Session et vérifiez si le Block Root dans Mega Tracker correspond bien au nœud MegaBlocks généré par l'outil.
  3. Le nœud MegaBlocks a-t-il été modifié ? :

    • Assurez-vous de ne pas avoir modifié les noms des nœuds Block_* et de ne pas avoir modifié les valeurs dans les propriétés local transform.
  4. L'écoute des événements est-elle correcte ? :

    • Avez-vous modifié la logique de traitement des rappels de localisation du MegaTracker ?
    • Votre code exécute-t-il l'instanciation ou l'affichage du contenu virtuel uniquement après le déclenchement de l'événement de succès de localisation ?
  5. Rendu du casque et transparence :

    • Votre objet virtuel est-il masqué par d'autres objets ? Vérifiez la file d'attente de rendu et les Shaders.
    • Si vous utilisez un appareil VST (vidéo-see-through), vérifiez que votre rendu est correctement superposé sur le flux vidéo.
    • Si vous utilisez un appareil OST (optique-see-through), vérifiez que le contenu n'est pas difficile à voir en raison d'un éclairage ambiant trop fort.
  6. Problème lié au contenu lui-même :

    • Le préfabriqué (Prefab) que vous instanciez a-t-il lui-même un problème ? Par exemple, un fichier de modèle manquant, une erreur de Shader, une échelle à 0, etc. Essayez de placer manuellement le même objet dans la scène pour voir s'il s'affiche correctement.

Analyse des causes courantes d'échec de localisation et recommandations d'amélioration

Si, lors de l'étape 1, vous constatez que Mega Toolbox ne parvient pas non plus à se localiser, il est nécessaire d'examiner et de résoudre le problème de localisation de manière approfondie. Voici les causes courantes et les contre-mesures :

  • Cause 1 : Carte et environnement non correspondants
    L'environnement sur site a considérablement changé par rapport à celui de la collecte et de la création de la carte, ou la zone d'expérience n'était pas couverte lors de la collecte, ou la carte elle-même est erronée.
    Recommandations d'amélioration :

    • Assurez-vous que la carte chargée dans votre bibliothèque de localisations correspond à l'espace physique actuel.
    • Si l'environnement a été modifié (par exemple, rénovation, changement de présentation), il est nécessaire de collecter et de générer à nouveau la carte.
    • Si la zone problématique n'était pas couverte lors de la collecte et de la création de la carte, il faut régénérer la carte via une mise à jour complémentaire.
  • Cause 2 : Environnement d'initialisation défavorable
    Lancement de l'application dans une zone pauvre en textures (par exemple, mur uni, sol).
    Recommandations d'amélioration :

    • Guidez les utilisateurs pour qu'ils lancent l'application dans des zones riches en textures, afin d'aider le système à effectuer la localisation initiale rapidement.
    • Donnez des instructions claires dans l'interface utilisateur de l'application, comme "Levez le téléphone et regardez autour de vous".
  • Cause 3 : Problème de réseau ou de service
    Des délais réseau entraînent un dépassement du délai de requête du service de localisation, ou le service de localisation lui-même rencontre un dysfonctionnement, dépasse la limite d'utilisation simultanée, etc. Pour ce dernier cas, veuillez nous en informer rapidement.

  • Cause 4 : Atteinte des limites des capacités algorithmiques
    La localisation Mega est basée sur des algorithmes avancés de vision par ordinateur, d'IA, etc., mais elle n'est pas omnipotente et possède certaines limites algorithmiques. Lorsque des échecs de localisation persistants surviennent dans certains scénarios ou points, vous pouvez nous en informer via des enregistrements d'écran, l'enregistrement de données EIF, etc., pour nous aider à améliorer et itérer continuellement les algorithmes.

De plus, il est important de noter que la localisation Mega nécessite un processus, généralement d'environ 1 à 2 secondes. Compte tenu de la complexité des scénarios réels, tels que la congestion réseau, le haut niveau de concurrence, la surchauffe et la baisse de fréquence du téléphone, ce temps peut être plus long. Par conséquent, dans l'application, vous pouvez concevoir une interface de chargement/attente claire, indiquant à l'utilisateur "Localisation en cours...", pour éviter que l'utilisateur ne pense à tort que le service est hors ligne ou que la localisation est impossible en raison de l'attente.

Note
  • La première localisation est généralement plus lente que les suivantes, car le