Table of Contents

Paquet d’extension de casque EasyAR Unity

Ce document présente le concept, les limites de capacité et les connaissances préalables nécessaires pour créer un paquet d’extension de casque EasyAR Unity.

Avant de commencer

Qu’est-ce que le paquet d’extension de casque EasyAR Unity

Le paquet d’extension de casque EasyAR Unity est un paquet Unity qui contient une série de code et d’exemples pour vous aider à utiliser les fonctions d’EasyAR Sense sur votre appareil casque. Grâce à ce paquet, vous pouvez intégrer la plupart des fonctions d’EasyAR Sense, comme le suivi d’image ou la carte spatiale dense, à votre appareil afin de tirer parti des puissantes capacités AR d’EasyAR.

Utiliser le paquet d’extension de casque EasyAR Unity est l’une des façons de prendre en charge un casque avec EasyAR. Le schéma ci-dessous montre l’architecture globale d’EasyAR dans Unity et la place du paquet d’extension de casque.

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 schéma montre deux façons typiques de prendre en charge un casque : connecter le SDK de l’appareil via le paquet d’extension Unity pour casque (Device A), ou connecter directement le SDK de l’appareil dans la bibliothèque EasyAR Sense (Device B). Ce document présente principalement la première méthode.

Puis-je créer mon propre paquet d’extension de casque ?

À l’heure actuelle, l’industrie AR/VR/MR/XR n’a pas encore convergé vers une solution d’interface très unifiée. Même si OpenXR est un très bon candidat, l’évolution de la norme et son implémentation industrielle prennent encore du temps. En pratique, il n’est donc pas si simple d’exécuter EasyAR directement sur un appareil grand public, et il manque souvent des interfaces de données. Avec l’évolution du secteur, certains appareils émergents peuvent aussi offrir une bonne prise en charge des interfaces, comme l’ouverture par Apple en 2024 des interfaces liées à Vision Pro. Ces interfaces sont déjà suffisantes pour faire fonctionner EasyAR, mais leur utilisation demande encore des connaissances spécialisées.

Si vous ne parvenez pas à trancher, il est recommandé de contacter le fabricant du matériel ou l’équipe commerciale EasyAR pour obtenir une prise en charge adaptée.

Si vous êtes fabricant de matériel et souhaitez prendre en charge les fonctions EasyAR sur votre appareil, vous pouvez vous référer aux sections suivantes pour créer un paquet d’extension de casque, afin que la plupart des fonctions EasyAR puissent fonctionner sur votre appareil. Ce document fournit les spécifications de données et d’interface, mais ne limite pas 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 le canal commercial.

Le matériel couvert par ce document doit disposer de capacités de suivi de mouvement ou de SLAM. Les fonctions EasyAR doivent s’appuyer sur une bonne capacité de suivi de l’appareil. En général, il n’est pas recommandé de compter sur les fonctions EasyAR pour améliorer le suivi de l’appareil, car cela crée une dépendance circulaire qui peut théoriquement amplifier l’erreur et déstabiliser l’ensemble du système. Si l’appareil ne dispose pas lui-même de suivi de mouvement, la solution n’entre pas dans le cadre de ce document ; vous pouvez nous contacter via le canal commercial si nécessaire.

Limites de capacité du paquet d’extension de casque

L’objectif du paquet d’extension de casque est de permettre à la plupart des fonctions d’EasyAR Sense de fonctionner sur votre appareil. Pour atteindre cet objectif, vous devez comprendre ses limites de capacité.

Ce que le paquet d’extension de casque contient

L’extension que vous implémenterez est :

  • Une série de codes qui utilisent la fonction de caméra personnalisée pour récupérer des données depuis l’API de votre appareil et les envoyer à EasyAR Sense.
  • Dans Unity, l’extension casque utilise une source de trame externe et un flux de données EasyAR Sense défini par EasyAR Sense Unity Plugin pour simplifier le développement de caméras personnalisées.
  • Dans Unity, l’extension casque est un paquet Unity contenant des scripts d’exécution, des scripts d’éditeur et des exemples d’extension, que vous ou EasyAR pouvez distribuer aux utilisateurs en aval.
Astuce

Si vous ne souhaitez pas exposer les détails d’intégration dans un système externe, vous pouvez contacter EasyAR pour en discuter. Une intégration directe via une interface C à l’intérieur d’EasyAR Sense est possible et a déjà des précédents.

