EasyAR prise en charge de l'infrastructure Unity XR
EasyAR ne dépend pas de l'infrastructure Unity XR pour fournir des fonctionnalités AR, mais peut prendre en charge certains composants de l'infrastructure Unity XR, permettant ainsi d'utiliser les fonctionnalités offertes par Unity XR tout en exploitant les capacités AR d'EasyAR dans Unity. Ce document décrit la prise en charge d'Unity XR par EasyAR et les cas où l'utilisation d'AR Foundation peut être envisagée.
Prise en charge de unity xr
Unity prend en charge le développement XR via son infrastructure de plugins ainsi qu'une série de packages et d'outils. EasyAR prend également en charge ces packages Unity XR afin de permettre l'utilisation des fonctionnalités de l'infrastructure Unity XR lors de l'emploi des capacités AR d'EasyAR dans Unity.
EasyAR prend en charge les packages Unity XR suivants :
| Nom d'affichage | Nom du package | Version minimale | Requis | Usage |
|---|---|---|---|---|
| XR Core Utilities | com.unity.xr.core-utils | 2.0.0 | Non | Fournit la prise en charge de Unity.XR.CoreUtils.XROrigin |
| AR Foundation | com.unity.xr.arfoundation | 5.0.0 | Non | Fournit la prise en charge d'AR Foundation |
| XR Plugin Management | com.unity.xr.management | 3.0.0 | Non | Fournit la compatibilité de gestion du SDK ARCore et l'obtention du type de XR Loader à l'exécution |
| XR Interaction Toolkit | com.unity.xr.interaction.toolkit | 2.0.0 | Non | Non utilisé directement |
| PolySpatial visionOS | com.unity.polyspatial.visionos | 2.0.41 | Non | Non utilisé directement |
| Apple visionOS XR Plugin | com.unity.xr.visionos | 2.0.41 | Non | Non utilisé directement |
| Apple ARKit XR Plugin | com.unity.xr.arkit | 5.0.0 | Non | Non utilisé directement |
| Google ARCore XR Plugin | com.unity.xr.arcore | 5.0.0 | Non | Fournit la compatibilité de gestion du SDK ARCore |
Note
EasyAR ne dépend pas de l'infrastructure Unity XR pour fournir des fonctionnalités AR. Par conséquent, en l'absence de besoin d'utiliser des composants Unity XR tels qu'AR Foundation, ces packages peuvent ne pas être installés. EasyAR continuera de fonctionner normalement sur les appareils pris en charge.
Prise en charge d'AR Foundation
AR Foundation est le framework de développement AR fourni par Unity. Ses fonctionnalités AR sont implémentées via des systèmes sous-jacents ou des tiers, couramment utilisés pour prendre en charge ARCore, ARKit et certains casques.
Relation entre EasyAR et AR Foundation
block
columns 6
block:groupApp:6
block:groupAppWrapper
space
App1["EasyAR<br>App"]
space
App2["EasyAR + AR Foundation<br>App"]
space
App3["AR Foundation<br>App"]
end
end
block:groupSensePlugin:4
columns 1
SensePlugin["Plugin Unity EasyAR Sense"]
space
end
block:groupARF
columns 1
ARF["AR Foundation"]
space
end
block:groupXRI
columns 1
XRI["XR Interaction Toolkit"]
space
end
block:groupAREngineInterop
columns 1
AREngineInterop["Interop moteur AR<br>EasyAR"]
space
end
block:groupSense:3
columns 1
Sense["EasyAR Sense"]
block:groupSenseWrapper
Image["Tracker<br>d'images"]
Object["Carte spatiale<br>éparse"]
MotionTracker["Tracker de<br>mouvement"]
MARCore["ARCore"]
MARKit["ARKit"]
Others["..."]
end
end
block:groupXRSubsystem:2
columns 1
XRSubsystem["Sous-systèmes XR"]
XRSDK["SDK Unity XR"]
end
block:groupSystem:6
columns 1
System["Bibliothèque système"]
block:groupSystemWrapper
space
AREngine["Bibliothèque<br> moteur AR "]
space
ARCore["Bibliothèque<br> ARCore "]
space
ARKit["Bibliothèque<br> ARKit "]
space
end
end
SensePlugin --> App1
SensePlugin --> App2
ARF --> App2
ARF --> App3
groupSense --> SensePlugin
groupAREngineInterop --> SensePlugin
AREngine --> groupAREngineInterop
XRSubsystem --> ARF
XRSubsystem --> XRI
ARCore --> MARCore
ARKit --> MARKit
ARCore --> XRSDK
ARKit --> 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 AREngineInterop fill:none,stroke:none,stroke-width:0px,color:#fff
style Sense fill:none,stroke:none,stroke-width:0px,color:#fff
style groupSenseWrapper fill:none,stroke:none,stroke-width:0px
style XRSubsystem fill:none,stroke:none,stroke-width:0px,color:#fff
style System fill:none,stroke:none,stroke-width:0px
style groupSystemWrapper fill:none,stroke:none,stroke-width:0px
classDef EasyAR fill:#6e6ce6,stroke:#333,color:#fff
class groupAREngineInterop EasyAR
class groupSense EasyAR
class SensePlugin EasyAR
classDef Unity fill:#636,stroke:#333,color:#fff
class groupXRSubsystem Unity
class ARF Unity
class XRI Unity
EasyAR et AR Foundation sont deux frameworks AR indépendants. EasyAR ne dépend pas d'AR Foundation pour implémenter ses fonctionnalités AR. EasyAR peut également utiliser des bibliothèques système telles qu'ARKit ou ARCore pour fournir des capacités de suivi de mouvement. De plus, EasyAR propose deux implémentations de suivi de mouvement non disponibles dans AR Foundation : sa propre implémentation et celle fournie par AR Engine, offrant ainsi une prise en charge d'appareils plus étendue qu'AR Foundation.
Parallèlement, EasyAR peut récupérer les données d'exécution d'AR Foundation et utiliser ses capacités de suivi de mouvement pour piloter d'autres fonctionnalités AR, assurant ainsi une compatibilité avec AR Foundation. Ces fonctionnalités incluent :
- Mega
- Carte spatiale éparse
- Carte spatiale dense
- Suivi d'image et d'objet utilisant la fusion de mouvement
Consultez Motion tracking and EasyAR features pour comprendre en détail la relation entre le suivi de mouvement et les fonctionnalités d'EasyAR.
Quand utiliser AR Foundation
Dans la plupart des cas, AR Foundation n'est pas nécessaire, car EasyAR fonctionne sur un éventail d'appareils plus large que celui pris en charge par AR Foundation. L'utilisation d'AR Foundation peut être envisagée dans deux situations principales :
Besoin d'utiliser des fonctionnalités d'ARKit ou d'ARCore non encapsulées par EasyAR
Si vous avez besoin de fonctionnalités spécifiques d'ARCore ou d'ARKit non fournies par EasyAR, vous pouvez utiliser AR Foundation. Par exemple, AR Foundation offre le suivi facial d'ARKit via ARFaceManager, une fonctionnalité non encapsulée par EasyAR.
Utilisation du suivi de mouvement basé sur ARCore plutôt que sur EasyAR sur certains téléphones Xiaomi présentant des problèmes système
Si vous souhaitez utiliser ARCore sur tous les téléphones Xiaomi et Redmi compatibles, envisagez d'activer AR Foundation. En raison de problèmes système sur certains modèles Xiaomi et Redmi, l'encapsulation ARCore d'EasyAR ne les prend pas en charge. Cela inclut les séries Mi 9, Mi 10, Redmi K20, Redmi K30, Redmi K40 (liste non exhaustive, la prise en charge des appareils est mise à jour continuellement). Sur ces appareils, ARCore ne sera pas utilisé par défaut. Sur les téléphones compatibles avec le suivi de mouvement EasyAR, celui-ci sera utilisé à la place.
L'utilisation d'AR Foundation n'offre pas les performances optimales des fonctionnalités EasyAR. Deux cas se présentent :
- Sur les téléphones Xiaomi et Redmi non directement pris en charge par EasyAR, les données fournies à EasyAR sont en niveaux de gris plutôt qu'en couleur, ce qui peut affecter l'efficacité de certains algorithmes. Ceci est dû à des problèmes inhérents aux appareils et ne peut être résolu par configuration.
- Lors de l'utilisation de Mega, la configuration par défaut utilisée par AR Foundation n'est pas optimale.
Attention
Il est possible de modifier ARCameraManager.currentConfiguration d'AR Foundation pour obtenir de meilleures données d'entrée. Activer ARCoreARFoundationFrameSource.OptimizeConfigurationForTracking sélectionne automatiquement la meilleure ARCameraManager.currentConfiguration. Cependant, notez que certains téléphones (par exemple Xiaomi 10) ont des problèmes intrinsèques : après modification de la configuration, ils peuvent ne pas fournir d'image, rendant EasyAR inutilisable (l'application affiche un arrière-plan mais les fonctionnalités EasyAR ne répondent pas). Par conséquent, cette activation n'est généralement pas recommandée. Si vous l'utilisez, prévoyez un plan de secours pour les cas où EasyAR ne fonctionne pas.
Prise en charge des casques
En raison de l'absence d'interfaces de données suffisamment complètes dans l'infrastructure Unity XR, EasyAR ne prend pas en charge les casques via cette infrastructure.
Sur les casques compatibles avec l'infrastructure Unity XR, EasyAR prend en charge l'utilisation de Unity.XR.CoreUtils.XROrigin via XR Core Utilities, mais n'utilise pas Unity XR pour la prise en charge des casques. EasyAR n'affecte pas les fonctionnalités du XR Interaction Toolkit, qui peut être utilisé normalement si l'appareil le supporte.
Généralement, les fabricants de casques fournissent leurs propres SDK ou interfaces système pour ces données. EasyAR prend en charge les casques via les interfaces système et les SDK des fabricants. Parfois, ces SDK ne sont pas entièrement publics ; EasyAR collabore alors avec les fabricants pour fournir une prise en charge complète. Headset support in Unity présente les casques pris en charge par EasyAR et leur mode d'utilisation.
Étapes suivantes
- Découvrez comment activer AR Foundation dans un projet EasyAR
- Comprenez la configuration et l'utilisation des scènes AR Foundation dans les projets EasyAR
- Apprenez à basculer automatiquement vers AR Foundation en fonction de la prise en charge de l'appareil