Table of Contents

EasyAR Unity extension pour casques

Ce document présente le concept de l'extension EasyAR Unity pour casques, ses limites fonctionnelles et les connaissances préalables nécessaires à la création d'une extension pour casque.

Avant de commencer

Qu'est-ce que le package d'extension EasyAR Unity pour casque

Le package d'extension EasyAR Unity pour casque est un package Unity contenant une série de codes et d'exemples pour vous aider à utiliser les fonctionnalités d'EasyAR Sense sur votre appareil de type casque. Grâce à ce package d'extension, vous pouvez intégrer la plupart des fonctionnalités d'EasyAR Sense (comme le suivi d'images, la carte spatiale dense, etc.) sur votre appareil, exploitant ainsi les puissantes capacités AR fournies par EasyAR.

Utiliser le package d'extension EasyAR Unity pour casque est l'une des méthodes prises en charge par EasyAR pour les casques. Le diagramme ci-dessous illustre l'architecture globale d'EasyAR dans Unity et la place du package d'extension pour casque au sein de celle-ci.

block
  columns 4
  block:groupApp:4
    block:groupAppWrapper
      space
      App1["EasyAR + Device A<br>App"]
      space
      App2["EasyAR<br>App"]
      space
      App3["EasyAR + Device B<br>App"]
    end
  end
  
  block:groupSensePluginExtension
    columns 1
    SensePluginExtension["EasyAR Sense Unity Plugin<br>Extension for Device A"]
    space
  end
  block:groupSensePlugin
    columns 1
    SensePlugin["EasyAR Sense Unity Plugin"]
    space
  end
  block:groupXRI
    columns 1
    XRI["XR Interaction Toolkit"]
    space
  end
  block:groupARF
    columns 1
    ARF["AR Foundation"]
    space
  end
  
  block:groupDeviceAUnity
    columns 1
    DeviceAUnity["Device A<br>Unity SDK"]
    space
  end
  block:groupSense
    columns 1
    Sense["EasyAR Sense"]
    block:groupSenseWrapper
      MDeviceB["Device B<br>CameraDevice"]
      Others["..."]
    end
  end
  block:groupXRSubsystem:2
    columns 1
    XRSubsystem["XR Subsystems"]
    XRSDK["Unity XR SDK"]
  end

  block:groupSystem:4
    columns 1
    System["Native Library"]
    block:groupSystemWrapper
      space
      DeviceA["Device A<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      space
      space
      DeviceB["Device B<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      space
    end
  end
  
  SensePluginExtension --> App1
  SensePlugin --> App1
  SensePlugin --> App2
  SensePlugin --> App3
  ARF --> App3
  XRI --> App1
  XRI --> App3
  groupSense --> SensePlugin
  groupDeviceAUnity --> SensePluginExtension
  SensePlugin --> SensePluginExtension
  DeviceA --> groupDeviceAUnity
  DeviceA --> XRSDK
  XRSubsystem --> ARF
  XRSubsystem --> XRI
  DeviceB --> MDeviceB
  DeviceB --> XRSDK
  
  style groupApp fill:none,stroke:none,stroke-width:0px
  style groupAppWrapper fill:none,stroke:none,stroke-width:0px
  style groupSensePlugin fill:none,stroke:none,stroke-width:0px
  style groupARF fill:none,stroke:none,stroke-width:0px
  style groupXRI fill:none,stroke:none,stroke-width:0px
  style DeviceAUnity fill:none,stroke:none,stroke-width:0px
  style Sense fill:none,stroke:none,stroke-width:0px,color
  style groupSenseWrapper fill:none,stroke:none,stroke-width:0px
  style XRSubsystem fill:none,stroke:none,stroke-width:0px
  style System fill:none,stroke:none,stroke-width:0px
  style groupSystemWrapper fill:none,stroke:none,stroke-width:0px
  style groupSensePluginExtension fill:none,stroke:none,stroke-width:0px  

  classDef EasyAR fill:#6e6ce6,stroke:#333,color:#fff
  class SensePluginExtension EasyAR

Le diagramme présente deux méthodes typiques de prise en charge des casques : la connexion via le SDK de l'appareil via le package d'extension Unity pour casque (Device A), et la connexion directe au SDK de l'appareil dans la bibliothèque EasyAR Sense (Device B). Ce document se concentre principalement sur la première méthode.

Puis-je créer mon propre pack d'extension pour casque ?

Actuellement, l'industrie AR/VR/MR/XR n'a pas encore établi de solution d'interface très standardisée. Bien qu'OpenXR soit un bon candidat, l'évolution de ses spécifications et leur implémentation par l'industrie nécessitent encore du temps. Par conséquent, il n'est généralement pas si simple d'exécuter EasyAR directement sur des appareils commerciaux, et il existe une forte probabilité que des interfaces de données manquent. Avec l'évolution du secteur, certains nouveaux appareils pourraient offrir un bon support d'interface, comme en 2024 lorsque Apple a ouvert les interfaces liées au Vision Pro. Ces interfaces sont suffisantes pour permettre l'exécution d'EasyAR, mais leur utilisation nécessite tout de même certaines connaissances spécialisées.

Si vous ne parvenez pas à déterminer cela, nous vous recommandons de contacter le fabricant du matériel ou le service commercial d'EasyAR pour obtenir le support approprié pour l'appareil.

Si vous êtes un fabricant de matériel et que vous souhaitez prendre en charge les fonctionnalités d'EasyAR sur votre appareil, vous pouvez vous référer à la documentation suivante pour créer un pack d'extension pour casque. Cela permettra à la plupart des fonctionnalités d'EasyAR de fonctionner sur votre appareil. Ce document fournit des spécifications de données et d'interfaces sans imposer tous les détails d'implémentation. Toute méthode d'implémentation ou définition d'interface peut être discutée ; n'hésitez pas à nous contacter via les canaux commerciaux pour en parler.

Le matériel couvert par ce document doit posséder sa propre capacité de suivi de mouvement ou de SLAM. Les fonctionnalités d'EasyAR nécessitent de s'appuyer sur une bonne capacité de suivi de l'appareil. Il n'est généralement pas recommandé de compenser les limitations du suivi de l'appareil par les fonctionnalités d'EasyAR, car cela créerait une dépendance circulaire, amplifiant théoriquement les erreurs et rendant le système global instable. Si l'appareil lui-même n'a pas de capacité de suivi de mouvement, alors le plan de support n'est pas couvert par ce document. Si nécessaire, contactez-nous via les canaux commerciaux pour en discuter.

Capacités limites du module d'extension pour casque

L'objectif du module d'extension pour casque est de permettre à la plupart des fonctionnalités d'EasyAR Sense de fonctionner sur votre appareil. Pour atteindre cet objectif, vous devez comprendre les capacités limites du module d'extension pour casque.

Contenu du package d'extension de casque

Vous implémenterez l'extension suivante :

  • Du code utilisant la fonctionnalité de caméra personnalisée pour récupérer les données de l'API de votre appareil et les envoyer dans EasyAR Sense.
  • Dans Unity, l'extension de casque utilise une source de données d'image externe et un flux de données EasyAR Sense défini par le Plugin Unity EasyAR Sense pour simplifier le développement de caméras personnalisées.
  • Dans Unity, l'extension de casque est un package Unity contenant des scripts runtime, des scripts éditeur et un exemple d'extension. Vous ou EasyAR pouvez le distribuer aux utilisateurs finaux.
Astuce

Si vous ne souhaitez pas exposer les détails d'intégration à des systèmes externes, contactez EasyAR pour discuter. Une intégration directe via l'interface C dans EasyAR Sense est possible et a des précédents.

Lors de l'implémentation de l'extension, vous pourriez :

  • Modifier la conception de l'interface et l'implémentation interne de votre SDK.
  • Discuter et valider avec votre équipe les solutions d'acquisition et d'utilisation des données.
  • Passer beaucoup de temps à valider l'exactitude des données plutôt qu'à écrire du code.

Une fois l'extension terminée, vous constaterez :

  • La plupart des fonctionnalités d'EasyAR Sense sont utilisables sur votre appareil, exploitant ses capacités de suivi de mouvement.
  • Les services cloud EasyAR pris en charge dans EasyAR Sense sont utilisables sur votre appareil.
  • Seule la licence EasyAR XR est utilisable. Les licences Personal, Professional et Classic ne fonctionneront pas sur votre appareil.
  • Toutes les restrictions des licences EasyAR lors de l'utilisation d'une caméra personnalisée s'appliquent de la même manière à votre appareil.

Ce que l'extension pour casque ne comprend pas

Cette extension ne peut pas fonctionner sans EasyAR Sense :

  • Cette extension pour casque ne fonctionne pas seule ; en tant que dépendance, EasyAR Sense est également requis. Dans Unity, vous devez utiliser EasyAR Sense Unity Plugin.
  • Elle n'appelle pas directement les API des services cloud EasyAR (comme le service de localisation EasyAR Mega), ces appels sont effectués en interne par EasyAR Sense.
  • Dans Unity, elle n'appelle pas directement les méthodes d'interface des fonctionnalités AR (comme le suivi d'image), celles-ci sont gérées en interne par EasyAR Sense Unity Plugin.
  • Dans Unity, elle ne modifie pas le transform des objets de la scène ou des cibles de suivi, ceux-ci sont gérés en interne par EasyAR Sense Unity Plugin.

Cette extension ne peut pas fonctionner sans le SDK de votre appareil :

  • Dans Unity, ni l'extension pour casque ni EasyAR Sense Unity Plugin ne modifient le transform de la caméra de la scène ; cela doit être effectué dans le SDK de votre appareil ou dans sa chaîne de dépendances.

Certaines fonctionnalités EasyAR restent indisponibles via l'extension pour casque :

  • La fonctionnalité de suivi de surface ne pourra pas être utilisée.
  • Le suivi de mouvement natif d'EasyAR ne pourra pas être utilisé.
  • La détection de plan (partie du suivi de mouvement EasyAR) ne pourra pas être utilisée.

Comment utiliser Mega sur mon appareil ?

L'exécution de Mega sur l'appareil est une préoccupation pour de nombreux utilisateurs. Dans Unity, le service Mega est un module fonctionnel s'exécutant au-dessus de nombreuses fonctions de base d'EasyAR Sense. Par conséquent, tant que votre appareil prend entièrement en charge EasyAR Sense, Mega sera également pris en charge.

Généralement, il n'est pas recommandé de commencer par exécuter directement l'exemple Mega sur l'appareil pour vérifier sa compatibilité. En effet, Mega utilise de manière exhaustive toutes les données d'entrée et tolère relativement bien leurs erreurs. Exécuter directement l'exemple Mega peut souvent conduire à des résultats peu satisfaisants en raison d'une inadéquation des interfaces de données ou d'une qualité médiocre des données. Cela rend difficile d'identifier la source du problème, compliquant considérablement le débogage futur.

Important

Le service Mega exige un certain niveau de capacité de suivi de mouvement de l'appareil. Si cette capacité est insuffisante, les performances de Mega en pâtiront. Dans les scénarios AR à grande échelle, il faut prêter une attention particulière aux différences de comportement entre intérieur et extérieur.

Important

Mega sert généralement des scènes à grand espace. Il est donc crucial de surveiller l'effet d'affichage des objets distants, ainsi que lors des rotations de la tête ou des déplacements. Si le système d'affichage de l'appareil présente des erreurs importantes, même si Mega fonctionne correctement, l'utilisateur aura l'impression que les objets virtuels ne s'alignent pas correctement avec les objets réels.

Connaissances préalables requises et configuration d'équipe

Créer un package d'extension pour casque n'est pas une tâche simple. Cela nécessite un travail approfondi de votre part et de votre équipe dans plusieurs domaines. En règle générale, pour réaliser une extension pour casque, il faut impliquer non seulement des développeurs Unity, mais aussi d'autres membres de l'équipe en dehors du développement Unity. En raison du manque de standards, la simple modification sur un moteur 3D ne suffit généralement pas à réaliser l'extension pour casque. Il est recommandé d'impliquer dès le premier jour des ingénieurs en développement bas niveau tels que des ingénieurs systèmes et des ingénieurs SDK.

Développer un appareil AR/VR nécessite des connaissances dans des domaines spécifiques. De même, l'exécution et la validation d'EasyAR Sense sur l'appareil nécessiteront que vous ou votre équipe soyez experts dans les domaines suivants :

  • La structure physique et le système de rendu de votre appareil
  • La géométrie du système de caméra
  • Le développement SDK
  • Des compétences classiques de débogage Android, comme adb (Chine continentale, International)

Si vous travaillez sur Unity, vous devrez également connaître :

De plus, une connaissance dans ces domaines vous aidera à mieux comprendre le système, en particulier comment envoyer les données correctes à EasyAR :

Prochaines étapes

Dans les articles suivants, vous découvrirez le processus complet de création d'un package d'extension pour casque de réalité virtuelle :

Sujets connexes