Lors de l’implémentation de l’extension, vous serez peut-être amené à :

  • Modifier la conception des interfaces et l’implémentation interne de votre SDK.
  • Discuter avec votre équipe pour confirmer les solutions de récupération et d’utilisation des données.
  • Passer beaucoup de temps à vérifier la justesse des données plutôt qu’à écrire du code.

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

  • La plupart des fonctions d’EasyAR Sense peuvent fonctionner sur votre appareil et utiliser sa capacité de suivi de mouvement.
  • Les services cloud EasyAR pris en charge en interne par EasyAR Sense peuvent fonctionner sur votre appareil.
  • Seule une licence EasyAR XR peut être utilisée. Les licences personnelle, professionnelle et classique ne peuvent pas être utilisées sur votre appareil.
  • Les limitations de toutes les licences EasyAR lors de l’utilisation d’une caméra personnalisée s’appliquent à votre appareil de la même manière.

Ce que le paquet d’extension de casque ne contient pas

Cette extension ne peut pas être utilisée sans EasyAR Sense :

  • L’extension casque ne fonctionne pas seule ; EasyAR Sense est également nécessaire en dépendance. Dans Unity, il faut aussi utiliser EasyAR Sense Unity Plugin.
  • Elle n’appelle pas directement les API de services cloud EasyAR, comme le service de localisation EasyAR Mega ; ces appels sont effectués à l’intérieur d’EasyAR Sense.
  • Dans Unity, elle n’appelle pas directement les méthodes d’interface des fonctions AR, comme le suivi d’image ; elles sont gérées à l’intérieur de EasyAR Sense Unity Plugin.
  • Dans Unity, elle ne modifie pas les transforms des objets ou des targets de suivi dans la scène ; cela est effectué à l’intérieur de EasyAR Sense Unity Plugin.

Cette extension ne peut pas non plus être utilisée sans le SDK de votre appareil :

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

Certaines fonctions EasyAR ne sont toujours pas disponibles via l’extension casque :

  • Le suivi de surface ne peut pas être utilisé.
  • Le suivi de mouvement propre à EasyAR ne peut pas être utilisé.
  • La détection de plans (qui fait partie du suivi de mouvement EasyAR) ne peut pas être utilisée.

Comment utiliser Mega sur mon appareil ?

L’exécution de Mega sur un appareil est une question importante pour de nombreux utilisateurs. Dans Unity, le service Mega est un module de fonctionnalités basé sur les capacités fondamentales d’EasyAR Sense. Ainsi, tant que votre appareil prend entièrement en charge EasyAR Sense, Mega sera aussi pris en charge.

En général, il n’est pas recommandé de commencer par exécuter directement l’exemple Mega sur l’appareil pour vérifier la prise en charge, car Mega utilise de façon combinée toutes les données d’entrée et tolère relativement bien leurs erreurs. Exécuter directement l’exemple Mega risque fort de produire un résultat insuffisant à cause d’un mauvais alignement des interfaces ou d’une qualité de données insuffisante, sans qu’il soit possible de savoir où se situe le problème, ce qui compliquera énormément le débogage ultérieur.

Important

Le service Mega impose certaines exigences à la capacité de suivi de mouvement de l’appareil. Si cette capacité est faible, les performances de Mega seront elles aussi affectées. Dans les scènes AR de grande ampleur, il faut aussi surveiller particulièrement les différences de rendu entre intérieur et extérieur.

Important

Mega sert généralement à de grands espaces, donc il faut accorder une attention particulière à l’affichage des objets éloignés ainsi qu’à l’affichage lors des rotations de tête ou des déplacements. Si le système d’affichage de l’appareil présente une grande erreur, alors même si Mega fonctionne correctement, l’utilisateur aura l’impression que les objets virtuels ne s’alignent pas correctement sur les objets réels.

Connaissances préalables et organisation d’équipe

Créer un paquet d’extension de casque n’est pas une tâche simple ; cela exige un travail approfondi dans plusieurs domaines de la part de vous et de votre équipe. En général, pour mener à bien une extension de casque, il faut impliquer non seulement le développement Unity, mais aussi des membres de l’équipe en dehors du développement Unity. Comme il manque de standards, modifier uniquement le moteur 3D ne suffit généralement pas à réaliser une extension de casque. Il est recommandé d’impliquer dès le premier jour des ingénieurs systèmes et des ingénieurs SDK.

Développer un appareil AR/VR demande certaines connaissances de domaine. De même, exécuter et valider EasyAR Sense sur l’appareil exigera de vous ou de votre équipe une expertise dans les domaines suivants :

  • Structure physique et système de rendu de votre appareil
  • Géométrie des systèmes caméra
  • Développement SDK
  • Compétences habituelles de débogage Android, comme adb (Chine continentale, international)

Si vous travaillez avec Unity, vous devez aussi connaître :

Par ailleurs, certaines connaissances dans ces domaines vous aideront à mieux comprendre le système, notamment comment envoyer les bonnes données à EasyAR :

  • Développement Android (Chine continentale, international)
  • Vision géométrique, en particulier la mise en correspondance d’images et la reconstruction 3D

Étapes suivantes

Dans les articles suivants, vous découvrirez le flux complet de création d’un paquet d’extension de casque :

Sujets associés