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
- Lire Prise en charge des casques par EasyAR pour comprendre les types de casques déjà pris en charge par EasyAR et les fonctions EasyAR pouvant s’exécuter sur un casque.
- Lire Prise en charge des casques EasyAR dans Unity pour comprendre l’architecture globale de la prise en charge des casques EasyAR dans Unity.
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> Library "]
space
space
DeviceB["Device B<br> Library "]
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 Sensedéfini parEasyAR Sense Unity Pluginpour 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 Sensepeuvent fonctionner sur votre appareil et utiliser sa capacité de suivi de mouvement. - Les services cloud EasyAR pris en charge en interne par
EasyAR Sensepeuvent 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 Senseest également nécessaire en dépendance. Dans Unity, il faut aussi utiliserEasyAR 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 Pluginne 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 :
- Bases du développement Unity et utilisation des packages
- Développement de paquets Unity
- Bases du langage C#, y compris IDisposable
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 :
- Faire prendre en charge EasyAR par le casque explique comment utiliser un modèle pour créer un nouveau paquet d’extension de casque et terminer le développement de base de l’extension d’entrée
- Validation initiale de l’extension explique comment vérifier la justesse de l’extension d’entrée sur l’appareil
- Publier le paquet d’extension explique comment empaqueter et distribuer le paquet d’extension de casque aux utilisateurs en aval