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
- Lisez Prise en charge des casques EasyAR pour comprendre les types de casques pris en charge par EasyAR et les fonctionnalités EasyAR pouvant fonctionner sur un casque.
- Lisez 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 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> 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 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 Sensedéfini par lePlugin Unity EasyAR Sensepour 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 Sensesont utilisables sur votre appareil, exploitant ses capacités de suivi de mouvement. - Les services cloud EasyAR pris en charge dans
EasyAR Sensesont 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 Senseest également requis. Dans Unity, vous devez utiliserEasyAR 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 Pluginne 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 :
- Bases du développement Unity et utilisation des packages
- Développement de packages Unity
- Les bases du langage C#, y compris IDisposable, etc.
De plus, une connaissance dans ces domaines vous aidera à mieux comprendre le système, en particulier comment envoyer les données correctes à EasyAR :
- Développement Android (Chine continentale, International)
- La vision géométrique, en particulier l'appariement d'images et la reconstruction 3D.
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 :
- Faire prendre en charge EasyAR par le casque présente comment utiliser un modèle pour créer un nouveau package d'extension pour casque et développer une extension d'entrée basique
- Validation de fonctionnement (bring-up) explique comment vérifier le bon fonctionnement de l'extension d'entrée sur l'appareil
- Publication du package d'extension décrit comment empaqueter le package d'extension pour casque et le distribuer aux utilisateurs finaux