Table of Contents

Diagnostic et résolution : Problème de contenu non affiché dans l'application

« Je vois 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, depuis la localisation Mega elle-même jusqu'à votre logique de rendu.

Ce guide vous aidera à résoudre systématiquement ce problème.

Processus de dépannage : De l'externe vers l'interne

Suivez le principe « d'abord externe, puis interne » pour localiser efficacement le problème. Exécutez les étapes suivantes dans l'ordre :

Étape 1 : Valider l'état de la localisation Mega avec des outils externes (sans modification de code)

Avant d'examiner votre code d'application, confirmez 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 ou de l'intégration dans votre application (comme le rendu).

  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 à la fonction « Test de localisation sur site » ou similaire.
    • Connectez-vous avec votre compte et sélectionnez la même librairie de localisation que celle utilisée par votre application.
    • Emmenez le téléphone exactement à l'emplacement où le contenu ne s'affiche pas dans votre application.
    • Observez le résultat :
      • Si Toolbox se localise avec succès (état affiché Found) : Bravo ! Le service de localisation Mega fonctionne normalement. 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 (état affiché NotFound ou autre) : Le problème vient du service de localisation lui-même. Reportez-vous à la section suivante pour une analyse approfondie.
  2. Utiliser la simulation PC (si EIF a été collecté)

    • Si vous avez enregistré des données EIF pour cette scène, vous pouvez les rejouer dans l'éditeur Unity sur PC en utilisant l'outil de validation session.
    • Observez le résultat :
      • Si la localisation réussit lors de la relecture (état affiché Found) : Le problème vient de votre code d'application ou de l'environnement spécifique à l'appareil.
      • Si la localisation échoue lors de la relecture (état affiché NotFound ou autre) : Le problème vient du service de localisation lui-même. Reportez-vous à 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 normalement, 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 nœud correct ? :

    • Avez-vous correctement placé vos 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 le rendu du contenu virtuel est correctement positionné à l'exécution.
  2. Le Block Root du MegaTracker est-il correctement configuré ? :

    • Développez AR Session et vérifiez que le Block Root dans Mega Tracker pointe bien vers le 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é le nom des nœuds Block_* et de ne pas avoir changé les valeurs dans leurs propriétés local transform.
  4. L'écoute des événements est-elle correcte ? :

    • Avez-vous modifié la logique de gestion des rappels de localisation dans MegaTracker ?
    • Votre code instancie-t-il ou affiche-t-il le contenu virtuel uniquement après le déclenchement de l'événement signalant un état de localisation réussi ?
  5. Rendu du casque et transparence :

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

    • Le Prefab que vous instanciez a-t-il un problème ? Par exemple, modèle manquant, erreur de Shader, é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 vous avez constaté dans l'étape 1 que Mega Toolbox ne parvient pas non plus à se localiser, examinez et résolvez le problème de localisation. Voici les causes courantes et les solutions :

  • Cause 1 : La carte ne correspond pas à l'environnement
    L'environnement réel a considérablement changé par rapport à celui capturé lors de la cartographie, ou la zone où se produit le problème n'était pas couverte lors de la capture, ou la carte elle-même est erronée.
    Recommandations :

    • Assurez-vous que la carte chargée dans votre librairie de localisation correspond à l'espace physique actuel.
    • Si l'environnement a été modifié (rénovation, changement de disposition), recapturez et régénérez la carte.
    • Si la zone problématique n'était pas couverte lors de la capture initiale, régénérez la carte via une mise à jour complémentaire.
  • Cause 2 : Environnement d'initialisation médiocre
    Lancement de l'application dans une zone pauvre en textures (mur uni, sol).
    Recommandations :

    • Guidez les utilisateurs pour lancer 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'UI de l'application, par exemple « Levez le téléphone et regardez autour de vous ».
  • Cause 3 : Problème réseau ou de service
    La latence réseau provoque des délais d'expiration des requêtes vers le service de localisation, ou le service de localisation lui-même rencontre une panne, dépasse sa limite d'utilisation concurrente, etc. Pour ce dernier cas, contactez-nous rapidement.

  • Cause 4 : Atteinte des limites de l'algorithme
    La localisation Mega repose sur des algorithmes avancés de vision par ordinateur et d'IA, mais elle n'est pas infaillible et possède des limites. Si des échecs de localisation persistent dans certains scénarios ou emplacements, vous pouvez nous les signaler via des captures d'écran, des enregistrements de données EIF, etc., pour nous aider à améliorer et itérer continuellement l'algorithme.

De plus, il est important de noter que la localisation Mega prend du temps, généralement 1 à 2 secondes. Compte tenu de la complexité des scénarios réels (congestion réseau, forte concurrence, ralentissement dû à la chaleur du téléphone, etc.), ce délai peut être plus long. Par conséquent, concevez dans votre application une interface de chargement/attente claire, indiquant à l'utilisateur « Localisation en cours... », pour éviter qu'il ne pense que le service est hors ligne ou que la localisation est impossible.

Note
  • La première localisation est généralement plus lente que les suivantes car le système doit charger le contenu correspondant après un succès initial. C'est normal.
  • Déplacer rapidement l'appareil peut entraîner une perte de localisation. Guidez les utilisateurs à déplacer l'appareil de manière stable.

Résumé et meilleures pratiques

  • Toujours valider d'abord avec des outils externes : C'est le moyen le plus rapide de circonscrire le problème à la « localisation » ou au « rendu ».
  • Établir des attentes utilisateur raisonnables : Utilisez des invites UI pour informer l'utilisateur que la localisation prend du temps et guidez-le vers un environnement approprié.
  • Porter une attention particulière à la logique de contenu : Assurez-vous que vos paramètres, comme le liage du contenu, sont corrects.
  • Utiliser judicieusement les journaux : Afficher des journaux aux points clés (déclenchement d'événements, acquisition de la pose, état des réponses) peut vous aider à localiser rapidement les problèmes de logique dans votre code.

Grâce à ce dépannage systématique, vous devriez pouvoir résoudre la grande majorité des problèmes de « contenu non affiché ». Si le problème persiste, préparez les données EIF et les journaux, et soumettez un rapport détaillé via notre formulaire de Signalement de problème.